Skip to content
Knock2
Customer Story

How Air's GTM engineer built an outbound state machine on Knock2's visitor signal

Tom Bonagura, Air's GTM engineer, runs outbound as a state machine, where every account has a named state and a reason when it stops. Knock2 feeds it at the top: website visitors identified, scored, and filtered before a single one reaches Air's pipeline.

1% → 6%+
Accounts to meetings booked,
across Air's whole system
Tens of thousands
Of visitors identified and
scored by Knock2
More than RB2B
People identified, in Tom's
head-to-head comparison
Company
Air, the AI agent for creative tasks
CRM
Salesforce
Knock2 Customer Since
April 2026
Built On
Knock2 lead scoring, Plays and webhooks
Why Air Chose Knock2

Three reasons, in Tom's own terms

  • More people identified. In Tom's comparison, Knock2 found significantly more people than RB2B.
  • Filtering before delivery. Contacts are scored and filtered inside Knock2, so only good-fit visitors leave the platform.
  • Webhooks into the stack Air already built. No new sequencer or dashboard, just data flowing into Air's own pipeline.
The Problem

Stitched together by hand and hope

Tom Bonagura is the GTM engineer at Air. Like most teams, he started with no-code tables and automations, signal providers wired together column by column. In his words, it was “stitched together by hand and hope.” One small change could break three other things, and a failed step often failed silently.

Visitor data had the same problem. Air's RB2B feed went to a Slack channel Tom described as “a spammy channel that nobody really looks at.” A signal nobody acts on isn't a signal.

Where Knock2 Fits

The signal at the top of the machine

Tom rebuilt outbound so every account enters at the top as a domain and moves through explicit states. Knock2 is one of the signals at that top: it identifies the companies and people visiting air.inc, scores them, and sends the ones worth working straight into Air's pipeline.

“Knock2 is quietly doing a lot of heavy lifting on the signal side here.”
Tom Bonagura, GTM Engineer at Air
Identify
Visitors become people

Knock2 resolves anonymous traffic on air.inc to companies and to the individual people behind the visits.

Score
Fit is decided before delivery

Every identified contact gets a Knock2 lead score, so low-fit visitors never enter Air's queue at all.

Deliver
One webhook, already filtered

A Knock2 Play sends only contacts scoring 30 or more to a webhook feeding Air's pipeline, in real time.

The Integration

The filtering lives in Knock2, not in Air's code

Instead of receiving every visitor and writing the routing logic himself, Tom built a Play in Knock2: a standing rule that filters identified contacts by lead score and sends the segment that passes to a webhook.

How a website visit becomes a domain in the state machine
In Knock2In Air's pipeline
Identification
Visitor resolved to a company and a person
→
Nothing yet
No noise reaches the engine
Lead score
Scored against Air's ideal customer profile
→
Nothing yet
Low-fit visitors stop here
Play
Lead score 30+ sent by webhook
→
Domain in
Enters the queue like any other signal

That division of labour is what keeps the machine modular. Knock2 owns identification and fit. Air's engine owns the CRM gate, triage, enrichment, scoring and contact search. If Tom changes the score threshold, he edits one filter in Knock2 and nothing downstream needs to know.

Tom also liked a Knock2 feature he saw during setup: when someone from an account with an open opportunity visits the site, Knock2 can tag the opportunity owner in Slack. In his words: “Hey. Your person is essentially looking at the website right now.” It is the opposite of a channel nobody reads, because the alert goes to the one rep it matters to.

After The Handoff

Inside Air's state machine

Like a package that is always ordered, shipped or delivered, every account in Air's pipeline is in exactly one state, and when something stops it, it is held with a reason and rechecked rather than lost. Each stage is its own module, so Tom can change one without breaking the rest.

Every account, one state at a time
Domain in
From signals such as web visitors and recent hires
Queued
Checked against the CRM block list before any spend
Triaging
Basic firmographics; misses are rechecked every 60 days
Scoring
Around 10 data providers feed one scoring algorithm
Scored
Contacts found and handed to the reps
The Results

Fast iterations, slow final decisions

Presenting the system at GTM as Code NYC, Tom reported that Air's meeting booking rate, accounts assigned to meetings booked, went from 1% to over 6%, and above 7% by the day of the talk, with the same team, the same list sizes and no change to the copy. That is the result of the whole system: Tom credits Air's reps too, and points to the scoring algorithm and how quickly the system lets him test changes.

New signals plug in at the top the same way Knock2 does, and any stage can be swapped, run live for a week and reverted. His rule for running GTM engineering: “Fast iterations. Slow final decisions.”

1% → 6%+
Accounts assigned to meetings booked across Air's whole system, as Tom reported it
Tens of thousands
Of air.inc visitors identified and scored by Knock2
More than RB2B
People identified by Knock2 in Tom's comparison

Feed your outbound engine
signals worth working

Knock2 identifies the people visiting your site, scores them against your ideal customer profile, and sends only the ones that fit to your webhooks, CRM or Slack.

Get Started TodayRead the webhooks docs →