# How Reply detects replies

> The reply-detection rule — the IMAP-monitored mailbox, the 3-4 hour detection window, same-address matching, forwarded emails, and which statuses a reply sets.

**Reply checks the mailbox connected via IMAP and matches incoming messages to contacts with Active or Active plus Contacted statuses. Detection takes up to 3-4 hours; replies must stay in the main inbox folder at least 3 hours. A sequence-email reply sets Replied and Finished and stops the sequence unless Continue processing steps is enabled.**

_Status: Reviewed — human-edited, facts not yet confirmed against the product._

## At a glance

| Aspect | Detail |
| --- | --- |
| **What it governs** | Matching an incoming message to a contact in a sequence and recording it as a reply |
| **Trigger** | An incoming message arrives in the mailbox connected to Reply via IMAP |
| **Inputs** | Sender address, contact status (`Active` or `Active` + `Contacted`), inbox folder location, message classification |
| **Result** | Contact becomes `Replied`; a reply to a sequence email also sets `Finished` and stops the sequence for that contact by default |
| **Configurable** | Sequence > Settings > Replies handling (Mark as finished vs. Continue processing steps); automatic out-of-office handling in Settings > Emails |
| **Does not** | Detect replies for `Finished` contacts, detect forwards composed as new emails, or classify reply intent — categorization is [reply management](/capabilities/reply-management) |
| **Plans** | Plan-specific differences are not documented for this rule |

## Rule summary

Reply connects an email account via IMAP (receiving) and SMTP (sending); the address in
the **IMAP section** is the one checked for contact replies. Detection usually takes up to
**3-4 hours**. A reply is matched when it comes from the **same email address** the email
was sent to, and the contact's status is **Active or Active + Contacted** — not Finished.
A reply to a sequence email sets `Replied` and `Finished`; a reply to a direct email sets
`Replied` only, and the contact continues in the sequence.

## Trigger

An incoming message arrives in the connected mailbox monitored via IMAP. SMS replies to a
manually or automatically sent SMS related to a sequence are also detected.

## Decision logic

1. Reply checks the mailbox whose address is specified in the IMAP section of the [email account](/specifications/email-accounts) connection. The account must be connected properly (green dot next to it).
2. Match the sender: the prospect must respond from the **same email address** the email was sent to, or forward **from within the original email** — a forward composed as a new email is not detected, and the forwarded message must contain the prospect's email address from your system.
3. Check the contact's status: detection runs only for contacts with **Active or Active + Contacted** statuses. Replies detection is not performed for `Finished` contacts, and tracking stops once a contact is `Replied` (whether set automatically or manually).
4. Classify the message and apply the sequence's Replies handling setting.

**Classification and outcome:**

| Incoming message | Outcome |
| --- | --- |
| Reply to a **sequence email** | `Replied` + `Finished`; the sequence stops for the contact unless **Continue processing steps** is selected in Sequence > Settings > Replies handling |
| Reply to a **direct email** | `Replied` only — no `Finished`; the contact continues in the sequence as planned |
| **SMS reply** to a sequence-related SMS | `Replied`; the Activity log records whether the reply was by email or by SMS |
| Auto-reply with **out of office** keywords | `Out of office`; further steps stop until the status is removed manually or by automatic handling |
| Other **automatic reply** | `Auto-replied` + `Finished`; sending stops until you manually change Finished to Active |

## Result

The matched contact is marked `Replied`, and for sequence-email replies also `Finished` —
so no further automated steps go out under the default setting. The thread lands in the
[inbox](/specifications/inbox), where AI categorization sorts it into a category
(Interested, Not interested, Not now, Do not contact, Forwarded) plus an optional
Meeting intent sub-category. Categorization works for email, LinkedIn, and LinkedIn voice
message replies; each response gets exactly one category and one sub-category.

## State changes

| Field | Change |
| --- | --- |
| Contact status | → `Replied` (+ `Finished` for sequence-email replies; `Out of office` or `Auto-replied` per classification) |
| Reply tracking | Stops for the contact once `Replied` is set |
| Inbox | Thread appears with an AI-assigned category; triggers can act on the category (move to sequence, lists, pause) |
| Statistics | Reply counters move — see [Statistics calculation](/behavior/statistics-calculation) |

## Exceptions

- **Moved messages** — keep all replies in the main inbox folder for **at least 3 hours** and do not move them to another folder; a moved reply can go undetected.
- **Different sender address** — a reply from an address other than the contacted one is not matched; mark the contact as replied manually. See [Reply was not detected](/troubleshooting/reply-was-not-detected).
- **Out-of-office contact replies** — when a contact with `Out of office` status later responds, Reply detects it and applies the Replies handling setting (Mark person as finished or Continue sending emails).
- **Non-English replies** — the AI that assigns inbox categories understands English only; set the category manually for replies in other languages.
- **Bounces** are not replies — they follow [Bounce handling](/behavior/bounce-handling).

## Configuration that changes this rule

Sequence > Settings > **Replies handling** decides whether a reply finishes the contact or
sending continues. Automatic **out-of-office handling** (Settings > Emails, enabled by
default) resumes all `Out of office` contacts after the number of days you set — the
system cannot read the return date mentioned in the email, so the one setting applies to
every case. You can also resume them manually by changing the status to Active.

## Limits

| Limit | Value |
| --- | --- |
| Detection and sync window | Up to 3-4 hours |
| Minimum time a reply must stay in the main inbox folder | At least 3 hours |
| Eligible contact statuses | Active or Active + Contacted (not Finished) |
| Forward detection | Only forwards made from within the original email |
| Inbox AI language coverage | English only — other languages need manual categorization |

## FAQ

### Why was a reply not detected?

Check the usual causes: the reply was moved out of the main inbox folder within 3 hours,
the sender used a different address, the forward was composed as a new email, the sending
account is not properly connected (no green dot), or the contact is `Finished`. The full
checklist is in [Reply was not detected](/troubleshooting/reply-was-not-detected).

### Do out-of-office replies stop the sequence?

They pause it: the contact gets `Out of office` and further steps stop until the status is
removed. Automatic handling (on by default) resumes all such contacts after the configured
number of days. When the contact later replies for real, the Replies handling setting
decides whether they finish or continue — see [Sequence stopping](/behavior/sequence-stopping).

### Does a reply to a direct email stop the sequence?

No. Direct-email replies set `Replied` but not `Finished` — both statuses are assigned
only for replies to sequence emails. The contact continues through the sequence as
planned.

### Can a contact keep receiving steps after replying?

Yes — select **Continue processing steps** in Sequence > Settings > Replies handling. By
default a `Replied` contact stops. See [Sequences](/specifications/sequences).

## Related

- [Sequence stopping](/behavior/sequence-stopping)
- [Status transitions](/behavior/status-transitions)
- [Bounce handling](/behavior/bounce-handling)
- [Process positive replies](/workflows/process-positive-replies)
- [Reply was not detected](/troubleshooting/reply-was-not-detected)

## Build with Reply

- REST API: [docs.reply.io](https://docs.reply.io/api-reference/introduction) — inbox and contact status endpoints
- MCP: [agents.reply.io/mcp](https://agents.reply.io/mcp) — read the inbox and mark contacts as replied from an agent
- CLI: [agents.reply.io/cli](https://agents.reply.io/cli)
