Plan availability: Standard or higher (requires both Sequences and API Access). See Plans & Billing.
- Upsert the contact in your workspace (matched by primary email, falling back to phone).
- Append the notes you send (
Speaks Spanish. Located in Madrid.) to the contact’s record so they survive across calls. - Generate a bespoke sequence from a saved template using a two-stage LLM pipeline — emails are written for the specific recipient, in their language, referencing real context. SMS / voice scripts are generated the same way.
- Optionally launch immediately — with
auto_approve: true, the first step (call or email) fires within seconds of generation completing, no human review required.
email, voice, sms), so the API itself does not expose a channel selector — pick a template that uses the channels you want.
Generation takes time. The endpoint responds with
202 Accepted after a few hundred milliseconds, but the LLM pipeline runs in the background and takes ~30–90s before the first outbound action goes out. Poll the status endpoint to know when it has shipped.Start a sequence
POST
POST /api/v1/sequences/startRequest body
string
required
ID of a sequence template in your workspace. The template defines the goal prompt, allowed channels, pacing, and (optionally) the bot identity.
string
Required only if the template has no
bot_id. The bot whose email/phone identity will be used as the sender.object
required
The contact to upsert.At least one of
emails or phone_numbers is required.boolean
default:"false"
When
true, skips the human review gate. After generation, step 1’s scheduled_for is forced to now and the dispatcher fires immediately — the contact’s phone rings (or inbox dings) within seconds. Use this for trusted automation.When false (the default), the sequence is generated and parked in pending_approval. Workspace admins receive an email with a review link.string
A stable identifier (e.g. your internal lead ID). Calling the endpoint a second time with the same key returns the original
sequence_id and enrollment_id — no duplicate sequence is created.string
Display name for the sequence. Defaults to the template’s name.
Response — 202 Accepted
Example — call back a Spanish-speaking lead immediately
Errors
Get enrollment status
GET
GET /api/v1/sequences/enrollments/{enrollment_id}Status values
Example response
Notes & limits
- Latency floor: ~30–90s from API call to first outbound action. Two LLM calls run in the background; this can’t be made faster while still producing language-matched, personalized content.
- Channels are template-driven. If the template’s
allowed_channelsis["email", "voice"], no SMS will be sent regardless of what the contact has on file. - Concurrent enrollments are allowed — calling the endpoint while the contact is in another active sequence will not be rejected.
- Suppressed contacts (unsubscribed email, opted-out phone) cause the enrollment to fail with
no_usable_channels. Polling the status endpoint will reflect this.

