# How sequences work

A sequence is a flow of steps that starts when a contact is enrolled: send an email, wait, check for a reply, branch, hand off to you. You build it on a canvas in *Outreach → Sequences* (or have [Claude build it](https://founderdb.co/docs/mcp.md)), and FounderDB runs it for every enrolled contact.

## Steps

| Step | What it does | Paths out |
| --- | --- | --- |
| **Email** | Sends a template, or an email written by AI from an instruction | next |
| **Wait** | Waits a number of hours | next |
| **Wait for reply** | Waits up to a number of hours for a reply | *replied*, *timeout* |
| **AI intent branch** | Classifies a reply (interested, not interested, question, out of office…) with your AI key | one per intent, plus *other* |
| **Set stage** | Moves the contact in your pipeline | next |
| **Set variables** | Sets [contact variables](https://founderdb.co/docs/contact-variables.md) | next |
| **Call external API** | Sends the contact to your API and stores what it returns — see [integrations](https://founderdb.co/docs/integrations.md) | *done*, *failed* |
| **Branch on variable** | Checks a contact variable | *yes*, *no* |
| **Hand off to human** | Stops the sequence so you (or your AI agent) take over | — |
| **Unsubscribe** | Marks the contact do-not-contact | — |
| **End** | Finishes | — |

A path with nothing connected simply ends the sequence for contacts who take it.

## When emails go out

- **Send window.** Each sequence has sending days and hours in one timezone (*Sequence settings*). Default: Monday–Friday, 9:00–16:00 New York time. Weekends are skipped.
- **Waits** count from the previous step, then move to the next allowed time in the window, plus a few random minutes.
- **Pacing.** Each email takes the next free slot on a mailbox — 4 to 18 minutes after its previous send, within the mailbox's daily cap. When a day is full, it rolls to the next sending day. With several mailboxes, the one with the earliest free slot sends. See [SES](https://founderdb.co/docs/sending-ses.md) and [Gmail](https://founderdb.co/docs/sending-gmail.md) for their caps.
- **Threading.** Once you've emailed a contact, every later email goes in the same thread ("Re: …" your first subject), so follow-ups read as a conversation.
- **Unsubscribe.** Every automated email has a one-click unsubscribe link and `List-Unsubscribe` headers. Opens and link clicks are tracked.

## When someone replies

Replies arrive through your [receiving domain](https://founderdb.co/docs/receiving-cloudflare.md) or a connected [Gmail](https://founderdb.co/docs/sending-gmail.md) mailbox and are matched to the contact.

- The contact moves to **Engaged (active)** and the conversation appears in *Inbox → To do*.
- If they were on a **Wait for reply** step, the sequence takes its *replied* path immediately. Anything it sends from there goes within a minute or two, from the same mailbox, in the same thread.
- If they weren't, and *stop on reply* is on (the default), the sequence stops — no more automated emails.
- A short reply asking to unsubscribe ("stop emailing me", "remove me"…) marks them do-not-contact.

Put a **Wait for reply** after each email so every reply lands on a path you designed — that's what [the recommended sequence](https://founderdb.co/docs/recommended-sequence.md) does.

## Hand off to human

**Hand off to human** stops the sequence, cancels anything queued for that contact, and moves them to *Engaged (active)*. From there the conversation is yours — or your AI agent's: Claude can read the thread, draft a reply for you to approve, send it, and schedule follow-ups, each labelled as the agent's. Resume the sequence from the contact's page if you ever want it back on autopilot.

## Stages that change on their own

| When | Stage |
| --- | --- |
| The first email goes out | Outreach sent |
| They reply | Engaged (active) |
| 72 hours pass with no activity after they engaged | Engaged (ghosted) |
| 48 hours after the last email, no reply and no sequence running | Ignored (never replied) |

Sequences can also set stages with a **Set stage** step.

## Enrolling contacts

- Mark one sequence as **default**. With *Launch auto-enroll* on (the *Webhooks* page), makers from new launches with a safe-to-send email are enrolled in it every 30 minutes.
- Enroll anyone from their contact page, import past launches (*Contacts → Import previous data*), or ask your AI agent to `enroll_contact`.
- **Test mode** runs waits in minutes instead of hours — enroll yourself to try a sequence end to end.

## Editing a live sequence

You can edit a sequence while contacts are in it. If a change removes the step some contacts are currently on, FounderDB tells you how many and asks before saving — they'd stop where they are.
