curl --request POST \
--url https://client-api.salesfinity.co/v2/sequencer/sequences \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"user_id": "<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"
payload = {
"name": "<string>",
"user_id": "<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.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
user_id: '<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', 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",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'user_id' => '<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"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"user_id\": \"<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("POST", 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.post("https://client-api.salesfinity.co/v2/sequencer/sequences")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"user_id\": \"<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")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"user_id\": \"<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": "Too many requests",
"error": "Too Many Requests",
"statusCode": 429
}{
"message": "Internal server error",
"error": "Internal Server Error",
"statusCode": 500
}Create a sequence
Creates the cadence shell. It starts disabled and has no steps — add steps, then enable it. A sequence with no steps cannot be enrolled into.
curl --request POST \
--url https://client-api.salesfinity.co/v2/sequencer/sequences \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "<string>",
"user_id": "<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"
payload = {
"name": "<string>",
"user_id": "<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.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
user_id: '<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', 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",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'user_id' => '<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"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"user_id\": \"<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("POST", 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.post("https://client-api.salesfinity.co/v2/sequencer/sequences")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"user_id\": \"<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")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"user_id\": \"<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": "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.
Body
The team member authoring the sequence.
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.