Update a step
Changes a step in place. Send only the fields to change; the rest keep their values. Position is not editable here: use PUT /v2/sequencer/sequences/{sequence_id}/steps/reorder.
The resulting step is checked against the same rules as adding a step (400 when broken). Changing step_type clears what no longer applies: leaving call drops call_purpose, and leaving auto_email/manual_email drops templates and personalization and sets new_thread to false. No field may be null. templates, when sent, replaces the whole list and must hold 1 to 10 entries.
display_name (on a call or task step) and task_note (on any step) take the same variables as a template, except AI lines, and are filled in for each contact on the task the step creates. An email step’s name takes no variables. A token a field cannot take is refused with 400 and code: unknown_variables, the same body as a template write, and each entry in unknown also names its field (display_name or task_note). The reason is not_allowed_here for an AI line, and for anything in double braces in an email step’s name. Only what the update changes is checked: the note when it changes, and the name when it changes or when the step switches between an email type and a call or to-do. So a step saved before the check can still have its delay changed.
personalization turns on AI-written emails for an auto_email or manual_email step: each contact’s email is written for them from the template’s AI lines, or within instructions when it has none. review: "rep" (accepted on auto_email steps only) makes each email a manual_email task for a rep to check first. personalization replaces the stored settings whole: leaving out instructions clears them, and leaving out review resets it to auto. Sent for a call or task step, it is dropped rather than refused.
Allowed while people are in the sequence: anyone who has not reached the step yet gets the new version, and a task the step already created keeps the note, priority and draft it was created with. Safe to retry. user_id must be the author, the team owner or a team admin. Counts toward the Sequencer writes rate limit.
Example
Wait three days before this step instead of two, and raise its priority:Variables and personalization
display_nameandtask_notetake variables as described on Add a step, and a token they cannot take is refused with the same 400. Only what the update changes is checked: the note when it changes, and the name when it changes or when the step switches between an email type and a call or to-do. A step saved before the check can still have its delay changed.personalizationturns AI personalization on or off for an email step, or changes itsinstructionsorreview. The fields are described on Add a step. It replaces the stored settings whole:{"enabled": true}alone clearsinstructionsand resetsreviewtoauto, so send every field you want to keep. On a step that is, or becomes, acallortaskstep it is dropped, not refused: unlike Add a step, an update does not answer 400 for it.review: "rep"on amanual_emailstep is still refused.
Rules
- The step as it would be after the change is checked against the same rules as Add a step, and a broken rule is a 400.
- A change that makes a different
auto_emailstep start a thread, such as changing the first email step’sstep_type, is also a 400 when that step has a template with no subject. - Changing
step_typeclears what no longer applies: moving away fromcalldropscall_purpose, and moving away fromauto_emailormanual_emaildropstemplatesandpersonalizationand setsnew_threadtofalse. templatesreplaces the step’s whole list and must hold 1 to 10 entries. To take a template off a step, send the list without it.- No field may be
null.
Editing a running sequence
Editing a step is allowed while people are in the sequence. Anyone who has not reached the step yet gets the new version. A task the step already created keeps the note, priority and draft it was created with. Sending the same body twice leaves the same result, so a retry is safe.user_id must be the sequence’s
author, the team owner or a team admin.Authorizations
Team-scoped API key generated in the Salesfinity dashboard under Settings → Connections → API & Webhooks. A missing or invalid key returns HTTP 403.
Path Parameters
24-character sequence id.
24-character step id.
Body
The team member making the change. Must be the sequence's author, the team owner or a team admin, and have an active plan or seat. A 24-character hexadecimal ID.
"507f1f77bcf86cd799439011"
auto_email sends an email on its own; manual_email, call and task create a task for the rep who owns the enrollment. Changing the type clears what no longer applies: leaving call drops call_purpose, and leaving auto_email/manual_email drops templates and personalization and sets new_thread to false.
auto_email, manual_email, call, task Required on an interval sequence, refused on a date sequence. Seconds to wait after the previous step finished (an email sent, or a task completed or skipped); for the first step, after enrollment. Whole number.
x >= 0Required on a date sequence, refused on an interval sequence. ISO 8601 date-time when the step comes due.
The step's name, up to 200 characters. On a call or task step it titles the task the step creates and can use variables, filled in for each contact (Call {{first_name}} at {{company}}); an empty variable with no fallback shows as its name in brackets, such as [First name]. It takes the same variables as a template except AI lines. An email step's name is the same for everyone and takes no variables.
200auto_email and manual_email only. true starts a new email thread with this step's template subject; otherwise the email replies in the previous email's thread and the template's subject is not sent. The first email step always starts a thread.
Up to 2,000 characters, shown to the rep on the task the step creates. It can use variables on every step type, filled in for each contact; an empty variable with no fallback shows as its name in brackets, such as [First name]. It takes the same variables as a template except AI lines.
2000high, medium, low Seconds after the task is created at which a still-open task expires and the enrollment moves on. Whole number. Omit to let tasks wait indefinitely.
x >= 0call steps only.
auto_email and manual_email only; auto_email needs at least one. 1 to 10 templates, each on your team (archived ones are accepted), picked by weight each time the step runs. Replaces the step's whole list.
10Email steps only (auto_email, manual_email); on a step that is, or becomes, a call or task step it is dropped. When on, each contact's email is written for them when the step runs, from the step's template and what Salesfinity knows about them: the template's AI lines ({{ai:name|what to write}}) are filled in, or, if it has none, the email is rewritten within instructions. If an email cannot be personalized (for example, the team's daily personalization budget is used up), the plain template is used instead; a template with AI lines goes to the rep as a manual_email task rather than out with the lines unwritten. On update, this object replaces the stored one whole: send every field you want to keep.
Response
The updated step.
One step of a cadence.
24-character hexadecimal id.
"507f1f77bcf86cd799439011"
The sequence the step belongs to (24-character id).
"507f1f77bcf86cd799439011"
The team that owns the step (24-character id).
1-based position in the cadence. Steps run in this order; change it with PUT /v2/sequencer/sequences/{sequence_id}/steps/reorder.
auto_email sends an email on its own. manual_email creates a task with the email drafted from a template, for the rep to edit and send. call creates a call task. task creates a to-do. Tasks go to the rep who owns the enrollment.
auto_email, manual_email, call, task On an interval sequence: seconds to wait after the previous step finished (an email sent, or a task completed or skipped) before this step comes due. For the first step, the wait after enrollment. Absent on a date sequence.
On a date sequence: when the step comes due. Absent on an interval sequence.
The step's name. On a call or task step it can hold variables, and titles the task the step creates, filled in for that contact.
Email steps: true starts a new email thread with this step's template subject; false replies in the previous email's thread, so the template's subject is not sent. The first email step always starts a thread.
Note for the rep, filled in for each contact on the task the step creates. It can hold variables.
Priority copied onto the task the step creates. Defaults to medium.
high, medium, low Seconds after the task is created (when the step comes due) at which a still-open task expires and the enrollment moves on to the next step. Absent means tasks wait indefinitely.
Email steps: the templates to pick from, by weight. Empty for call and task steps.
Call steps only: the call purpose set on the step. Absent when none is set.
The step's AI personalization settings: enabled, instructions and review (auto or rep). Absent when personalization was never set.
Number of deliveries from this step, counted as events. Rebuilt every 15 minutes.
Number of opens from this step, counted as events. Rebuilt every 15 minutes.
Number of link clicks from this step, counted as events. Rebuilt every 15 minutes.
Number of replies from this step, counted as events. Rebuilt every 15 minutes.
Number of bounces from this step, counted as events. Rebuilt every 15 minutes.
Number of opt-outs from this step, counted as events. Rebuilt every 15 minutes.
Number of failed sends from this step, counted as events. Rebuilt every 15 minutes.
Times this step ran and produced work: emails sent plus tasks created. Rebuilt every 15 minutes.
When the step was created.
When it last changed.