Why Polling the Inbox Is Dead: Webhook Email Tracking for AI SDRs
Every automated outreach system eventually faces the same question: how do you know when a prospect replied? There are two answers, polling and webhooks. The one you choose quietly decides whether your reply data can be trusted at all.
What polling actually costs you
Polling is the obvious first build: a job wakes up every few minutes, asks the mailbox "anything new?", and compares the answer with last time. It works in the demo. Then three costs arrive:
- Lag you can't reason about. A reply that arrives 10 seconds after a check waits a full cycle to exist. For an AI SDR deciding whether to send touch two, "did they already reply?" now has a blind spot exactly as wide as your timer.
- Quota burn that scales with paranoia. Tighter timers mean more API calls to the mailbox provider (an API call is one program asking another for data). Most of those calls hit inboxes that are empty 95% of the time. You pay for nothing.
- Invisible death. A crashed poller and a quiet inbox produce identical output: silence. Teams routinely discover a dead poller weeks later, from a spreadsheet that "felt low." That's not monitoring; that's archaeology.
How webhook email tracking works
A webhook flips the direction: the mail service pings you the moment something happens, instead of you checking on a timer. With webhook email tracking, the mailbox provider (through an email API such as Nylas) pushes an event to your endpoint the moment something happens: message received, message opened, bounce, thread updated. Your system reacts in seconds and does zero idle work. Best of all, a broken pipeline is visibly broken, because the provider's delivery dashboard shows failed webhooks.
| Polling | Webhooks | |
|---|---|---|
| Reply latency | 0 to poll-interval (unbounded in practice) | Seconds |
| Idle cost | Continuous API calls | Zero |
| Failure visibility | Silent: dead poller = quiet inbox | Loud: delivery failures are logged by the provider |
| Ordering | Batch diffs, order reconstructed | Event-at-a-time with provider timestamps |
What production-grade means
Webhooks are better, not magically safe. A webhook endpoint that powers real reply tracking infrastructure needs four properties. These are also the questions to ask any vendor:
- Signature verification, fail-closed. Every payload carries a signature, a tamper-proof stamp made with a secret only the two servers share, and the endpoint checks it (an HMAC check) before trusting a word. Missing secret? Reject everything. An endpoint that skips this check lets strangers write into your data.
- Idempotency in the schema. Idempotent means handling the same event twice changes nothing. Providers retry deliveries. Record a reply by writing the inbound message's ID onto the send it answers. The second delivery of the same event then does nothing, by design rather than by hoping.
- First-event-wins semantics. "Opened" is one timestamp, set once. Five opens is still one opened email; curiosity metrics can count separately, but headlines never double-count.
- Header-based matching. Every email carries a hidden ID in its headers. Match replies by those thread and Message-ID references first, then fall back to the newest unanswered send to that exact address. Never match on subject lines alone: "Re: Quick question" matches half the internet.
Rule of thumb: if a reply-tracking pipeline cannot explain which outbound send a reply belongs to (every time, on retry, across a shared team account), it's a dashboard, not infrastructure.
Why this matters more with AI in the loop
Automated sales outreach raises the stakes on all of this. A human SDR who missed a reply sends an awkward follow-up. An agent that missed a reply sends the next three touches in the sequence to someone who already said yes. Reply state is the agent's brake line. It has to be real-time (webhooks), tied to the right send (header matching), and free of double counts (idempotent schema). Otherwise the automation is driving without brakes.
Ervona ships this pipeline as a product: an AI SDR whose reply tracking is webhook-driven, signature-verified, and idempotent by schema, with replies counted per mailbox and per profile. You work the list; the plumbing is done.
Start free at ervona.aiGo deeper: The architecture behind the modern AI SDR · How to build an AI SDR workflow