Skip to main content
POST
Apply the reviewed changes atomically

Authorizations

X-API-Key
string
header
required

Path Parameters

sequence_id
string<uuid>
required

Body

application/json
expected_updated_at
string<date-time>
required
agent
OutboundAgentUpdateSchema · object | null

A change to an agent, sent whole against the version it was read at.

The configuration travels as one object rather than as fifteen optional fields: the Agent tab reads the agent, edits it and sends it back, and expected_version makes two people editing at once a 409 rather than a silent overwrite.

audience
AudiencePutSchema · object | null
copy_from_sequence_id
string<uuid> | null
expected_agent_version
integer | null
graph
SequenceGraphPutSchema · object | null
mapping
ColumnMappingSchema · object | null

Which audience columns carry a meaning, all detected from the table.

One field per channel (email, LinkedIn) plus the company domain the coverage line reports on. Leave the whole object out when binding an audience and the columns are detected server-side. Send it only to correct a detection: a first name, a company or a last-contacted date is no longer part of this — every column on the table is already addressable as a {{Column name}} variable.

prompt_proposal
OutboundPromptProposalAcceptSchema · object | null

Accept a proposal, writing the prompts as the agent's next version.

restore_version
integer | null
Required range: x >= 1
review_token
string | null
sender_profile_ids
string<uuid>[] | null
settings
SequenceUpdateSchema · object | null
training_revision
integer | null
training_session_id
string<uuid> | null

Response

Successful Response

audience_table_id
string<uuid> | null
required
audience_view_id
string<uuid> | null
required
column_mapping
ColumnMappingSchema · object
required

Which audience columns carry a meaning, all detected from the table.

One field per channel (email, LinkedIn) plus the company domain the coverage line reports on. Leave the whole object out when binding an audience and the columns are detected server-side. Send it only to correct a detection: a first name, a company or a last-contacted date is no longer part of this — every column on the table is already addressable as a {{Column name}} variable.

created_at
string<date-time>
required
edges
SequenceEdgeSchema · object[]
required
id
string<uuid>
required
launched_at
string<date-time> | null
required
multithreading
Multithreading · object | null
required
name
string
required
pause_reason
string | null
required
sending_window
Sending Window · object | null
required
status
enum<string>
required

Lifecycle of a sequence.

DRAFT until launch; RUNNING sequences are locked against structural edits (pause → edit → resume); PAUSED stops scheduling while leaving every enrolment exactly where it is; COMPLETED is terminal.

Available options:
draft,
running,
paused,
completed
status_column_id
string<uuid> | null
required
step_count
integer
required
steps
SequenceStepSchema · object[]
required
updated_at
string<date-time>
required
bcc_addresses
string[]

SEQ-21: blind copies on every email this sequence sends.

cc_addresses
string[]

SEQ-21: addresses copied on every email this sequence sends.

connection_requests_sent
integer | null
connections_accepted
integer | null

SEQ-06: invitations from this sequence confirmed accepted. With connection_requests_sent this yields the acceptance rate.

contacts_added
integer | null

§21 rollup, list reads only. None when the rollup has never run for this org — show a zero state, not a fake 0.

contacts_failed
integer | null
contacts_finished
integer | null
contacts_in_progress
integer | null
continuous_enrolment
boolean
default:false

TRUE keeps the audience live: rows added to the table later enrol on their own, and rows that leave it stop. FALSE (the default for a new sequence) freezes the audience after launch; Add to sequence still adds rows to it by hand.

email_approval_mode
string | null

manual requires approval; confident adds approval for uncertain AI-written emails; null follows the sender. There is no value meaning 'send automatically': a sequence can only add an approval.

emails_sent
integer | null
last_synced_at
string<date-time> | null

§20: when the audience-enrolment diff last completed. None until the first sync (launch runs one inline) — the Audience tab shows this plus a manual trigger, never a background job the user cannot see.

linkedin_approval_mode
string | null

manual requires approval; confident adds approval for uncertain AI-written LinkedIn steps; null follows the sender. There is no value meaning 'send automatically': a sequence can only add an approval.

linkedin_check_max_seconds
integer | null
deprecated

Retired. Acceptance checks now use the service-managed interval.

linkedin_check_min_seconds
integer | null
deprecated

Retired. Acceptance checks now use the service-managed interval.

linkedin_messages_sent
integer | null
opportunity_values
Opportunity Values · object | null

SEQ-23: dollars per outcome label; None = tracking off.

outbound_agent_id
string<uuid> | null

The sequence's outbound agent: the writer of every agent-written step and of its replies. Read and configure it under /outbound-agents/{id}/.

plain_text_only
boolean
default:true

SEQ-16: TRUE (recommended) sends text-only with formatting marks stripped; FALSE sends a multipart/alternative with the marks as HTML.

positive
integer | null

Threads labelled positive (rollup, list reads only).

positive_rate
number | null
replies
integer | null

SEQ-06: distinct contacts who replied — reply_rate's numerator.

reply_rate
number | null
sender_profile_names
string[]

Only meaningful on list reads: the assigned sender profiles' names.

senders_ready
boolean
default:true

Only meaningful on list reads: False when the sequence has assigned sender profiles but none currently has a connected mailbox.

sending_priority
string
default:new_contacts

SEQ-20: who gets scarce capacity first — new_contacts or follow_ups.

spending_limit_tenths
integer | null