Replies: matching them, reading them, and acting on them

People reply from aliases, forward threads to colleagues, and answer from shared inboxes. Matching on the sender address gets all three wrong — matching on the header chain survives every one of them.

4 min read

The short version

  • Connected mailboxes are polled every 15 minutes for inbound mail.
  • Replies are matched to the outreach that prompted them using the RFC 5322 In-Reply-To and References headers, not the sender's address.
  • Each reply is classified into one of six kinds: positive, neutral, negative, auto-reply, unsubscribe, or out-of-office.
  • Classification drives consequences. An unsubscribe suppresses the contact everywhere; a real reply stops the sequence; an out-of-office defers the follow-up instead of wasting it.
  • A mailbox whose authorization has expired is marked for reauthorization rather than failing silently.

The hard part of reply handling is not reading the reply. It is knowing that a message is a reply at all, and to which of your emails.

The intuitive approach — match inbound mail by sender address against your recipient list — fails constantly in exactly the situations that matter most.

Why sender matching fails

  • People reply from aliases. You wrote to sarah@publisher.com and the answer comes from s.jones@publisher.com, or from a personal address entirely.
  • Threads get forwarded. The author passes your email to their editor, who replies. That is a success, and address matching records it as a stranger emailing you.
  • Shared inboxes rewrite the sender. Mail to an editorial inbox comes back from whoever picked it up, or from the desk's generic address.
  • Names collide. Two people at large publishers share a first name, and a fuzzy match attributes the reply to the wrong thread.

Every one of those is a normal outcome of outreach. A matching strategy that mishandles them is a matching strategy that fails precisely when someone was interested.

Matching on the header chain

Dice matches replies using the standard mail headers instead: In-Reply-To and References. Every message you send carries a unique message ID, and any conforming mail client that replies to it includes that ID in the reply's headers — regardless of who sends the reply, from which address, after however many forwards.

This is what mail clients themselves use to build threads. Adopting it means an alias reply, a forwarded reply, and a shared-inbox reply all attach to the right outreach message, with no fuzzy matching and no guessing.

The header chain is how email itself decides what belongs to a thread. Anything else is a heuristic reimplementing it badly.

Six classifications, six consequences

Once a reply is matched, it is classified — and the classification is not a label for a dashboard. Each one triggers something specific:

ClassificationWhat happens
PositiveThe sequence stops and the reply is surfaced to you. Nothing automated goes near a live conversation.
NeutralThe sequence stops. A question or a “not right now” is a human response and deserves a human answer.
NegativeThe sequence stops. Following up after a no is how a polite decline becomes a spam complaint.
UnsubscribeThe contact is suppressed across the entire workspace, immediately and permanently, and removed from reachability scoring.
Out of officeThe follow-up is deferred rather than consumed. An autoresponder is not a reply, and burning a follow-up on one wastes the message.
Auto replyRecorded, and the sequence continues. A ticket-received acknowledgement is not a conversation.
Reply classifications and what each one does.

The out-of-office case is the one that most tools get wrong, and it is worth dwelling on. If an autoresponder counts as a reply, the sequence stops and the person never hears from you again after they return. If it counts as silence, the follow-up fires while they are still away and lands in a pile of two hundred unread messages. Deferring is the only handling that respects what actually happened.

Alongside the classification, each reply gets a one-sentence summary of what was said, a flag for whether a follow-up is warranted, and — where a response makes sense — a suggested reply you can edit or ignore.

Polling, and why 15 minutes

Connected mailboxes are polled on a fifteen-minute schedule. A newly connected mailbox is also synced on demand, so its history is available immediately rather than after the next tick.

Fifteen minutes is a deliberate middle. The only decision that depends on speed is whether a follow-up fires, and follow-ups are days apart — a quarter hour of latency cannot cause a wrong one. Polling every minute would multiply provider API calls for no behavioural difference at all.

When a mailbox stops working

OAuth tokens get revoked. Passwords change. Accounts get suspended. When a sync fails with an authorization error, the mailbox is marked as needing reauthorization and you are notified.

The alternative — retrying quietly and hoping — produces the worst failure in the product: campaigns that appear to be running while every message silently fails, and replies that arrive and are never seen. A broken mailbox should be loud.

Follow-ups only fire while a thread stays quiet. A reply stops the sequence before the next message is due.

A positive reply is usually the start of a link, not the end of the work. Once the placement goes live, backlink monitoring takes over and keeps checking that it stays there.

Frequently asked questions

Keep reading

All posts

Find the pages your company should already be on.

Start with the 14-day paid discovery run. $11.99 once, and it never auto-renews.

Find my opportunities