Journeys & pipelines
Two different multi-step concepts — journeys sequence touches (call/wait/sms) per contact over time; pipelines run multiple agents on a single call.
Journeys & pipelines
Both add structure beyond a single agent on a single call, but they solve different problems:
- Journey — a multi-touch sequence per contact, over time: call, wait, SMS, call again.
- Pipeline — multiple agents on one call, handing off mid-conversation.
Pick the right one
Reaching the same person across days? Use a journey. Routing one live call through specialists (e.g. triage → sales)? Use a pipeline.
Journeys (multi-touch per contact)
A journey is configured on a campaign — it sequences steps that run per contact as calls
complete. Step types are call, wait, and sms.
{
"max_touches": 4,
"exit_on_success": true,
"steps": [
{ "type": "call", "label": "Initial contact" },
{ "type": "wait", "hours": 24, "label": "Wait 24h" },
{ "type": "sms", "body": "Hi {name}, we tried calling. Reply to schedule.", "label": "SMS follow-up" },
{ "type": "wait", "hours": 48, "label": "Wait 48h" },
{ "type": "call", "label": "Final attempt" }
]
}| Field | What it is |
|---|---|
steps | Ordered list of call / wait / sms steps. |
wait.hours | Hours to pause before the next step. |
sms.body | SMS text (sent via the configured SMS sender). Supports {name}. |
max_touches | Hard cap on actual calls, regardless of steps defined. |
exit_on_success | Stop the sequence as soon as a contact converts. |
When a call ends, the next step is computed automatically: a wait schedules the next
touch with a delay; exit_on_success ends the journey on a successful outcome; reaching
max_touches ends it too.
configure_journey(campaign_id="CAMPAIGN_ID", steps=[...], max_touches=4, exit_on_success=true)
get_journey(campaign_id="CAMPAIGN_ID")Pipelines (multi-agent on a single call)
A pipeline chains multiple agents within one call — one agent can hand off to another mid-conversation (for example, a triage agent transfers to a sales agent). Build them from templates such as sales pipeline, inbound routing, and appointment setting.
create_pipeline(name="Triage → Sales", ...)
create_smart_pipeline(...) # cost-weighted build with a preview
list_pipelines()
get_pipeline(pipeline_id="...")
activate_pipeline(pipeline_id="...")
delete_pipeline(pipeline_id="...")create_smart_pipeline produces a cost-weighted preview before you commit, then you
activate_pipeline to make it live.
Next
- Agents — the agents a journey or pipeline orchestrates.
- Campaigns — where journeys are configured.
- Calls & transcripts — read the outcomes.
Campaigns
Create a campaign, add leads, then launch through the deterministic pre-flight gate. Covers settings (country_code, purpose, recording_enabled) and the readiness check.
Messaging (SMS & WhatsApp)
Send SMS and WhatsApp from your own numbers — multi-provider BYO routing, the POST /sms endpoint, the send_message MCP tool, and conversation history.