cURL
curl --request POST \
--url https://api.teamfollowup.ai/api/power-dialer/move \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"queueIds": [
"queue_123",
"queue_456"
],
"targetStep": 2
}'import requests
url = "https://api.teamfollowup.ai/api/power-dialer/move"
payload = {
"queueIds": ["queue_123", "queue_456"],
"targetStep": 2
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({queueIds: ['queue_123', 'queue_456'], targetStep: 2})
};
fetch('https://api.teamfollowup.ai/api/power-dialer/move', 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://api.teamfollowup.ai/api/power-dialer/move",
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([
'queueIds' => [
'queue_123',
'queue_456'
],
'targetStep' => 2
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.teamfollowup.ai/api/power-dialer/move"
payload := strings.NewReader("{\n \"queueIds\": [\n \"queue_123\",\n \"queue_456\"\n ],\n \"targetStep\": 2\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.teamfollowup.ai/api/power-dialer/move")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"queueIds\": [\n \"queue_123\",\n \"queue_456\"\n ],\n \"targetStep\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.teamfollowup.ai/api/power-dialer/move")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"queueIds\": [\n \"queue_123\",\n \"queue_456\"\n ],\n \"targetStep\": 2\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"count": 1,
"modifiedCount": 1,
"updated": 1,
"skipped": [
{
"queueId": "queue_456",
"reason": "callback-pinned"
}
]
}
}{
"success": false,
"error": "cadenceStep query parameter is required"
}{
"success": false,
"error": "Unauthorized"
}{
"success": false,
"error": "You do not have access to this project"
}{
"success": false,
"error": "TooManyRequests"
}{
"success": false,
"error": "Unexpected server error."
}Move leads to another step
Move waiting leads to a different step of their schedule. The next call time is recomputed from the target step’s slot in each lead’s own timezone, and any actions still pending on the old step are cleared. Only leads in a waiting status are moved: one that is mid-dial, pinned to a callback, on an appointment-reminder schedule, or whose schedule has no such step is listed in skipped with a reason rather than failing the request. Customer roles: agency_admin, project_user.
Required API key scope: power_dialer:write.
POST
/
api
/
power-dialer
/
move
cURL
curl --request POST \
--url https://api.teamfollowup.ai/api/power-dialer/move \
--header 'Authorization: Bearer YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"queueIds": [
"queue_123",
"queue_456"
],
"targetStep": 2
}'import requests
url = "https://api.teamfollowup.ai/api/power-dialer/move"
payload = {
"queueIds": ["queue_123", "queue_456"],
"targetStep": 2
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({queueIds: ['queue_123', 'queue_456'], targetStep: 2})
};
fetch('https://api.teamfollowup.ai/api/power-dialer/move', 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://api.teamfollowup.ai/api/power-dialer/move",
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([
'queueIds' => [
'queue_123',
'queue_456'
],
'targetStep' => 2
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.teamfollowup.ai/api/power-dialer/move"
payload := strings.NewReader("{\n \"queueIds\": [\n \"queue_123\",\n \"queue_456\"\n ],\n \"targetStep\": 2\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.teamfollowup.ai/api/power-dialer/move")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"queueIds\": [\n \"queue_123\",\n \"queue_456\"\n ],\n \"targetStep\": 2\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.teamfollowup.ai/api/power-dialer/move")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"queueIds\": [\n \"queue_123\",\n \"queue_456\"\n ],\n \"targetStep\": 2\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"count": 1,
"modifiedCount": 1,
"updated": 1,
"skipped": [
{
"queueId": "queue_456",
"reason": "callback-pinned"
}
]
}
}{
"success": false,
"error": "cadenceStep query parameter is required"
}{
"success": false,
"error": "Unauthorized"
}{
"success": false,
"error": "You do not have access to this project"
}{
"success": false,
"error": "TooManyRequests"
}{
"success": false,
"error": "Unexpected server error."
}Authorizations
Send your API key as Authorization: Bearer YOUR_API_KEY.
Body
application/json
Leads to move, and where to.
⌘I
