Prerequisites
- An Attio plan of Plus or higher. Sequences are gated below Plus.
- A connected mailbox so sequences can send. Workflow logic does not send mail on its own.
- A People object with a single-select Status attribute that includes the value
Qualified, an Email attribute, and an opt-out boolean such as Unsubscribed. - At least one published sequence and a configured sender or sender pool. This recipe uses a sequence named EMEA outbound.
- A Sequence enrolled at date attribute and a Sequence exit reason text attribute on People. Each workflow stamps state here for the other one to read.
- Workflow edit access. No API keys or scopes are needed, because both workflows run inside Attio.
How it works
Both workflows share one fact: whether a person is currently in the sequence. Workflow A enrolls qualified leads who have a valid email and have not opted out. Workflow B watches for any signal that the conversation went human. That signal can be a reply, a booked meeting, or a manual stage change. When Workflow B sees one, it exits the person before the next sequence step can send. The trigger and the Filter are free, so you pay only when a write actually happens. Workflow A runs in this order:- Attribute value changed fires when
Statuschanges. - Filter continues only if the new value is
Qualified, email is present, and Unsubscribed is not true. - Enroll in sequence adds the person to EMEA outbound.
- Update record stamps Sequence enrolled at.
- Attribute value changed fires when
Statuschanges toReplied,Meeting booked, orClosed. - Filter continues only if Sequence enrolled at is set, which proves the person is actually enrolled.
- Exit from sequence removes the person from EMEA outbound.
- Update record stamps Sequence exit reason.
Build steps
1
Add the enrollment trigger (Workflow A)
Create a workflow named Enroll on qualify. Add the Attribute value changed trigger and point it at the People Status attribute.
2
Gate enrollment with a free filter
Add a Filter block. This is where you stop unqualified, unreachable, and opted-out records before they cost a credit.
3
Enroll the person
Add the Enroll in sequence block. The recipient must be a person record. If the trigger object were a deal, you would map through the relationship attribute that points to the person.
4
Stamp the enrollment time
Add an Update record block so Workflow B can tell who is actually enrolled.
5
Add the exit trigger (Workflow B)
Create a second workflow named Exit on reply or booking. Add the Attribute value changed trigger on the same Status attribute. This is the half people skip. Without it, a lead who replies keeps getting sequence steps.
6
Filter to enrolled records only
Add a Filter so you only attempt an exit for people who are actually in the sequence.
7
Exit and stamp the reason
Add the Exit from sequence block, then an Update record block to record why the person left.
Variable mapping
Credit cost worked example
The trigger and every Filter are free, so you pay only for the writes. Workflow A costs 2 credits per qualifying lead. That is 1 credit for Enroll in sequence and 1 credit for the Update record stamp. Workflow B costs 2 credits per lead who replies or books. That is 1 credit for Exit from sequence and 1 credit for the stamp. Assume 400 newly qualified leads a month, where 35% reply or book. That is 140 exits.- Enrollments: 400 × 2 = 800 credits.
- Exits: 140 × 2 = 280 credits.
- Monthly total: 1,080 credits.
Test plan
- In your own workspace, open a test person named Priya Sharma, priya@acme.com. Confirm
StatusisWorkingand Sequence enrolled at is empty. - Change
StatustoQualified. Workflow A fires. In run history, expect the Filter to pass, Enroll in sequence to returnenrolled, and Update record to write a timestamp to Sequence enrolled at. - Open run history under the Runs tab of Workflow A. Confirm two writes are logged, the enrollment and the stamp, with no errors.
- Exercise the exit path. Change the same person’s
StatustoReplied. Workflow B fires. The Filter passes because Sequence enrolled at is set, Exit from sequence removes them, and Sequence exit reason readsReplied. - Confirm in the sequence’s own enrollment view that Priya is no longer active. This is the proof that you will not double-touch.
- Run the deliberately failing input. Set a second test person to
Qualifiedbut leaveEmailempty. Workflow A fires, the Filter stops the run, and run history shows zero writes and zero credits consumed. If you instead see an enrollment error, your filter is mis-ordered.
Failure modes
Variations
Exit on a meeting booked in your calendar tool
If meetings come from an external scheduler, do not wait for a status edit. Swap Workflow B’s trigger for Webhook received fed by the calendar tool. Keep the same Filter, Exit from sequence, and Update record chain. Only the trigger changes.Pause instead of exit
If you want to resume the sequence later, for example after a no-show, do not exit. Set a Sequence paused boolean with Update record. Let your sequence’s own send conditions skip paused people. Clear the flag later to resume. Exit ends that enrollment for good. Pausing is recoverable. The credit cost is the same, because either path is one write.See also
- Round-robin lead routing
- Conditions & filters
- Enroll in sequence
- Exit from sequence
- Sequences in Attio
Source: Sequences in Attio (Attio Help Center). Last reviewed against the Attio Help Center, June 2026.