Skip to main content
PATCH
Edit a sequence step

Authorizations

Authorization
string
header
required

Your API token (af_…) as the Basic-auth username, with an empty password.

Path Parameters

campaignId
string
required

The campaign's id (24-character hex ObjectId), as returned by POST /business/campaigns or as the campaignId of a GET /business/campaigns row.

stepId
string
required

The sequence step's id, as returned by GET /business/campaigns/{campaignId}/steps (24-character hex ObjectId).

Body

application/json
subject
string

New subject line for a manual step (up to 500 characters, may be empty); must be sent together with body because the pair replaces the step's whole template. Silently ignored on ai_generated / ai_reply steps.

Maximum string length: 500
body
string

New message body for a manual step (up to 50000 characters, may be empty; HTML is allowed on email steps, {Variable} tokens and spintax substitute at send time); must be sent together with subject. On a linkedin_connection step this is the invitation note LinkedIn caps at 200 characters — a longer body answers 422 CONNECTION_NOTE_TOO_LONG. Silently ignored on ai_generated / ai_reply steps.

Maximum string length: 50000
topic
string

Free text: what this step should say, in your own words — there is no fixed set of topics. Up to 1000 characters. An AI step writes each message from it, and setting it also regenerates the step's title with AI. Stored but not rendered for manual steps.

Maximum string length: 1000
daysBetween
integer

Whole days to wait after the previous step (or after the campaign start for the first step) before this step is due, 0-365. On a condition step it is the window instead, 1-30 days (422 CONDITION_WINDOW_OUT_OF_RANGE outside it), and it is the only field a condition step accepts (422 CONDITION_STEP_FIELD_NOT_EDITABLE for subject, body or topic). An A/B split never waits: only 0 is accepted on it.

Required range: 0 <= x <= 365
splitArms
object[]

A/B split steps only, and the only field they accept: both arms, a then b, each { key, label?, weight }, with whole-percent weights adding up to 100. Accepted at any time, also on a running campaign: leads the split already routed but not yet sent anything in their arm then follow the new weights; leads their arm already contacted, or who replied, bounced or unsubscribed, keep their arm. 422 SPLIT_ARMS_INVALID on any other step.

Response

Success

stepId
string
required

The step that was updated.