Crear campaña
curl --request POST \
--url https://app.famulor.de/api/user/campaign \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"channel": "<string>",
"timezone": "<string>",
"schedule_windows": [
{}
],
"allowed_hours_start_time": "<string>",
"allowed_hours_end_time": "<string>",
"scheduled_start_at": "<string>",
"allowed_days": [
{}
],
"max_retries": 123,
"retry_interval": 123,
"mark_complete_when_no_leads": true,
"assistant_id": 123,
"max_calls_in_parallel": 123,
"phone_number_ids": [
{}
],
"retry_on_voicemail": true,
"retry_on_goal_incomplete": true,
"goal_completion_variable": "<string>",
"fallback_channel": "<string>",
"fallback_whatsapp_sender_id": 123,
"fallback_whatsapp_template_id": 123,
"fallback_sms_from_phone_number_id": 123,
"fallback_sms_body": "<string>",
"fallback_variable_mapping": {},
"whatsapp_sender_id": 123,
"whatsapp_template_id": 123,
"text_variable_mapping": {},
"messages_per_minute": 123,
"sms_from_phone_number_id": 123,
"sms_body": "<string>"
}
'import requests
url = "https://app.famulor.de/api/user/campaign"
payload = {
"name": "<string>",
"channel": "<string>",
"timezone": "<string>",
"schedule_windows": [{}],
"allowed_hours_start_time": "<string>",
"allowed_hours_end_time": "<string>",
"scheduled_start_at": "<string>",
"allowed_days": [{}],
"max_retries": 123,
"retry_interval": 123,
"mark_complete_when_no_leads": True,
"assistant_id": 123,
"max_calls_in_parallel": 123,
"phone_number_ids": [{}],
"retry_on_voicemail": True,
"retry_on_goal_incomplete": True,
"goal_completion_variable": "<string>",
"fallback_channel": "<string>",
"fallback_whatsapp_sender_id": 123,
"fallback_whatsapp_template_id": 123,
"fallback_sms_from_phone_number_id": 123,
"fallback_sms_body": "<string>",
"fallback_variable_mapping": {},
"whatsapp_sender_id": 123,
"whatsapp_template_id": 123,
"text_variable_mapping": {},
"messages_per_minute": 123,
"sms_from_phone_number_id": 123,
"sms_body": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
channel: '<string>',
timezone: '<string>',
schedule_windows: [{}],
allowed_hours_start_time: '<string>',
allowed_hours_end_time: '<string>',
scheduled_start_at: '<string>',
allowed_days: [{}],
max_retries: 123,
retry_interval: 123,
mark_complete_when_no_leads: true,
assistant_id: 123,
max_calls_in_parallel: 123,
phone_number_ids: [{}],
retry_on_voicemail: true,
retry_on_goal_incomplete: true,
goal_completion_variable: '<string>',
fallback_channel: '<string>',
fallback_whatsapp_sender_id: 123,
fallback_whatsapp_template_id: 123,
fallback_sms_from_phone_number_id: 123,
fallback_sms_body: '<string>',
fallback_variable_mapping: {},
whatsapp_sender_id: 123,
whatsapp_template_id: 123,
text_variable_mapping: {},
messages_per_minute: 123,
sms_from_phone_number_id: 123,
sms_body: '<string>'
})
};
fetch('https://app.famulor.de/api/user/campaign', 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://app.famulor.de/api/user/campaign",
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>',
'channel' => '<string>',
'timezone' => '<string>',
'schedule_windows' => [
[
]
],
'allowed_hours_start_time' => '<string>',
'allowed_hours_end_time' => '<string>',
'scheduled_start_at' => '<string>',
'allowed_days' => [
[
]
],
'max_retries' => 123,
'retry_interval' => 123,
'mark_complete_when_no_leads' => true,
'assistant_id' => 123,
'max_calls_in_parallel' => 123,
'phone_number_ids' => [
[
]
],
'retry_on_voicemail' => true,
'retry_on_goal_incomplete' => true,
'goal_completion_variable' => '<string>',
'fallback_channel' => '<string>',
'fallback_whatsapp_sender_id' => 123,
'fallback_whatsapp_template_id' => 123,
'fallback_sms_from_phone_number_id' => 123,
'fallback_sms_body' => '<string>',
'fallback_variable_mapping' => [
],
'whatsapp_sender_id' => 123,
'whatsapp_template_id' => 123,
'text_variable_mapping' => [
],
'messages_per_minute' => 123,
'sms_from_phone_number_id' => 123,
'sms_body' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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://app.famulor.de/api/user/campaign"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"channel\": \"<string>\",\n \"timezone\": \"<string>\",\n \"schedule_windows\": [\n {}\n ],\n \"allowed_hours_start_time\": \"<string>\",\n \"allowed_hours_end_time\": \"<string>\",\n \"scheduled_start_at\": \"<string>\",\n \"allowed_days\": [\n {}\n ],\n \"max_retries\": 123,\n \"retry_interval\": 123,\n \"mark_complete_when_no_leads\": true,\n \"assistant_id\": 123,\n \"max_calls_in_parallel\": 123,\n \"phone_number_ids\": [\n {}\n ],\n \"retry_on_voicemail\": true,\n \"retry_on_goal_incomplete\": true,\n \"goal_completion_variable\": \"<string>\",\n \"fallback_channel\": \"<string>\",\n \"fallback_whatsapp_sender_id\": 123,\n \"fallback_whatsapp_template_id\": 123,\n \"fallback_sms_from_phone_number_id\": 123,\n \"fallback_sms_body\": \"<string>\",\n \"fallback_variable_mapping\": {},\n \"whatsapp_sender_id\": 123,\n \"whatsapp_template_id\": 123,\n \"text_variable_mapping\": {},\n \"messages_per_minute\": 123,\n \"sms_from_phone_number_id\": 123,\n \"sms_body\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://app.famulor.de/api/user/campaign")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"channel\": \"<string>\",\n \"timezone\": \"<string>\",\n \"schedule_windows\": [\n {}\n ],\n \"allowed_hours_start_time\": \"<string>\",\n \"allowed_hours_end_time\": \"<string>\",\n \"scheduled_start_at\": \"<string>\",\n \"allowed_days\": [\n {}\n ],\n \"max_retries\": 123,\n \"retry_interval\": 123,\n \"mark_complete_when_no_leads\": true,\n \"assistant_id\": 123,\n \"max_calls_in_parallel\": 123,\n \"phone_number_ids\": [\n {}\n ],\n \"retry_on_voicemail\": true,\n \"retry_on_goal_incomplete\": true,\n \"goal_completion_variable\": \"<string>\",\n \"fallback_channel\": \"<string>\",\n \"fallback_whatsapp_sender_id\": 123,\n \"fallback_whatsapp_template_id\": 123,\n \"fallback_sms_from_phone_number_id\": 123,\n \"fallback_sms_body\": \"<string>\",\n \"fallback_variable_mapping\": {},\n \"whatsapp_sender_id\": 123,\n \"whatsapp_template_id\": 123,\n \"text_variable_mapping\": {},\n \"messages_per_minute\": 123,\n \"sms_from_phone_number_id\": 123,\n \"sms_body\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.famulor.de/api/user/campaign")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"channel\": \"<string>\",\n \"timezone\": \"<string>\",\n \"schedule_windows\": [\n {}\n ],\n \"allowed_hours_start_time\": \"<string>\",\n \"allowed_hours_end_time\": \"<string>\",\n \"scheduled_start_at\": \"<string>\",\n \"allowed_days\": [\n {}\n ],\n \"max_retries\": 123,\n \"retry_interval\": 123,\n \"mark_complete_when_no_leads\": true,\n \"assistant_id\": 123,\n \"max_calls_in_parallel\": 123,\n \"phone_number_ids\": [\n {}\n ],\n \"retry_on_voicemail\": true,\n \"retry_on_goal_incomplete\": true,\n \"goal_completion_variable\": \"<string>\",\n \"fallback_channel\": \"<string>\",\n \"fallback_whatsapp_sender_id\": 123,\n \"fallback_whatsapp_template_id\": 123,\n \"fallback_sms_from_phone_number_id\": 123,\n \"fallback_sms_body\": \"<string>\",\n \"fallback_variable_mapping\": {},\n \"whatsapp_sender_id\": 123,\n \"whatsapp_template_id\": 123,\n \"text_variable_mapping\": {},\n \"messages_per_minute\": 123,\n \"sms_from_phone_number_id\": 123,\n \"sms_body\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"message": "Campaign created successfully",
"data": {
"id": 1,
"name": "Product Demo Campaign",
"channel": "call",
"status": "draft",
"assistant_id": 42,
"timezone": "Europe/Berlin",
"max_calls_in_parallel": 3,
"messages_per_minute": null,
"schedule_windows": [
{ "start": "09:00", "end": "17:00" }
],
"scheduled_start_at": null,
"allowed_hours_start_time": "09:00",
"allowed_hours_end_time": "17:00",
"allowed_days": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"max_retries": 3,
"retry_interval": 60,
"retry_on_voicemail": false,
"retry_on_goal_incomplete": false,
"goal_completion_variable": null,
"mark_complete_when_no_leads": true,
"phone_number_ids": [101],
"whatsapp_sender_id": null,
"whatsapp_template_id": null,
"sms_from_phone_number_id": null,
"sms_body": null,
"text_variable_mapping": null,
"fallback_channel": null,
"fallback_whatsapp_sender_id": null,
"fallback_whatsapp_template_id": null,
"fallback_sms_from_phone_number_id": null,
"fallback_sms_body": null,
"fallback_variable_mapping": null,
"created_at": "2026-02-23T10:00:00.000000Z",
"updated_at": "2026-02-23T10:00:00.000000Z"
}
}
{
"message": "The given data was invalid.",
"errors": {
"name": [
"The name field is required."
],
"assistant_id": [
"The assistant id field is required."
]
}
}
Campañas
Crear campaña
Crea un borrador de campaña de llamadas, WhatsApp o SMS en Famulor mediante la API. Añade leads y actívala después con Actualizar estado de campaña.
POST
/
api
/
user
/
campaign
Crear campaña
curl --request POST \
--url https://app.famulor.de/api/user/campaign \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"channel": "<string>",
"timezone": "<string>",
"schedule_windows": [
{}
],
"allowed_hours_start_time": "<string>",
"allowed_hours_end_time": "<string>",
"scheduled_start_at": "<string>",
"allowed_days": [
{}
],
"max_retries": 123,
"retry_interval": 123,
"mark_complete_when_no_leads": true,
"assistant_id": 123,
"max_calls_in_parallel": 123,
"phone_number_ids": [
{}
],
"retry_on_voicemail": true,
"retry_on_goal_incomplete": true,
"goal_completion_variable": "<string>",
"fallback_channel": "<string>",
"fallback_whatsapp_sender_id": 123,
"fallback_whatsapp_template_id": 123,
"fallback_sms_from_phone_number_id": 123,
"fallback_sms_body": "<string>",
"fallback_variable_mapping": {},
"whatsapp_sender_id": 123,
"whatsapp_template_id": 123,
"text_variable_mapping": {},
"messages_per_minute": 123,
"sms_from_phone_number_id": 123,
"sms_body": "<string>"
}
'import requests
url = "https://app.famulor.de/api/user/campaign"
payload = {
"name": "<string>",
"channel": "<string>",
"timezone": "<string>",
"schedule_windows": [{}],
"allowed_hours_start_time": "<string>",
"allowed_hours_end_time": "<string>",
"scheduled_start_at": "<string>",
"allowed_days": [{}],
"max_retries": 123,
"retry_interval": 123,
"mark_complete_when_no_leads": True,
"assistant_id": 123,
"max_calls_in_parallel": 123,
"phone_number_ids": [{}],
"retry_on_voicemail": True,
"retry_on_goal_incomplete": True,
"goal_completion_variable": "<string>",
"fallback_channel": "<string>",
"fallback_whatsapp_sender_id": 123,
"fallback_whatsapp_template_id": 123,
"fallback_sms_from_phone_number_id": 123,
"fallback_sms_body": "<string>",
"fallback_variable_mapping": {},
"whatsapp_sender_id": 123,
"whatsapp_template_id": 123,
"text_variable_mapping": {},
"messages_per_minute": 123,
"sms_from_phone_number_id": 123,
"sms_body": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
channel: '<string>',
timezone: '<string>',
schedule_windows: [{}],
allowed_hours_start_time: '<string>',
allowed_hours_end_time: '<string>',
scheduled_start_at: '<string>',
allowed_days: [{}],
max_retries: 123,
retry_interval: 123,
mark_complete_when_no_leads: true,
assistant_id: 123,
max_calls_in_parallel: 123,
phone_number_ids: [{}],
retry_on_voicemail: true,
retry_on_goal_incomplete: true,
goal_completion_variable: '<string>',
fallback_channel: '<string>',
fallback_whatsapp_sender_id: 123,
fallback_whatsapp_template_id: 123,
fallback_sms_from_phone_number_id: 123,
fallback_sms_body: '<string>',
fallback_variable_mapping: {},
whatsapp_sender_id: 123,
whatsapp_template_id: 123,
text_variable_mapping: {},
messages_per_minute: 123,
sms_from_phone_number_id: 123,
sms_body: '<string>'
})
};
fetch('https://app.famulor.de/api/user/campaign', 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://app.famulor.de/api/user/campaign",
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>',
'channel' => '<string>',
'timezone' => '<string>',
'schedule_windows' => [
[
]
],
'allowed_hours_start_time' => '<string>',
'allowed_hours_end_time' => '<string>',
'scheduled_start_at' => '<string>',
'allowed_days' => [
[
]
],
'max_retries' => 123,
'retry_interval' => 123,
'mark_complete_when_no_leads' => true,
'assistant_id' => 123,
'max_calls_in_parallel' => 123,
'phone_number_ids' => [
[
]
],
'retry_on_voicemail' => true,
'retry_on_goal_incomplete' => true,
'goal_completion_variable' => '<string>',
'fallback_channel' => '<string>',
'fallback_whatsapp_sender_id' => 123,
'fallback_whatsapp_template_id' => 123,
'fallback_sms_from_phone_number_id' => 123,
'fallback_sms_body' => '<string>',
'fallback_variable_mapping' => [
],
'whatsapp_sender_id' => 123,
'whatsapp_template_id' => 123,
'text_variable_mapping' => [
],
'messages_per_minute' => 123,
'sms_from_phone_number_id' => 123,
'sms_body' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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://app.famulor.de/api/user/campaign"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"channel\": \"<string>\",\n \"timezone\": \"<string>\",\n \"schedule_windows\": [\n {}\n ],\n \"allowed_hours_start_time\": \"<string>\",\n \"allowed_hours_end_time\": \"<string>\",\n \"scheduled_start_at\": \"<string>\",\n \"allowed_days\": [\n {}\n ],\n \"max_retries\": 123,\n \"retry_interval\": 123,\n \"mark_complete_when_no_leads\": true,\n \"assistant_id\": 123,\n \"max_calls_in_parallel\": 123,\n \"phone_number_ids\": [\n {}\n ],\n \"retry_on_voicemail\": true,\n \"retry_on_goal_incomplete\": true,\n \"goal_completion_variable\": \"<string>\",\n \"fallback_channel\": \"<string>\",\n \"fallback_whatsapp_sender_id\": 123,\n \"fallback_whatsapp_template_id\": 123,\n \"fallback_sms_from_phone_number_id\": 123,\n \"fallback_sms_body\": \"<string>\",\n \"fallback_variable_mapping\": {},\n \"whatsapp_sender_id\": 123,\n \"whatsapp_template_id\": 123,\n \"text_variable_mapping\": {},\n \"messages_per_minute\": 123,\n \"sms_from_phone_number_id\": 123,\n \"sms_body\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://app.famulor.de/api/user/campaign")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"channel\": \"<string>\",\n \"timezone\": \"<string>\",\n \"schedule_windows\": [\n {}\n ],\n \"allowed_hours_start_time\": \"<string>\",\n \"allowed_hours_end_time\": \"<string>\",\n \"scheduled_start_at\": \"<string>\",\n \"allowed_days\": [\n {}\n ],\n \"max_retries\": 123,\n \"retry_interval\": 123,\n \"mark_complete_when_no_leads\": true,\n \"assistant_id\": 123,\n \"max_calls_in_parallel\": 123,\n \"phone_number_ids\": [\n {}\n ],\n \"retry_on_voicemail\": true,\n \"retry_on_goal_incomplete\": true,\n \"goal_completion_variable\": \"<string>\",\n \"fallback_channel\": \"<string>\",\n \"fallback_whatsapp_sender_id\": 123,\n \"fallback_whatsapp_template_id\": 123,\n \"fallback_sms_from_phone_number_id\": 123,\n \"fallback_sms_body\": \"<string>\",\n \"fallback_variable_mapping\": {},\n \"whatsapp_sender_id\": 123,\n \"whatsapp_template_id\": 123,\n \"text_variable_mapping\": {},\n \"messages_per_minute\": 123,\n \"sms_from_phone_number_id\": 123,\n \"sms_body\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.famulor.de/api/user/campaign")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"channel\": \"<string>\",\n \"timezone\": \"<string>\",\n \"schedule_windows\": [\n {}\n ],\n \"allowed_hours_start_time\": \"<string>\",\n \"allowed_hours_end_time\": \"<string>\",\n \"scheduled_start_at\": \"<string>\",\n \"allowed_days\": [\n {}\n ],\n \"max_retries\": 123,\n \"retry_interval\": 123,\n \"mark_complete_when_no_leads\": true,\n \"assistant_id\": 123,\n \"max_calls_in_parallel\": 123,\n \"phone_number_ids\": [\n {}\n ],\n \"retry_on_voicemail\": true,\n \"retry_on_goal_incomplete\": true,\n \"goal_completion_variable\": \"<string>\",\n \"fallback_channel\": \"<string>\",\n \"fallback_whatsapp_sender_id\": 123,\n \"fallback_whatsapp_template_id\": 123,\n \"fallback_sms_from_phone_number_id\": 123,\n \"fallback_sms_body\": \"<string>\",\n \"fallback_variable_mapping\": {},\n \"whatsapp_sender_id\": 123,\n \"whatsapp_template_id\": 123,\n \"text_variable_mapping\": {},\n \"messages_per_minute\": 123,\n \"sms_from_phone_number_id\": 123,\n \"sms_body\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"message": "Campaign created successfully",
"data": {
"id": 1,
"name": "Product Demo Campaign",
"channel": "call",
"status": "draft",
"assistant_id": 42,
"timezone": "Europe/Berlin",
"max_calls_in_parallel": 3,
"messages_per_minute": null,
"schedule_windows": [
{ "start": "09:00", "end": "17:00" }
],
"scheduled_start_at": null,
"allowed_hours_start_time": "09:00",
"allowed_hours_end_time": "17:00",
"allowed_days": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"max_retries": 3,
"retry_interval": 60,
"retry_on_voicemail": false,
"retry_on_goal_incomplete": false,
"goal_completion_variable": null,
"mark_complete_when_no_leads": true,
"phone_number_ids": [101],
"whatsapp_sender_id": null,
"whatsapp_template_id": null,
"sms_from_phone_number_id": null,
"sms_body": null,
"text_variable_mapping": null,
"fallback_channel": null,
"fallback_whatsapp_sender_id": null,
"fallback_whatsapp_template_id": null,
"fallback_sms_from_phone_number_id": null,
"fallback_sms_body": null,
"fallback_variable_mapping": null,
"created_at": "2026-02-23T10:00:00.000000Z",
"updated_at": "2026-02-23T10:00:00.000000Z"
}
}
{
"message": "The given data was invalid.",
"errors": {
"name": [
"The name field is required."
],
"assistant_id": [
"The assistant id field is required."
]
}
}
API de Famulor 1.0 (legado). Esta página se aplica únicamente a Famulor 1.0 (
app.famulor.de) y se conserva por compatibilidad. Para la plataforma actual, usa la referencia de la API de Famulor 2.0.draft — añade leads y, después, actívala con Actualizar estado de campaña.
Canales admitidos:
call(por defecto) — voz saliente con un asistente OUTBOUNDwhatsapp— plantilla de WhatsApp aprobada a través de uno de tus remitentessms— cuerpo de SMS desde un número con capacidad SMS (puede no estar disponible temporalmente en la plataforma)
Cuerpo de la solicitud
Compartido
string
requerido
Nombre de la campaña. Máximo 255 caracteres.
string
predeterminado:"call"
call, whatsapp o sms.string
Zona horaria IANA para la ventana de envío/llamada (p. ej.
America/New_York). Por defecto usa la zona horaria del asistente en campañas de llamadas; en caso contrario, la zona horaria de tu cuenta.array
Horario preferido: una o más ventanas diarias como objetos con
start y end en formato HH:MM. Se admiten ventanas nocturnas cuando end es anterior a start (p. ej. 16:00 → 02:00).string
predeterminado:"00:00"
Inicio de la ventana única heredada (
HH:MM). Se usa si se omite schedule_windows.string
predeterminado:"23:59"
Fin de la ventana única heredada (
HH:MM). Nocturna cuando end < start.string
Fecha y hora ISO opcional. Si se indica, la campaña puede programarse para iniciarse automáticamente en ese momento.
array
predeterminado:"all 7 days"
Días de la semana:
monday … sunday.integer
predeterminado:"3"
Máximo de reintentos por lead. Rango: 1–5.
integer
predeterminado:"60"
Minutos entre reintentos. Rango: 10–4320.
boolean
predeterminado:"true"
Marca automáticamente la campaña como completada cuando no queda trabajo pendiente.
Campañas de llamadas
integer
Obligatorio para
channel=call. Debe ser un asistente OUTBOUND de tu propiedad.integer
predeterminado:"3"
Llamadas simultáneas (limitado por el plan, máx. 10).
array
IDs de números de origen salientes disponibles para tu cuenta.
boolean
Reintenta cuando una llamada cae en el buzón de voz.
boolean
Sigue reintentando hasta que una variable booleana de objetivo posterior a la llamada sea true.
string
Nombre de la variable booleana del esquema posterior a la llamada, usada con
retry_on_goal_incomplete.string
Seguimiento opcional de llamada→texto tras agotar los reintentos de llamada:
whatsapp o sms.integer
Obligatorio cuando
fallback_channel=whatsapp.integer
Obligatorio cuando
fallback_channel=whatsapp. Debe ser una plantilla aprobada en ese remitente.integer
Obligatorio cuando
fallback_channel=sms.string
Obligatorio cuando
fallback_channel=sms. Admite marcadores {{variable}}.object
Asigna los marcadores de la plantilla de WhatsApp (p. ej.
"1") a claves de variables del lead para el envío de reserva.Campañas de WhatsApp
integer
Obligatorio para
channel=whatsapp. Remitente de tu propiedad.integer
Obligatorio para
channel=whatsapp. Plantilla aprobada en ese remitente.object
Asigna los marcadores de la plantilla (p. ej.
"1") a claves de variables del lead.integer
Tasa de envío por campaña (1–10). Las campañas de WhatsApp también comparten un límite conjunto de 10 envíos en curso por usuario entre todas tus campañas de WhatsApp activas.
Campañas de SMS
integer
Obligatorio para
channel=sms. Debe tener capacidad SMS y estar disponible para ti.string
Obligatorio para
channel=sms. Máx. 1600 caracteres. Admite marcadores {{variable}}.Respuesta
string
Mensaje de éxito
object
Campaña creada (misma forma que Obtener campaña), incluyendo canal, horario, configuración de texto y campos de reserva.
Respuestas de error
Límite del plan, asistente/remitente/plantilla no válidos, canal desactivado, o errores de validación.
{
"message": "Campaign created successfully",
"data": {
"id": 1,
"name": "Product Demo Campaign",
"channel": "call",
"status": "draft",
"assistant_id": 42,
"timezone": "Europe/Berlin",
"max_calls_in_parallel": 3,
"messages_per_minute": null,
"schedule_windows": [
{ "start": "09:00", "end": "17:00" }
],
"scheduled_start_at": null,
"allowed_hours_start_time": "09:00",
"allowed_hours_end_time": "17:00",
"allowed_days": [
"monday",
"tuesday",
"wednesday",
"thursday",
"friday"
],
"max_retries": 3,
"retry_interval": 60,
"retry_on_voicemail": false,
"retry_on_goal_incomplete": false,
"goal_completion_variable": null,
"mark_complete_when_no_leads": true,
"phone_number_ids": [101],
"whatsapp_sender_id": null,
"whatsapp_template_id": null,
"sms_from_phone_number_id": null,
"sms_body": null,
"text_variable_mapping": null,
"fallback_channel": null,
"fallback_whatsapp_sender_id": null,
"fallback_whatsapp_template_id": null,
"fallback_sms_from_phone_number_id": null,
"fallback_sms_body": null,
"fallback_variable_mapping": null,
"created_at": "2026-02-23T10:00:00.000000Z",
"updated_at": "2026-02-23T10:00:00.000000Z"
}
}
{
"message": "The given data was invalid.",
"errors": {
"name": [
"The name field is required."
],
"assistant_id": [
"The assistant id field is required."
]
}
}
Páginas relacionadas: Introducción y Guía de autenticación, y Ejemplos de integración de la API.
⌘I