Skip to main content
PATCH
Update a step
Changes a step in place. Send only the fields you want to change; everything else keeps its value. To move a step, use Reorder steps.

Example

Wait three days before this step instead of two, and raise its priority:

Variables and personalization

  • display_name and task_note take 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.
  • personalization turns AI personalization on or off for an email step, or changes its instructions or review. The fields are described on Add a step. It replaces the stored settings whole: {"enabled": true} alone clears instructions and resets review to auto, so send every field you want to keep. On a step that is, or becomes, a call or task step it is dropped, not refused: unlike Add a step, an update does not answer 400 for it. review: "rep" on a manual_email step 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_email step start a thread, such as changing the first email step’s step_type, is also a 400 when that step has a template with no subject.
  • Changing step_type clears what no longer applies: moving away from call drops call_purpose, and moving away from auto_email or manual_email drops templates and personalization and sets new_thread to false.
  • templates replaces 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

x-api-key
string
header
required

Team-scoped API key generated in the Salesfinity dashboard under Settings → Connections → API & Webhooks. A missing or invalid key returns HTTP 403.

Path Parameters

sequence_id
string
required

24-character sequence id.

step_id
string
required

24-character step id.

Body

application/json
user_id
string
required

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.

Example:

"507f1f77bcf86cd799439011"

step_type
enum<string>

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.

Available options:
auto_email,
manual_email,
call,
task
interval_seconds
number

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.

Required range: x >= 0
date
string<date-time>

Required on a date sequence, refused on an interval sequence. ISO 8601 date-time when the step comes due.

display_name
string

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.

Maximum string length: 200
new_thread
boolean

auto_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.

task_note
string

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.

Maximum string length: 2000
task_priority
enum<string>
default:medium
Available options:
high,
medium,
low
task_autoskip_delay
number

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.

Required range: x >= 0
call_purpose
object

call steps only.

templates
object[]

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.

Maximum array length: 10
personalization
object

Email 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.

_id
string

24-character hexadecimal id.

Example:

"507f1f77bcf86cd799439011"

sequence
string

The sequence the step belongs to (24-character id).

Example:

"507f1f77bcf86cd799439011"

team
string

The team that owns the step (24-character id).

order
integer

1-based position in the cadence. Steps run in this order; change it with PUT /v2/sequencer/sequences/{sequence_id}/steps/reorder.

step_type
enum<string>

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.

Available options:
auto_email,
manual_email,
call,
task
interval_seconds
integer | null

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.

date
string<date-time> | null

On a date sequence: when the step comes due. Absent on an interval sequence.

display_name
string | null

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.

new_thread
boolean

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.

task_note
string | null

Note for the rep, filled in for each contact on the task the step creates. It can hold variables.

task_priority
enum<string>

Priority copied onto the task the step creates. Defaults to medium.

Available options:
high,
medium,
low
task_autoskip_delay
integer | null

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.

templates
object[]

Email steps: the templates to pick from, by weight. Empty for call and task steps.

call_purpose
object

Call steps only: the call purpose set on the step. Absent when none is set.

personalization
object | null

The step's AI personalization settings: enabled, instructions and review (auto or rep). Absent when personalization was never set.

deliver_count
integer

Number of deliveries from this step, counted as events. Rebuilt every 15 minutes.

open_count
integer

Number of opens from this step, counted as events. Rebuilt every 15 minutes.

click_count
integer

Number of link clicks from this step, counted as events. Rebuilt every 15 minutes.

reply_count
integer

Number of replies from this step, counted as events. Rebuilt every 15 minutes.

bounce_count
integer

Number of bounces from this step, counted as events. Rebuilt every 15 minutes.

opt_out_count
integer

Number of opt-outs from this step, counted as events. Rebuilt every 15 minutes.

failure_count
integer

Number of failed sends from this step, counted as events. Rebuilt every 15 minutes.

schedule_count
integer

Times this step ran and produced work: emails sent plus tasks created. Rebuilt every 15 minutes.

created_at
string<date-time>

When the step was created.

updated_at
string<date-time>

When it last changed.