Continue the sequence for a person a reply took out of it
curl --request POST \
--url http://localhost:8080/sequences/{sequenceId}/contacts/{contactId}/continue \
--header 'Authorization: Bearer <token>'import requests
url = "http://localhost:8080/sequences/{sequenceId}/contacts/{contactId}/continue"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('http://localhost:8080/sequences/{sequenceId}/contacts/{contactId}/continue', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://localhost:8080/sequences/{sequenceId}/contacts/{contactId}/continue",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://localhost:8080/sequences/{sequenceId}/contacts/{contactId}/continue"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://localhost:8080/sequences/{sequenceId}/contacts/{contactId}/continue")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8080/sequences/{sequenceId}/contacts/{contactId}/continue")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"outcome": "resumed",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"next_step_index": 0
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>"
}People
Continue the sequence for a person a reply took out of it
Resume a contact who exited a sequence after replying, preserving their enrollment and skips. Understand when waiting restarts and why continuation can be refused.
POST
/
sequences
/
{sequenceId}
/
contacts
/
{contactId}
/
continue
Continue the sequence for a person a reply took out of it
curl --request POST \
--url http://localhost:8080/sequences/{sequenceId}/contacts/{contactId}/continue \
--header 'Authorization: Bearer <token>'import requests
url = "http://localhost:8080/sequences/{sequenceId}/contacts/{contactId}/continue"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('http://localhost:8080/sequences/{sequenceId}/contacts/{contactId}/continue', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "8080",
CURLOPT_URL => "http://localhost:8080/sequences/{sequenceId}/contacts/{contactId}/continue",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://localhost:8080/sequences/{sequenceId}/contacts/{contactId}/continue"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://localhost:8080/sequences/{sequenceId}/contacts/{contactId}/continue")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:8080/sequences/{sequenceId}/contacts/{contactId}/continue")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"outcome": "resumed",
"contact_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"next_step_index": 0
}{
"statusCode": 123,
"message": "<string>",
"error": "<string>"
}Requires
sequences:write. Resumes the same enrollment only when it exited because of a reply. Previously sent, completed, and skipped steps are omitted. Personalization and journey history remain attached to that enrollment.
The next pending step’s wait starts now. Any skipped waits between the current position and that step are added, applying the normal sending window at each slot. A skipped 30-minute call slot followed by a 60-minute email wait therefore takes at least 90 minutes from continuation. Future skips beyond an intervening pending step are honored when reached.
HTTP 201 returns resumed, nothing_to_continue, not_resumable, or contact_not_found. not_resumable includes a dispatch still in progress, active/parked/candidate enrollments, and suppression exits. Completed and removed enrollments are never revived. If every remaining slot is skipped, the enrollment stays exited and returns nothing_to_continue.
Continuing a contact does not activate a paused or draft sequence. Sending still depends on the sequence’s lifecycle and normal consent checks.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The unique identifier of the sequence
Pattern:
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$The person's contact id (from enroll results or the people list)
Pattern:
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Response
Default Response
Available options:
resumed, nothing_to_continue, not_resumable, contact_not_found Pattern:
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Required range:
-9007199254740991 <= x <= 9007199254740991Was this page helpful?