ForgeSendDocs

Auto-pause and bounce handling

Before a message ever reaches Reply Box, ForgeSend decides whether it's a genuine reply or a bounce, and reacts differently to each — automatically, not as a manual step.

Three active pollers

ForgeSend runs three separate polling services, each checking every connected inbox of its provider roughly every two minutes: one for Google inboxes, one for Microsoft 365, and one for SMTP/IMAP. All three are live today — none is a stub or a "coming soon" state.

Reply pollers — read only

Google

Polls every ~2 minutes

Microsoft 365

Polls every ~2 minutes

SMTP / IMAP

Polls every ~2 minutes

Whichever provider found the message, matching is identical from there: ForgeSend normalizes the inbound subject line and compares it against that lead's recently sent steps for that inbox, to attribute the reply to the right campaign and step.

AI reply classification

Every inbound reply is classified automatically the moment it's ingested — not lazily, not on request. ForgeSend reads the fresh (non-quoted) text and assigns one of five classifications, with a short written reasoning stored alongside it.

AI classification — read only
Interested
Not Interested
Out of Office
Objection
Question

This same classification is what feeds a campaign's Reply sentiment Condition node in Canvas view — if a lead's next step depends on how they replied, this is the signal it branches on. Two additional routing-only outcomes, No reply and Unclassified, can appear there too, but neither is ever written back onto the reply message itself — they only describe "nothing came in" or "couldn't be classified" for branch routing purposes.

The AI classification is informational and used for branching — it is a separate field from the manual tag you apply in Reply Box, and it never pauses a sequence by itself. Auto-pause is driven entirely by real reply ingestion and by the manual tag, covered next.

How a reply pauses a sequence

When a genuine reply is ingested for a lead whose campaign status is exactly ACTIVE, ForgeSend automatically sets the lead's status to REPLIED and skips every one of that lead's still-pending send jobs — no further sequence steps go out.

Lead state on reply — read only

Before

Lead status: ACTIVE

Reply arrives

Pending jobs skipped

After

Lead status: REPLIED

This only fires when the lead is currently ACTIVE — leads that are already PAUSED, COMPLETED, or REPLIED are left untouched by a further reply.

There's a second, independent trigger: manually tagging a reply Interested or Unsubscribe in Reply Box also pauses that lead, setting its status to PAUSED. Tagging Not Interested or Out of Office is cosmetic only — no lead or job changes.

Unsubscribe-intent detection

Separately from AI classification, ForgeSend runs a fixed-phrase check against the fresh text of every inbound reply — phrases like "please unsubscribe," "remove me," "opt out," "stop emailing," or a bare "unsubscribe." A match:

  • adds the sender's address to the suppression list
  • pauses every active lead for that contact, workspace-wide
  • forces the reply's manual tag to Unsubscribe, overriding anything you might tag it later

This detector is a fixed phrase list, not AI — it's deliberately separate from the AI classification described above. Wording it doesn't recognize won't be caught automatically; that's what manual tagging is for.

Bounce detection

A bounce is identified before it ever becomes a reply. ForgeSend checks whether a message's sender is mailer-daemon or postmaster, then looks for a delivery-status part matching RFC 3464 — a status line in the 4.x.x or 5.x.x range, with a resolvable original recipient. Only then is a message treated as a confirmed bounce.

A confirmed bounce is diverted entirely — it's never stored as a reply, never appears in Reply Box, and never triggers the reply auto-pause above.

Hard vs. soft bounces

Bounce classes — read only

Soft bounce · 4.x.x

Logged only. Contact and lead status unchanged.

Hard bounce · 5.x.x

Contact marked invalid, lead set to BOUNCED, address suppressed.

A soft bounce (4.x.x) is logged as an event and nothing else changes. A hard bounce (5.x.x) marks the contact invalid, sets its active leads to BOUNCED, skips its pending jobs, and adds the address to the suppression list.

This is a different mechanism from the inbox-level bounce-rate check covered in Deliverability — that one watches the dispatch failure rate of outbound sends per inbox and is triggered without reading any inbound mail. This page's bounce handling is per-contact, triggered only by an actual inbound bounce message arriving.

Reply-matching limits

ForgeSend attributes a reply to a campaign step by matching its normalized subject line against a lead's recently sent steps for that inbox — not by Message-ID/References headers.

Replies are matched to their thread using the subject and reference chain. If a reply's subject has been substantially changed — for example by a mobile client that alters the "Re:" line — it may not be automatically linked to its original conversation. Keeping the original subject intact ensures replies thread reliably.

Where to go next

Next: Deliverability overview