Sequencing
Multi-step outreach cadences — call, wait, branch on outcome, retry or text.
A single AI call is one touch. Sequencing is the whole follow-up campaign around it — call, and if they don't pick up, wait an hour and try again; if they answer, text them the link. You draw that plan once on a canvas, and the engine runs it for every contact, picking up where each step leaves off.
The short version: a Finn is one conversation. A sequence is many steps over time — call → wait → branch on what happened → retry or send an SMS → repeat. It's the layer above your agents.
When you actually need it
You don't need a sequence to make calls — a deployment already does that. Reach for sequencing when the follow-up logic matters:
- "Call them. If no answer, retry after an hour. After 3 tries, give up."
- "If they pick up, text the payment link. If it goes to voicemail, try again tomorrow."
- "Call → wait a day → call again with a different message."
If your outreach is "call this list once," skip sequencing. If it's "keep working each lead until something happens," this is the tool.
The pieces (nodes)
You build a sequence by dragging nodes onto the canvas and wiring them together:
| Node | What it does |
|---|---|
| Start | Where the sequence begins. Every sequence needs one. |
| Voice | Calls the contact with a Finn you've already built, then waits for the result. |
| Wait | Pauses — minutes, hours, or days — before the next step. |
| Condition | Splits the path based on what happened (e.g. "did they answer?"). |
| SMS | Sends a text. Supports {variables} like {contact_name}. |
| End | Stops that path. |
After every Voice step, the sequence remembers what happened so a Condition can branch on it:
call_answered→true/falsecall_outcome→answered,no_answer,voicemail,failed, …call_voicemail→true/false
Build your first cadence
Let's build the classic: call the borrower; if they don't answer, wait and retry; if they do, text the payment link.
- Go to Sequences in the sidebar → New sequence.
- Drag on: Start → Voice → Condition, then two paths off the Condition.
- Voice node → pick your Finn, set it to outbound.
- Condition node → add two branches:
- Answered → rule:
call_answeredis true. - No answer → mark this one Default (the fallback).
- Answered → rule:
- Wire Answered → SMS:
- To:
{contact_phone} - Message:
Hi {contact_name}, here's your payment link: …
- To:
- Wire No answer → Wait (1 hour) → Voice (retry) → End.
- Wire the SMS → End.
When the graph is sound, flip the sequence to Live. The editor won't let you go live with missing pieces — it tells you exactly what's wrong.
Run it
Open the sequence → Run → Run live. Drop in contacts, one per line:
9876543210
Jane Doe,9876543210
Jane Doe,9876543210,91
+14155551234
(name,phone,countryCode — the part with digits is the phone.) Each contact starts its own run. The History tab shows every run live:
- running — moving through steps
- waiting — paused on a call outcome or a wait timer
- completed — reached the end
- failed — a step errored with no fallback wired
Heads up: Run live places real calls and sends real texts. Each call is billable and checks your wallet first. Use the Preview path button for a dry walk that sends nothing.
How the timing works
- A Voice step parks the run as waiting until the call finishes, then fills in the
call_*values for the next Condition. - A Wait step resumes shortly after the timer is up (checked every ~30 seconds — so cadences are minute- and hour-grained, not to-the-second).
- Runs are durable: they survive restarts and never double-fire, so a "wait 2 days" step is safe.
Tips & limits
- One starting point per sequence for now.
- Sending SMS needs a number on your account; otherwise the SMS step is skipped (and follows an error path if you wired one).
- A failed text won't kill the cadence by default — the call flow keeps going.
- One run = one contact. 500 contacts = 500 independent runs, each on its own timeline.
What's not here yet
You may see extra node types on the canvas — WhatsApp, API call, custom Function, Loops, Parallel branches, Calendar and CRM steps. Those are coming. For now, stick to Voice, Wait, Condition, SMS — if a sequence uses an unsupported node, going live will tell you which one to remove.
Start simple: one call, one retry, one text. That alone turns a cold list into a worked one.
Was this page helpful?
Still stuck or have feedback?
Email support@hirefinn.ai or use the chat bubble in the bottom-right corner — it's a Finn that knows the Academy cold.