This page documents the canonical HTTP contract for this endpoint.
Step kinds
| Kind | Channel | Description |
|---|---|---|
EMAIL | Email (new or reply). Set emailSendMode, emailIsReply. | |
CALL | call | Outbound call task. |
CUSTOM | custom | Free-form task. |
LINKEDIN_CONNECT | Send a connection request. scriptTemplate is the invite note (max 300 chars). | |
LINKEDIN_MESSAGE | Best-available LinkedIn message delivery: chat for 1st-degree leads, otherwise InMail when available. | |
LINKEDIN_CHAT_MESSAGE | LinkedIn chat only. Requires a 1st-degree connection. | |
LINKEDIN_VISIT_PROFILE | Visit the lead's LinkedIn profile; this step is always automated and always notifies the lead. | |
LINKEDIN_VOICE_MESSAGE | Send a voice note. 1st degree connections only. |
Execution graph
Every authored sequence with actions needs flowGraph, including a single action or a straight-line design. Declare version=1 and exactly one intended starting node in entryNodeIds. Explicit edges determine continuation; a single terminal action can have edges=[]. The steps array is an action content catalog; its order, titles, and parentNodeId do not route execution.
Action nodes must reference executable steps with sourceStepId or inline stepConfig. Decision nodes need metadata.decisionType and explicit branch nodes and edges.
For LinkedIn connection branching, attach a condition to the connect action with metadata.decisionType=outcome_wait, metadata.listenFor=linkedin_connection_accepted, and metadata.waitMode=up_to. Route one branch to connected-only actions such as LINKEDIN_CHAT_MESSAGE and the other branch to fallback actions such as email. Use LINKEDIN_MESSAGE for best-available LinkedIn delivery on paths that may not be connected.
Execution modes
executionMode: AUTOMATED creates a scheduled action; MANUAL creates a review task.
Treat automated sending and AI drafting as separate choices. Template-based automation uses fixed templates with executionMode=AUTOMATED. Manual AI-draft review uses executionMode=MANUAL and aiDraft=true. Only use automated AI-written sends when the sequence explicitly opts into trusted AI automation.
Exit rules
stopOnLinkedInReply stops the sequence when a lead replies on LinkedIn.
Creation and activation
This HTTP request saves DRAFT and returns {id, success}. It does not activate, enroll an audience, or send. To activate, bind the exact returned id and separately call Set sequence status with status=ACTIVE, sequences:run, and the required sender and readiness checks.
Command Center's completed new-sequence creation flow normally continues from the saved draft to that separate activation boundary. Under Approve for me, activation is routine and may run automatically after readiness checks; Ask for approval still prompts. Lead enrollment remains sensitive and requires approval under Approve for me. Explicit draft-only or keep-inactive requests stop at DRAFT. A saved draft, preview, or publish receipt does not prove activation; report ACTIVE only after the activation result or a persisted status read. Activation failure leaves the saved sequence available for correction. This default does not authorize enrolling an audience.
Authentication and actor
Developer API key requests use the key owner when actorUserId is omitted; otherwise the explicit actor must be an active same-organization user. An invalid explicit actor is rejected and does not fall back to the key owner. Session requests default to the signed-in user; an explicit sequence actor must be an active same-organization user.
Validation rules
sourceTableIdand at least one step are required for developer API key requests; authenticated-session requests follow the model's optional source-table and default-empty-steps fields.- First email step cannot be a reply.
- Bulk and personal delivery both support manual email review tasks; automated bulk sends still require provider readiness.
aiDraftgenerates content at execution time (email subject/body, LinkedIn message, call script).- For ordinary campaign creation, pair
aiDraft=truewithexecutionMode=MANUALso a human reviews the draft. - When a user asks to automate sending without review, use fixed templates with
aiDraft=false. - Leads must have
linkedin_urlto be reachable for LinkedIn steps.
Query parameters
actorUserId· optionalstring
Optional actor override; must resolve to an active user in the same org.
| Name | Type | Description |
|---|---|---|
| actorUserId | string | Optional actor override; must resolve to an active user in the same org. |
Body parameters
namerequiredstring
Sequence name.
sourceTableId· optionalstring
Optional in the model; required for developer API key requests.
sourceTableName· optionalstring
Optional display name for the source table.
description· optionalstring
Optional sequence description.
steps· optionalarray<object>
Action content catalog referenced by flowGraph; array order does not determine execution. Defaults to []; developer API key requests must include at least one step.
flowGraph· optionalobject
Required when actions exist, including straight-line sequences. Declare version=1, exactly one entryNodeIds node, action nodes, and explicit routing edges.
exitRulesrequiredobject
Exit behavior configuration.
schedulerequiredobject
Timezone + working window configuration.
emailDelivery· optionalobject
Delivery mode (personal/bulk).
defaultAppendSignature· optionalboolean
Default signature behavior for email steps.
enrollmentRules· optionalobject
Optional enrollment policy; omitted values use SequenceEnrollmentRules defaults.
requiredVariables· optionalarray<string>
Optional required template variables.
inboxAccess· optionalobject
Optional inbox access configuration.
senderAccountIds· optionalobject
Optional channel-keyed sender account IDs.
senderBindings· optionalobject
Optional channel-keyed sender binding definitions.
allowHqFallback· optionalboolean
Whether call steps may use company phone when lead phone is missing; null/omitted uses the configured new-sequence default.
aiAutomationTrusted· optionalboolean
Trust flag for permitted AI-drafted automated steps; defaults to false.
aiDraftSettings· optionalobject
Optional sequence AI-draft settings.
variableMap· optionalobject
Optional variable-to-source-field mapping.
voiceStyle· optionalobject
Optional voice style settings.
steps[].appendSignature· optionalboolean
Step-level override for signature append behavior.
| Name | Type | Description |
|---|---|---|
| namerequired | string | Sequence name. |
| sourceTableId | string | Optional in the model; required for developer API key requests. |
| sourceTableName | string | Optional display name for the source table. |
| description | string | Optional sequence description. |
| steps | array<object> | Action content catalog referenced by flowGraph; array order does not determine execution. Defaults to []; developer API key requests must include at least one step. |
| flowGraph | object | Required when actions exist, including straight-line sequences. Declare version=1, exactly one entryNodeIds node, action nodes, and explicit routing edges. |
| exitRulesrequired | object | Exit behavior configuration. |
| schedulerequired | object | Timezone + working window configuration. |
| emailDelivery | object | Delivery mode (personal/bulk). |
| defaultAppendSignature | boolean | Default signature behavior for email steps. |
| enrollmentRules | object | Optional enrollment policy; omitted values use SequenceEnrollmentRules defaults. |
| requiredVariables | array<string> | Optional required template variables. |
| inboxAccess | object | Optional inbox access configuration. |
| senderAccountIds | object | Optional channel-keyed sender account IDs. |
| senderBindings | object | Optional channel-keyed sender binding definitions. |
| allowHqFallback | boolean | Whether call steps may use company phone when lead phone is missing; null/omitted uses the configured new-sequence default. |
| aiAutomationTrusted | boolean | Trust flag for permitted AI-drafted automated steps; defaults to false. |
| aiDraftSettings | object | Optional sequence AI-draft settings. |
| variableMap | object | Optional variable-to-source-field mapping. |
| voiceStyle | object | Optional voice style settings. |
| steps[].appendSignature | boolean | Step-level override for signature append behavior. |
Errors
| Status | Meaning |
|---|---|
| 400 | Invalid payload, graph, or actor (source_table_required, steps_required, invalid_sequence_flow_graph, invalid_actor_user_id, etc.). |
| 401 | Invalid API key or missing auth. |
| 403 | Missing sequences:write scope. |
