Skip to main content
POST
Duplicate a sequence
Copies a sequence and its steps into a new, disabled sequence authored by user_id. Any active member of the team can duplicate any of the team’s sequences, not only the ones they can edit.

Example

Without name, the copy is called the original’s name followed by (Copy).

What is copied

The copied steps point at the same templates, not copies of them. Editing one of those templates changes what both sequences send.

Typical use

Duplicating is the way to restructure a sequence people are moving through. Steps cannot be reordered or deleted while enrollments are active or paused, so duplicate the sequence, change the copy, enable it, and move people over with Move enrollments to another sequence. They start the copy from its first step. Without an Idempotency-Key, a retry makes a second copy.

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.

Headers

Idempotency-Key
string

Makes this write safe to retry. Send a unique value, such as a UUID, and send the same value again when you retry the same request. A retry with the same key and the same request (method, path including the query string, and JSON body) returns the original successful response without acting twice. The same key with a different body or path returns 409, and so does a retry while the first request is still running; that one is safe to repeat after a moment. A request that fails frees its key, so a retry runs the write again: after a 5xx on a create, confirm with a GET before retrying. Keys are kept for 24 hours and are scoped to your team.

Path Parameters

id
string
required

24-character sequence id.

Body

application/json
user_id
string
required

The team member making the copy; it becomes the copy's author. Any active team member with an active plan or seat may duplicate any of the team's sequences. A 24-character hexadecimal ID.

Example:

"507f1f77bcf86cd799439011"

name
string

Name for the copy, 1 to 200 characters. Defaults to the original's name followed by (Copy).

Maximum string length: 200

Response

The copy. can_manage is not included.

A Sequencer sequence (a cadence). can_manage is returned by list and get only; step_type_counts and enrollment_counts by list only.

_id
string

24-character hexadecimal id.

Example:

"507f1f77bcf86cd799439011"

team
string

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

name
string

Sequence name.

description
string | null
tags
string[]

Free-text labels for filtering.

enabled
boolean

Whether the sequence is running. New and duplicated sequences start false.

sequence_type
enum<string>

interval: each step waits interval_seconds after the previous one. date: each step comes due on its own date.

Available options:
interval,
date
user
string

Author's team member id. Only the author, the team owner or an admin can change the sequence. On GET /v2/sequencer/sequences this field arrives expanded, as an object with _id, first_name, last_name and email, not as a string.

policy
string | null

Rules-of-engagement policy id, or null (or absent) when the sequence uses the team default policy.

transactional
boolean

Whether the sequence is transactional: enrollment skips the suppression list, and sends skip only unsubscribed and manual suppression entries.

throttle_capacity
integer | null

Most live (pending, active or paused) enrollments per owner. Absent when there is no cap.

throttle_max_adds_per_day
integer | null

Most new enrollments per owner per day. Absent when there is no cap.

throttle_paused
boolean

When true, adding people is refused while the sequence keeps running for those already in it.

track_opens
boolean

Whether emails carry an open-tracking pixel.

Whether links in emails are rewritten to track clicks.

sequence_step_count
integer

Number of steps. Updated whenever a step is added, changed or deleted.

duration_in_days
integer

Sum of the steps' interval_seconds, rounded up to whole days. Always 0 on a date sequence.

num_contacted_prospects
integer

Distinct people reached: sent or delivered an email, or a completed call or task. Rebuilt every 15 minutes.

num_replied_prospects
integer

Distinct people who replied. Rebuilt every 15 minutes.

open_count
integer

Number of opens, counted as events, not people. Rebuilt every 15 minutes.

click_count
integer

Number of link clicks, counted as events, not people. Rebuilt every 15 minutes.

reply_count
integer

Number of replies, counted as events, not people. Rebuilt every 15 minutes.

bounce_count
integer

Number of bounces, counted as events, not people. Rebuilt every 15 minutes.

opt_out_count
integer

Number of opt-outs, counted as events, not people. Rebuilt every 15 minutes.

deliver_count
integer

Number of deliveries, counted as events, not people. Rebuilt every 15 minutes.

enabled_at
string<date-time>

When the sequence was last enabled. Absent if it never has been.

archived_at
string<date-time> | null

When the sequence was archived in the dashboard, or null. Archived sequences are left out of the list and cannot be enabled or enrolled into; the API has no archive endpoint.

primary_reply_action
enum<string>

What a reply that reads as interested, a meeting request, or unclear does to the enrollment.

Available options:
finish,
continue,
pause
primary_reply_pause_duration
integer

Seconds an enrollment pauses for when primary_reply_action is pause. Absent means the pause lasts until someone resumes it.

schedule
object

The sequence's own sending window. Absent when the sequence uses the team default schedule.

email_account_ids
integer[]

Mailbox ids the sequence sends from. Empty means the author's assigned mailboxes, or the team's shared ones when the author has none.

failure_count
integer

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

schedule_count
integer

Number of times a step ran and produced work: emails sent plus tasks created. Rebuilt every 15 minutes.

reply_rate
integer

num_replied_prospects as a percentage of num_contacted_prospects, 0 to 100, rounded. 0 while nobody has been contacted.

automation_percentage
integer

Share of steps that are auto_email, 0 to 100, rounded.

last_activity_at
string<date-time> | null

When anything last happened in the sequence (an email, a task, a reply). Null for a sequence that has done nothing.

step_type_counts
object

List only. How many steps of each type the sequence has. Every type is always present.

enrollment_counts
object

List only. Live count of the sequence's enrollments in each state, plus total. Every state is always present.

can_manage
boolean

Whether the member the request acted as may change this sequence. API reads act as the team owner, so this is true on every API read; it does not tell you whether a given user_id may edit. Returned by list and get only.

created_at
string<date-time>

When the sequence was created.

updated_at
string<date-time>

When it last changed.