curl --request PATCH \
--url https://client-api.salesfinity.co/v2/sequencer/sequences/{id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"user_id": "<string>",
"name": "<string>",
"description": "<string>",
"tags": [
"<string>"
],
"sequence_type": "interval",
"policy": "<string>",
"throttle_max_adds_per_day": 123,
"throttle_capacity": 123,
"throttle_paused": true,
"transactional": true,
"track_opens": true,
"track_links": true,
"primary_reply_action": "finish",
"primary_reply_pause_duration": 123,
"schedule": {
"timezone_source": "prospect",
"timezone": "UTC",
"days_of_week": [
1,
2,
3,
4,
5
],
"start_hour": 8,
"end_hour": 17
},
"email_account_ids": [
123
]
}
'import requests
url = "https://client-api.salesfinity.co/v2/sequencer/sequences/{id}"
payload = {
"user_id": "<string>",
"name": "<string>",
"description": "<string>",
"tags": ["<string>"],
"sequence_type": "interval",
"policy": "<string>",
"throttle_max_adds_per_day": 123,
"throttle_capacity": 123,
"throttle_paused": True,
"transactional": True,
"track_opens": True,
"track_links": True,
"primary_reply_action": "finish",
"primary_reply_pause_duration": 123,
"schedule": {
"timezone_source": "prospect",
"timezone": "UTC",
"days_of_week": [1, 2, 3, 4, 5],
"start_hour": 8,
"end_hour": 17
},
"email_account_ids": [123]
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
user_id: '<string>',
name: '<string>',
description: '<string>',
tags: ['<string>'],
sequence_type: 'interval',
policy: '<string>',
throttle_max_adds_per_day: 123,
throttle_capacity: 123,
throttle_paused: true,
transactional: true,
track_opens: true,
track_links: true,
primary_reply_action: 'finish',
primary_reply_pause_duration: 123,
schedule: {
timezone_source: 'prospect',
timezone: 'UTC',
days_of_week: [1, 2, 3, 4, 5],
start_hour: 8,
end_hour: 17
},
email_account_ids: [123]
})
};
fetch('https://client-api.salesfinity.co/v2/sequencer/sequences/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://client-api.salesfinity.co/v2/sequencer/sequences/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'user_id' => '<string>',
'name' => '<string>',
'description' => '<string>',
'tags' => [
'<string>'
],
'sequence_type' => 'interval',
'policy' => '<string>',
'throttle_max_adds_per_day' => 123,
'throttle_capacity' => 123,
'throttle_paused' => true,
'transactional' => true,
'track_opens' => true,
'track_links' => true,
'primary_reply_action' => 'finish',
'primary_reply_pause_duration' => 123,
'schedule' => [
'timezone_source' => 'prospect',
'timezone' => 'UTC',
'days_of_week' => [
1,
2,
3,
4,
5
],
'start_hour' => 8,
'end_hour' => 17
],
'email_account_ids' => [
123
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://client-api.salesfinity.co/v2/sequencer/sequences/{id}"
payload := strings.NewReader("{\n \"user_id\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"sequence_type\": \"interval\",\n \"policy\": \"<string>\",\n \"throttle_max_adds_per_day\": 123,\n \"throttle_capacity\": 123,\n \"throttle_paused\": true,\n \"transactional\": true,\n \"track_opens\": true,\n \"track_links\": true,\n \"primary_reply_action\": \"finish\",\n \"primary_reply_pause_duration\": 123,\n \"schedule\": {\n \"timezone_source\": \"prospect\",\n \"timezone\": \"UTC\",\n \"days_of_week\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"start_hour\": 8,\n \"end_hour\": 17\n },\n \"email_account_ids\": [\n 123\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://client-api.salesfinity.co/v2/sequencer/sequences/{id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"user_id\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"sequence_type\": \"interval\",\n \"policy\": \"<string>\",\n \"throttle_max_adds_per_day\": 123,\n \"throttle_capacity\": 123,\n \"throttle_paused\": true,\n \"transactional\": true,\n \"track_opens\": true,\n \"track_links\": true,\n \"primary_reply_action\": \"finish\",\n \"primary_reply_pause_duration\": 123,\n \"schedule\": {\n \"timezone_source\": \"prospect\",\n \"timezone\": \"UTC\",\n \"days_of_week\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"start_hour\": 8,\n \"end_hour\": 17\n },\n \"email_account_ids\": [\n 123\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://client-api.salesfinity.co/v2/sequencer/sequences/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_id\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"sequence_type\": \"interval\",\n \"policy\": \"<string>\",\n \"throttle_max_adds_per_day\": 123,\n \"throttle_capacity\": 123,\n \"throttle_paused\": true,\n \"transactional\": true,\n \"track_opens\": true,\n \"track_links\": true,\n \"primary_reply_action\": \"finish\",\n \"primary_reply_pause_duration\": 123,\n \"schedule\": {\n \"timezone_source\": \"prospect\",\n \"timezone\": \"UTC\",\n \"days_of_week\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"start_hour\": 8,\n \"end_hour\": 17\n },\n \"email_account_ids\": [\n 123\n ]\n}"
response = http.request(request)
puts response.read_body{
"_id": "507f1f77bcf86cd799439011",
"name": "<string>",
"description": "<string>",
"tags": [
"<string>"
],
"enabled": true,
"sequence_type": "interval",
"user": "<string>",
"policy": "<string>",
"transactional": true,
"throttle_capacity": 123,
"throttle_max_adds_per_day": 123,
"throttle_paused": true,
"track_opens": true,
"track_links": true,
"sequence_step_count": 123,
"duration_in_days": 123,
"num_contacted_prospects": 123,
"num_replied_prospects": 123,
"open_count": 123,
"click_count": 123,
"reply_count": 123,
"bounce_count": 123,
"opt_out_count": 123,
"deliver_count": 123,
"can_manage": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"message": [
"limit must not be greater than 100"
],
"error": "Bad Request",
"statusCode": 400
}{
"message": "Forbidden resource",
"error": "Forbidden",
"statusCode": 403
}{
"message": "Not found",
"error": "Not Found",
"statusCode": 404
}{
"message": "Too many requests",
"error": "Too Many Requests",
"statusCode": 429
}{
"message": "Internal server error",
"error": "Internal Server Error",
"statusCode": 500
}Update a sequence
Changes settings, not structure — steps have their own endpoints. Requires the author or a team admin.
curl --request PATCH \
--url https://client-api.salesfinity.co/v2/sequencer/sequences/{id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"user_id": "<string>",
"name": "<string>",
"description": "<string>",
"tags": [
"<string>"
],
"sequence_type": "interval",
"policy": "<string>",
"throttle_max_adds_per_day": 123,
"throttle_capacity": 123,
"throttle_paused": true,
"transactional": true,
"track_opens": true,
"track_links": true,
"primary_reply_action": "finish",
"primary_reply_pause_duration": 123,
"schedule": {
"timezone_source": "prospect",
"timezone": "UTC",
"days_of_week": [
1,
2,
3,
4,
5
],
"start_hour": 8,
"end_hour": 17
},
"email_account_ids": [
123
]
}
'import requests
url = "https://client-api.salesfinity.co/v2/sequencer/sequences/{id}"
payload = {
"user_id": "<string>",
"name": "<string>",
"description": "<string>",
"tags": ["<string>"],
"sequence_type": "interval",
"policy": "<string>",
"throttle_max_adds_per_day": 123,
"throttle_capacity": 123,
"throttle_paused": True,
"transactional": True,
"track_opens": True,
"track_links": True,
"primary_reply_action": "finish",
"primary_reply_pause_duration": 123,
"schedule": {
"timezone_source": "prospect",
"timezone": "UTC",
"days_of_week": [1, 2, 3, 4, 5],
"start_hour": 8,
"end_hour": 17
},
"email_account_ids": [123]
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
user_id: '<string>',
name: '<string>',
description: '<string>',
tags: ['<string>'],
sequence_type: 'interval',
policy: '<string>',
throttle_max_adds_per_day: 123,
throttle_capacity: 123,
throttle_paused: true,
transactional: true,
track_opens: true,
track_links: true,
primary_reply_action: 'finish',
primary_reply_pause_duration: 123,
schedule: {
timezone_source: 'prospect',
timezone: 'UTC',
days_of_week: [1, 2, 3, 4, 5],
start_hour: 8,
end_hour: 17
},
email_account_ids: [123]
})
};
fetch('https://client-api.salesfinity.co/v2/sequencer/sequences/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://client-api.salesfinity.co/v2/sequencer/sequences/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'user_id' => '<string>',
'name' => '<string>',
'description' => '<string>',
'tags' => [
'<string>'
],
'sequence_type' => 'interval',
'policy' => '<string>',
'throttle_max_adds_per_day' => 123,
'throttle_capacity' => 123,
'throttle_paused' => true,
'transactional' => true,
'track_opens' => true,
'track_links' => true,
'primary_reply_action' => 'finish',
'primary_reply_pause_duration' => 123,
'schedule' => [
'timezone_source' => 'prospect',
'timezone' => 'UTC',
'days_of_week' => [
1,
2,
3,
4,
5
],
'start_hour' => 8,
'end_hour' => 17
],
'email_account_ids' => [
123
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://client-api.salesfinity.co/v2/sequencer/sequences/{id}"
payload := strings.NewReader("{\n \"user_id\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"sequence_type\": \"interval\",\n \"policy\": \"<string>\",\n \"throttle_max_adds_per_day\": 123,\n \"throttle_capacity\": 123,\n \"throttle_paused\": true,\n \"transactional\": true,\n \"track_opens\": true,\n \"track_links\": true,\n \"primary_reply_action\": \"finish\",\n \"primary_reply_pause_duration\": 123,\n \"schedule\": {\n \"timezone_source\": \"prospect\",\n \"timezone\": \"UTC\",\n \"days_of_week\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"start_hour\": 8,\n \"end_hour\": 17\n },\n \"email_account_ids\": [\n 123\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://client-api.salesfinity.co/v2/sequencer/sequences/{id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"user_id\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"sequence_type\": \"interval\",\n \"policy\": \"<string>\",\n \"throttle_max_adds_per_day\": 123,\n \"throttle_capacity\": 123,\n \"throttle_paused\": true,\n \"transactional\": true,\n \"track_opens\": true,\n \"track_links\": true,\n \"primary_reply_action\": \"finish\",\n \"primary_reply_pause_duration\": 123,\n \"schedule\": {\n \"timezone_source\": \"prospect\",\n \"timezone\": \"UTC\",\n \"days_of_week\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"start_hour\": 8,\n \"end_hour\": 17\n },\n \"email_account_ids\": [\n 123\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://client-api.salesfinity.co/v2/sequencer/sequences/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_id\": \"<string>\",\n \"name\": \"<string>\",\n \"description\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"sequence_type\": \"interval\",\n \"policy\": \"<string>\",\n \"throttle_max_adds_per_day\": 123,\n \"throttle_capacity\": 123,\n \"throttle_paused\": true,\n \"transactional\": true,\n \"track_opens\": true,\n \"track_links\": true,\n \"primary_reply_action\": \"finish\",\n \"primary_reply_pause_duration\": 123,\n \"schedule\": {\n \"timezone_source\": \"prospect\",\n \"timezone\": \"UTC\",\n \"days_of_week\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ],\n \"start_hour\": 8,\n \"end_hour\": 17\n },\n \"email_account_ids\": [\n 123\n ]\n}"
response = http.request(request)
puts response.read_body{
"_id": "507f1f77bcf86cd799439011",
"name": "<string>",
"description": "<string>",
"tags": [
"<string>"
],
"enabled": true,
"sequence_type": "interval",
"user": "<string>",
"policy": "<string>",
"transactional": true,
"throttle_capacity": 123,
"throttle_max_adds_per_day": 123,
"throttle_paused": true,
"track_opens": true,
"track_links": true,
"sequence_step_count": 123,
"duration_in_days": 123,
"num_contacted_prospects": 123,
"num_replied_prospects": 123,
"open_count": 123,
"click_count": 123,
"reply_count": 123,
"bounce_count": 123,
"opt_out_count": 123,
"deliver_count": 123,
"can_manage": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"message": [
"limit must not be greater than 100"
],
"error": "Bad Request",
"statusCode": 400
}{
"message": "Forbidden resource",
"error": "Forbidden",
"statusCode": 403
}{
"message": "Not found",
"error": "Not Found",
"statusCode": 404
}{
"message": "Too many requests",
"error": "Too Many Requests",
"statusCode": 429
}{
"message": "Internal server error",
"error": "Internal Server Error",
"statusCode": 500
}Authorizations
Team-scoped API key generated in the Salesfinity dashboard under Settings -> Connections & API. A missing or invalid key returns HTTP 403.
Path Parameters
24-character sequence id.
Body
The team member making the change. Must be the author or a team admin.
interval steps fire a delay after the previous one; date steps fire on a fixed date.
interval, date Rules-of-engagement policy id. Omit to use the team default; send null to detach and fall back to it.
Cap on new enrollments per owner per day.
Cap on live enrollments per owner.
Refuse new enrollments without disabling the sequence.
Marks the sequence as transactional, which bypasses the suppression list at enrolment. Only for mail a recipient asked for.
What happens to an enrollment when the prospect replies.
finish, continue, pause Pause length in days, when the reply action is pause.
Show child attributes
Show child attributes
Numeric mailbox ids this sequence sends from. Omit to use the team’s shared pool.
Response
Success.
A Sequencer cadence.
24-character hexadecimal id.
"507f1f77bcf86cd799439011"
Whether the cadence is running.
interval, date Author (team member id).
Rules-of-engagement policy, or null to use the team default.
Bypasses the suppression list at enrolment.
Whether the acting member may change this sequence.
When the sequence was created.
When it last changed.