curl --request PATCH \
--url https://client-api.salesfinity.co/v2/sequencer/sequences/{sequence_id}/steps/{step_id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"user_id": "<string>",
"interval_seconds": 123,
"date": "2023-11-07T05:31:56Z",
"display_name": "<string>",
"new_thread": true,
"task_note": "<string>",
"task_priority": "medium",
"task_autoskip_delay": 123,
"templates": [
{
"template": "<string>",
"weight": 1
}
]
}
'import requests
url = "https://client-api.salesfinity.co/v2/sequencer/sequences/{sequence_id}/steps/{step_id}"
payload = {
"user_id": "<string>",
"interval_seconds": 123,
"date": "2023-11-07T05:31:56Z",
"display_name": "<string>",
"new_thread": True,
"task_note": "<string>",
"task_priority": "medium",
"task_autoskip_delay": 123,
"templates": [
{
"template": "<string>",
"weight": 1
}
]
}
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>',
interval_seconds: 123,
date: '2023-11-07T05:31:56Z',
display_name: '<string>',
new_thread: true,
task_note: '<string>',
task_priority: 'medium',
task_autoskip_delay: 123,
templates: [{template: '<string>', weight: 1}]
})
};
fetch('https://client-api.salesfinity.co/v2/sequencer/sequences/{sequence_id}/steps/{step_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/{sequence_id}/steps/{step_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>',
'interval_seconds' => 123,
'date' => '2023-11-07T05:31:56Z',
'display_name' => '<string>',
'new_thread' => true,
'task_note' => '<string>',
'task_priority' => 'medium',
'task_autoskip_delay' => 123,
'templates' => [
[
'template' => '<string>',
'weight' => 1
]
]
]),
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/{sequence_id}/steps/{step_id}"
payload := strings.NewReader("{\n \"user_id\": \"<string>\",\n \"interval_seconds\": 123,\n \"date\": \"2023-11-07T05:31:56Z\",\n \"display_name\": \"<string>\",\n \"new_thread\": true,\n \"task_note\": \"<string>\",\n \"task_priority\": \"medium\",\n \"task_autoskip_delay\": 123,\n \"templates\": [\n {\n \"template\": \"<string>\",\n \"weight\": 1\n }\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/{sequence_id}/steps/{step_id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"user_id\": \"<string>\",\n \"interval_seconds\": 123,\n \"date\": \"2023-11-07T05:31:56Z\",\n \"display_name\": \"<string>\",\n \"new_thread\": true,\n \"task_note\": \"<string>\",\n \"task_priority\": \"medium\",\n \"task_autoskip_delay\": 123,\n \"templates\": [\n {\n \"template\": \"<string>\",\n \"weight\": 1\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://client-api.salesfinity.co/v2/sequencer/sequences/{sequence_id}/steps/{step_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 \"interval_seconds\": 123,\n \"date\": \"2023-11-07T05:31:56Z\",\n \"display_name\": \"<string>\",\n \"new_thread\": true,\n \"task_note\": \"<string>\",\n \"task_priority\": \"medium\",\n \"task_autoskip_delay\": 123,\n \"templates\": [\n {\n \"template\": \"<string>\",\n \"weight\": 1\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"_id": "507f1f77bcf86cd799439011",
"sequence": "507f1f77bcf86cd799439011",
"order": 123,
"step_type": "auto_email",
"interval_seconds": 123,
"date": "2023-11-07T05:31:56Z",
"display_name": "<string>",
"new_thread": true,
"task_note": "<string>",
"task_priority": "high",
"task_autoskip_delay": 123,
"templates": [
{
"template": "507f1f77bcf86cd799439011",
"weight": 123
}
]
}{
"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 step
Changes a step in place. Its position is not editable here — use reorder, which is refused while enrollments are live.
curl --request PATCH \
--url https://client-api.salesfinity.co/v2/sequencer/sequences/{sequence_id}/steps/{step_id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"user_id": "<string>",
"interval_seconds": 123,
"date": "2023-11-07T05:31:56Z",
"display_name": "<string>",
"new_thread": true,
"task_note": "<string>",
"task_priority": "medium",
"task_autoskip_delay": 123,
"templates": [
{
"template": "<string>",
"weight": 1
}
]
}
'import requests
url = "https://client-api.salesfinity.co/v2/sequencer/sequences/{sequence_id}/steps/{step_id}"
payload = {
"user_id": "<string>",
"interval_seconds": 123,
"date": "2023-11-07T05:31:56Z",
"display_name": "<string>",
"new_thread": True,
"task_note": "<string>",
"task_priority": "medium",
"task_autoskip_delay": 123,
"templates": [
{
"template": "<string>",
"weight": 1
}
]
}
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>',
interval_seconds: 123,
date: '2023-11-07T05:31:56Z',
display_name: '<string>',
new_thread: true,
task_note: '<string>',
task_priority: 'medium',
task_autoskip_delay: 123,
templates: [{template: '<string>', weight: 1}]
})
};
fetch('https://client-api.salesfinity.co/v2/sequencer/sequences/{sequence_id}/steps/{step_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/{sequence_id}/steps/{step_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>',
'interval_seconds' => 123,
'date' => '2023-11-07T05:31:56Z',
'display_name' => '<string>',
'new_thread' => true,
'task_note' => '<string>',
'task_priority' => 'medium',
'task_autoskip_delay' => 123,
'templates' => [
[
'template' => '<string>',
'weight' => 1
]
]
]),
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/{sequence_id}/steps/{step_id}"
payload := strings.NewReader("{\n \"user_id\": \"<string>\",\n \"interval_seconds\": 123,\n \"date\": \"2023-11-07T05:31:56Z\",\n \"display_name\": \"<string>\",\n \"new_thread\": true,\n \"task_note\": \"<string>\",\n \"task_priority\": \"medium\",\n \"task_autoskip_delay\": 123,\n \"templates\": [\n {\n \"template\": \"<string>\",\n \"weight\": 1\n }\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/{sequence_id}/steps/{step_id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"user_id\": \"<string>\",\n \"interval_seconds\": 123,\n \"date\": \"2023-11-07T05:31:56Z\",\n \"display_name\": \"<string>\",\n \"new_thread\": true,\n \"task_note\": \"<string>\",\n \"task_priority\": \"medium\",\n \"task_autoskip_delay\": 123,\n \"templates\": [\n {\n \"template\": \"<string>\",\n \"weight\": 1\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://client-api.salesfinity.co/v2/sequencer/sequences/{sequence_id}/steps/{step_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 \"interval_seconds\": 123,\n \"date\": \"2023-11-07T05:31:56Z\",\n \"display_name\": \"<string>\",\n \"new_thread\": true,\n \"task_note\": \"<string>\",\n \"task_priority\": \"medium\",\n \"task_autoskip_delay\": 123,\n \"templates\": [\n {\n \"template\": \"<string>\",\n \"weight\": 1\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"_id": "507f1f77bcf86cd799439011",
"sequence": "507f1f77bcf86cd799439011",
"order": 123,
"step_type": "auto_email",
"interval_seconds": 123,
"date": "2023-11-07T05:31:56Z",
"display_name": "<string>",
"new_thread": true,
"task_note": "<string>",
"task_priority": "high",
"task_autoskip_delay": 123,
"templates": [
{
"template": "507f1f77bcf86cd799439011",
"weight": 123
}
]
}{
"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.
24-character step id.
Body
The team member making the change.
auto_email sends itself; the other three create a task for the owning rep.
auto_email, manual_email, call, task Delay from the previous step, in seconds. For the first step it is measured from enrolment. Used when the sequence is interval.
ISO 8601. Used when the sequence is date.
Email steps: start a new thread rather than replying on the existing one.
Shown to the rep on the resulting task.
high, medium, low Seconds after the due date at which an untouched task is auto-skipped and the cadence moves on.
Show child attributes
Show child attributes
Email steps only. Several templates are picked between by weight.
Show child attributes
Show child attributes
Response
Success.
One step of a cadence.
24-character hexadecimal id.
"507f1f77bcf86cd799439011"
24-character hexadecimal id.
"507f1f77bcf86cd799439011"
1-based position in the cadence.
auto_email, manual_email, call, task Delay from the previous step.
high, medium, low Show child attributes
Show child attributes