curl --request POST \
--url https://api.eqho.ai/v1/campaigns \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--header 'x-org-id: <api-key>' \
--data '
{
"name": "<string>",
"agents": [
"<string>"
],
"distribution_strategy": "random",
"distribution_settings": {
"percentages": {},
"last_assigned_agent_index": -1
},
"distribution_by_medium": {},
"rules": {
"call_limit": 123,
"call_window": [
{
"weekday": 1,
"start_time": 1179,
"end_time": 1179
}
],
"messenger_disposition_threshold_in_minutes": 123,
"medium_response_settings": {},
"api_text_disposition_threshold_in_minutes": 123,
"should_answer_policy": {
"enabled": false,
"mode": "suppress_only",
"enabled_mediums": [],
"exact_match_enabled": true,
"jaccard_enabled": true,
"suppress_threshold": 0.85,
"fuzzy_threshold": 0.5,
"llm_judge_enabled": false,
"llm_judge_always": false,
"llm_judge_action": "rewrite",
"timeout_seconds": 10,
"num_retries": 1,
"max_consecutive_suppressions": 2,
"on_suppression_limit_reached": "force_send",
"suppression_history_enabled": true,
"suppression_history_max_size": 10,
"llm_judge_prompt_markdown": "<string>",
"llm_rewrite_prompt_markdown": "<string>"
},
"message_reaction_policy": {
"enabled_mediums": []
},
"session_timeout": {
"days": 0,
"hours": 0,
"minutes": 0
}
},
"disable_system_dispositioning": false,
"dispositions": [
{
"id": "<string>",
"name": "<string>",
"parent_disposition": "<string>",
"description": "<string>",
"color": "#A5A5A5",
"contacted": true,
"conversion": true,
"enabled": true
}
],
"disposition_level_3_prompt": "<string>",
"call_summary_description": "<string>",
"disposition_level_3_model": "gpt-4o-2024-08-06",
"tasks": [
{
"task_settings": {},
"id": "<string>",
"name": "<string>",
"type": "post_call",
"condition": {
"call_count": [
123
],
"dispositions": [
{
"values": [
"<string>"
]
}
],
"ai_conditions": [
{
"condition": "Did the lead say there is a child in the car?",
"confidence_threshold": 0.5
}
],
"eval_conditions": [
{
"grader_name": "<string>",
"values": [
"<string>"
],
"passed": true
}
],
"expression_conditions": [
{
"expression": "conversation.action_runs.call_transfer.last.success"
}
]
},
"required": false,
"enabled": true
}
],
"call_now_threshold_recall_time": 123,
"external_context_template": "customer has purchased their order.",
"system_prompt": null,
"campaign_duration": {
"campaign_start_date": "2023-11-07T05:31:56Z",
"campaign_end_date": "2023-11-07T05:31:56Z"
},
"disable_amd": false,
"answering_machine_detection": {
"enabled": true,
"interrupt_on_machine": true,
"machine_ivr_behavior": "native_ivr",
"machine_vm_behavior": "hang_up",
"machine_unavailable_behavior": "hang_up",
"voicemail_message": "<string>",
"llm_model": "<string>",
"stt_model": "<string>",
"detection_options": {
"human_speech_threshold": 123,
"human_silence_threshold": 123,
"machine_silence_threshold": 123,
"no_speech_threshold": 123,
"timeout": 123,
"prompt": "<string>"
}
},
"custom_fields": {
"postal_code": "1234"
},
"precall_tasks_execution_mode": "prolonged_ringing",
"telephony_outbound_caller_id": "<string>",
"sip_proxy_settings": {
"sip_uri": "<string>",
"enabled": false,
"transport": "tcp",
"username": "<string>",
"password": "<string>"
},
"v3_voice_routing_percentage": 0,
"v3_voice_redirect_campaign_id": "<string>"
}
'import requests
url = "https://api.eqho.ai/v1/campaigns"
payload = {
"name": "<string>",
"agents": ["<string>"],
"distribution_strategy": "random",
"distribution_settings": {
"percentages": {},
"last_assigned_agent_index": -1
},
"distribution_by_medium": {},
"rules": {
"call_limit": 123,
"call_window": [
{
"weekday": 1,
"start_time": 1179,
"end_time": 1179
}
],
"messenger_disposition_threshold_in_minutes": 123,
"medium_response_settings": {},
"api_text_disposition_threshold_in_minutes": 123,
"should_answer_policy": {
"enabled": False,
"mode": "suppress_only",
"enabled_mediums": [],
"exact_match_enabled": True,
"jaccard_enabled": True,
"suppress_threshold": 0.85,
"fuzzy_threshold": 0.5,
"llm_judge_enabled": False,
"llm_judge_always": False,
"llm_judge_action": "rewrite",
"timeout_seconds": 10,
"num_retries": 1,
"max_consecutive_suppressions": 2,
"on_suppression_limit_reached": "force_send",
"suppression_history_enabled": True,
"suppression_history_max_size": 10,
"llm_judge_prompt_markdown": "<string>",
"llm_rewrite_prompt_markdown": "<string>"
},
"message_reaction_policy": { "enabled_mediums": [] },
"session_timeout": {
"days": 0,
"hours": 0,
"minutes": 0
}
},
"disable_system_dispositioning": False,
"dispositions": [
{
"id": "<string>",
"name": "<string>",
"parent_disposition": "<string>",
"description": "<string>",
"color": "#A5A5A5",
"contacted": True,
"conversion": True,
"enabled": True
}
],
"disposition_level_3_prompt": "<string>",
"call_summary_description": "<string>",
"disposition_level_3_model": "gpt-4o-2024-08-06",
"tasks": [
{
"task_settings": {},
"id": "<string>",
"name": "<string>",
"type": "post_call",
"condition": {
"call_count": [123],
"dispositions": [{ "values": ["<string>"] }],
"ai_conditions": [
{
"condition": "Did the lead say there is a child in the car?",
"confidence_threshold": 0.5
}
],
"eval_conditions": [
{
"grader_name": "<string>",
"values": ["<string>"],
"passed": True
}
],
"expression_conditions": [{ "expression": "conversation.action_runs.call_transfer.last.success" }]
},
"required": False,
"enabled": True
}
],
"call_now_threshold_recall_time": 123,
"external_context_template": "customer has purchased their order.",
"system_prompt": None,
"campaign_duration": {
"campaign_start_date": "2023-11-07T05:31:56Z",
"campaign_end_date": "2023-11-07T05:31:56Z"
},
"disable_amd": False,
"answering_machine_detection": {
"enabled": True,
"interrupt_on_machine": True,
"machine_ivr_behavior": "native_ivr",
"machine_vm_behavior": "hang_up",
"machine_unavailable_behavior": "hang_up",
"voicemail_message": "<string>",
"llm_model": "<string>",
"stt_model": "<string>",
"detection_options": {
"human_speech_threshold": 123,
"human_silence_threshold": 123,
"machine_silence_threshold": 123,
"no_speech_threshold": 123,
"timeout": 123,
"prompt": "<string>"
}
},
"custom_fields": { "postal_code": "1234" },
"precall_tasks_execution_mode": "prolonged_ringing",
"telephony_outbound_caller_id": "<string>",
"sip_proxy_settings": {
"sip_uri": "<string>",
"enabled": False,
"transport": "tcp",
"username": "<string>",
"password": "<string>"
},
"v3_voice_routing_percentage": 0,
"v3_voice_redirect_campaign_id": "<string>"
}
headers = {
"X-API-KEY": "<api-key>",
"x-org-id": "<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>',
'x-org-id': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
agents: ['<string>'],
distribution_strategy: 'random',
distribution_settings: {percentages: {}, last_assigned_agent_index: -1},
distribution_by_medium: {},
rules: {
call_limit: 123,
call_window: [{weekday: 1, start_time: 1179, end_time: 1179}],
messenger_disposition_threshold_in_minutes: 123,
medium_response_settings: {},
api_text_disposition_threshold_in_minutes: 123,
should_answer_policy: {
enabled: false,
mode: 'suppress_only',
enabled_mediums: [],
exact_match_enabled: true,
jaccard_enabled: true,
suppress_threshold: 0.85,
fuzzy_threshold: 0.5,
llm_judge_enabled: false,
llm_judge_always: false,
llm_judge_action: 'rewrite',
timeout_seconds: 10,
num_retries: 1,
max_consecutive_suppressions: 2,
on_suppression_limit_reached: 'force_send',
suppression_history_enabled: true,
suppression_history_max_size: 10,
llm_judge_prompt_markdown: '<string>',
llm_rewrite_prompt_markdown: '<string>'
},
message_reaction_policy: {enabled_mediums: []},
session_timeout: {days: 0, hours: 0, minutes: 0}
},
disable_system_dispositioning: false,
dispositions: [
{
id: '<string>',
name: '<string>',
parent_disposition: '<string>',
description: '<string>',
color: '#A5A5A5',
contacted: true,
conversion: true,
enabled: true
}
],
disposition_level_3_prompt: '<string>',
call_summary_description: '<string>',
disposition_level_3_model: 'gpt-4o-2024-08-06',
tasks: [
{
task_settings: {},
id: '<string>',
name: '<string>',
type: 'post_call',
condition: {
call_count: [123],
dispositions: [{values: ['<string>']}],
ai_conditions: [
{
condition: 'Did the lead say there is a child in the car?',
confidence_threshold: 0.5
}
],
eval_conditions: [{grader_name: '<string>', values: ['<string>'], passed: true}],
expression_conditions: [{expression: 'conversation.action_runs.call_transfer.last.success'}]
},
required: false,
enabled: true
}
],
call_now_threshold_recall_time: 123,
external_context_template: 'customer has purchased their order.',
system_prompt: null,
campaign_duration: {
campaign_start_date: '2023-11-07T05:31:56Z',
campaign_end_date: '2023-11-07T05:31:56Z'
},
disable_amd: false,
answering_machine_detection: {
enabled: true,
interrupt_on_machine: true,
machine_ivr_behavior: 'native_ivr',
machine_vm_behavior: 'hang_up',
machine_unavailable_behavior: 'hang_up',
voicemail_message: '<string>',
llm_model: '<string>',
stt_model: '<string>',
detection_options: {
human_speech_threshold: 123,
human_silence_threshold: 123,
machine_silence_threshold: 123,
no_speech_threshold: 123,
timeout: 123,
prompt: '<string>'
}
},
custom_fields: {postal_code: '1234'},
precall_tasks_execution_mode: 'prolonged_ringing',
telephony_outbound_caller_id: '<string>',
sip_proxy_settings: {
sip_uri: '<string>',
enabled: false,
transport: 'tcp',
username: '<string>',
password: '<string>'
},
v3_voice_routing_percentage: 0,
v3_voice_redirect_campaign_id: '<string>'
})
};
fetch('https://api.eqho.ai/v1/campaigns', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.eqho.ai/v1/campaigns"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"agents\": [\n \"<string>\"\n ],\n \"distribution_strategy\": \"random\",\n \"distribution_settings\": {\n \"percentages\": {},\n \"last_assigned_agent_index\": -1\n },\n \"distribution_by_medium\": {},\n \"rules\": {\n \"call_limit\": 123,\n \"call_window\": [\n {\n \"weekday\": 1,\n \"start_time\": 1179,\n \"end_time\": 1179\n }\n ],\n \"messenger_disposition_threshold_in_minutes\": 123,\n \"medium_response_settings\": {},\n \"api_text_disposition_threshold_in_minutes\": 123,\n \"should_answer_policy\": {\n \"enabled\": false,\n \"mode\": \"suppress_only\",\n \"enabled_mediums\": [],\n \"exact_match_enabled\": true,\n \"jaccard_enabled\": true,\n \"suppress_threshold\": 0.85,\n \"fuzzy_threshold\": 0.5,\n \"llm_judge_enabled\": false,\n \"llm_judge_always\": false,\n \"llm_judge_action\": \"rewrite\",\n \"timeout_seconds\": 10,\n \"num_retries\": 1,\n \"max_consecutive_suppressions\": 2,\n \"on_suppression_limit_reached\": \"force_send\",\n \"suppression_history_enabled\": true,\n \"suppression_history_max_size\": 10,\n \"llm_judge_prompt_markdown\": \"<string>\",\n \"llm_rewrite_prompt_markdown\": \"<string>\"\n },\n \"message_reaction_policy\": {\n \"enabled_mediums\": []\n },\n \"session_timeout\": {\n \"days\": 0,\n \"hours\": 0,\n \"minutes\": 0\n }\n },\n \"disable_system_dispositioning\": false,\n \"dispositions\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"parent_disposition\": \"<string>\",\n \"description\": \"<string>\",\n \"color\": \"#A5A5A5\",\n \"contacted\": true,\n \"conversion\": true,\n \"enabled\": true\n }\n ],\n \"disposition_level_3_prompt\": \"<string>\",\n \"call_summary_description\": \"<string>\",\n \"disposition_level_3_model\": \"gpt-4o-2024-08-06\",\n \"tasks\": [\n {\n \"task_settings\": {},\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"type\": \"post_call\",\n \"condition\": {\n \"call_count\": [\n 123\n ],\n \"dispositions\": [\n {\n \"values\": [\n \"<string>\"\n ]\n }\n ],\n \"ai_conditions\": [\n {\n \"condition\": \"Did the lead say there is a child in the car?\",\n \"confidence_threshold\": 0.5\n }\n ],\n \"eval_conditions\": [\n {\n \"grader_name\": \"<string>\",\n \"values\": [\n \"<string>\"\n ],\n \"passed\": true\n }\n ],\n \"expression_conditions\": [\n {\n \"expression\": \"conversation.action_runs.call_transfer.last.success\"\n }\n ]\n },\n \"required\": false,\n \"enabled\": true\n }\n ],\n \"call_now_threshold_recall_time\": 123,\n \"external_context_template\": \"customer has purchased their order.\",\n \"system_prompt\": null,\n \"campaign_duration\": {\n \"campaign_start_date\": \"2023-11-07T05:31:56Z\",\n \"campaign_end_date\": \"2023-11-07T05:31:56Z\"\n },\n \"disable_amd\": false,\n \"answering_machine_detection\": {\n \"enabled\": true,\n \"interrupt_on_machine\": true,\n \"machine_ivr_behavior\": \"native_ivr\",\n \"machine_vm_behavior\": \"hang_up\",\n \"machine_unavailable_behavior\": \"hang_up\",\n \"voicemail_message\": \"<string>\",\n \"llm_model\": \"<string>\",\n \"stt_model\": \"<string>\",\n \"detection_options\": {\n \"human_speech_threshold\": 123,\n \"human_silence_threshold\": 123,\n \"machine_silence_threshold\": 123,\n \"no_speech_threshold\": 123,\n \"timeout\": 123,\n \"prompt\": \"<string>\"\n }\n },\n \"custom_fields\": {\n \"postal_code\": \"1234\"\n },\n \"precall_tasks_execution_mode\": \"prolonged_ringing\",\n \"telephony_outbound_caller_id\": \"<string>\",\n \"sip_proxy_settings\": {\n \"sip_uri\": \"<string>\",\n \"enabled\": false,\n \"transport\": \"tcp\",\n \"username\": \"<string>\",\n \"password\": \"<string>\"\n },\n \"v3_voice_routing_percentage\": 0,\n \"v3_voice_redirect_campaign_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("x-org-id", "<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))
}{
"name": "<string>",
"status": "CREATED",
"id": "<string>",
"account_id": "<string>",
"agents": [
"<string>"
],
"agent_snapshot_map": {},
"distribution_strategy": "random",
"distribution_settings": {
"percentages": {},
"last_assigned_agent_index": -1
},
"distribution_by_medium": {},
"phone_numbers": [
"<string>"
],
"inbound_phone_numbers": [
"<string>"
],
"claimed_phone_numbers": {},
"dispositions": [
{
"id": "<string>",
"name": "<string>",
"parent_disposition": "<string>",
"description": "<string>",
"color": "#A5A5A5",
"contacted": true,
"conversion": true,
"blocklist_level": "CAMPAIGN",
"enabled": true
}
],
"disposition_instructions": "<string>",
"disposition_level_2_instructions": "<string>",
"disposition_level_3_prompt": "<string>",
"call_summary_description": "<string>",
"disposition_level_3_reasoning": "none",
"disposition_level_3_model": "gpt-5.4",
"rules": {
"call_limit": 123,
"call_window": [
{
"weekday": 1,
"start_time": 1179,
"end_time": 1179
}
],
"messenger_disposition_threshold_in_minutes": 123,
"medium_response_settings": {},
"api_text_disposition_threshold_in_minutes": 123,
"should_answer_policy": {
"enabled": false,
"mode": "suppress_only",
"enabled_mediums": [
"web_voice"
],
"exact_match_enabled": true,
"jaccard_enabled": true,
"suppress_threshold": 0.85,
"fuzzy_threshold": 0.5,
"llm_judge_enabled": false,
"llm_judge_always": false,
"llm_judge_action": "rewrite",
"model": "gpt-5.4",
"timeout_seconds": 10,
"num_retries": 1,
"max_consecutive_suppressions": 2,
"on_suppression_limit_reached": "force_send",
"suppression_history_enabled": true,
"suppression_history_max_size": 10,
"llm_judge_prompt_markdown": "<string>",
"llm_rewrite_prompt_markdown": "<string>"
},
"message_reaction_policy": {
"action": "completely_ignore",
"enabled_mediums": [
"web_voice"
]
},
"session_timeout": {
"days": 0,
"hours": 0,
"minutes": 0
}
},
"enabled": true,
"history": {
"last_modified_at": "2023-11-07T05:31:56Z",
"revision": 0,
"created_at": "2023-11-07T05:31:56Z",
"created_by": "unknown",
"last_modified_by": "unknown"
},
"tasks": [
{
"task_type": "try_again",
"task_settings": {},
"id": "<string>",
"name": "<string>",
"type": "post_call",
"condition": {
"call_count": [
123
],
"dispositions": [
{
"field": "twilio_status",
"values": [
"<string>"
]
}
],
"ai_conditions": [
{
"condition": "Did the lead say there is a child in the car?",
"confidence_threshold": 0.5
}
],
"eval_conditions": [
{
"grader_name": "<string>",
"values": [
"<string>"
],
"passed": true
}
],
"expression_conditions": [
{
"expression": "conversation.action_runs.call_transfer.last.success"
}
]
},
"required": false,
"enabled": true
}
],
"call_now_threshold_recall_time": 123,
"external_context_template": "<string>",
"system_prompt": {
"inbound": {
"sections": [
{
"title": "<string>",
"description": "<string>"
}
],
"medium": "web_voice",
"conversation_seeder": [
"<string>"
],
"structured_conversation_seeder": [
{
"role": "system",
"content": "<string>",
"tool_calls": [
{
"name": "<string>",
"arguments": {}
}
]
}
],
"type": "outbound",
"extend_sections": false,
"extend_conversation_seeder": false
},
"outbound": {
"sections": [
{
"title": "<string>",
"description": "<string>"
}
],
"medium": "web_voice",
"conversation_seeder": [
"<string>"
],
"structured_conversation_seeder": [
{
"role": "system",
"content": "<string>",
"tool_calls": [
{
"name": "<string>",
"arguments": {}
}
]
}
],
"type": "outbound",
"extend_sections": false,
"extend_conversation_seeder": false
}
},
"disable_system_dispositioning": false,
"campaign_duration": {
"campaign_start_date": "2023-11-07T05:31:56Z",
"campaign_end_date": "2023-11-07T05:31:56Z"
},
"disable_amd": false,
"answering_machine_detection": {
"enabled": true,
"interrupt_on_machine": true,
"machine_ivr_behavior": "native_ivr",
"machine_vm_behavior": "hang_up",
"machine_unavailable_behavior": "hang_up",
"voicemail_message": "<string>",
"llm_model": "<string>",
"stt_model": "<string>",
"detection_options": {
"human_speech_threshold": 123,
"human_silence_threshold": 123,
"machine_silence_threshold": 123,
"no_speech_threshold": 123,
"timeout": 123,
"prompt": "<string>"
}
},
"custom_fields": {},
"a2p_status": "rejected",
"initial_contact_medium": "web_voice",
"precall_tasks_execution_mode": "prolonged_ringing",
"inbound_lead_list": "<string>",
"telephony_outbound_caller_id": "<string>",
"sip_proxy_settings": {
"sip_uri": "<string>",
"enabled": false,
"transport": "tcp",
"username": "<string>",
"password": "<string>",
"password_configured": true
},
"v3_voice_routing_percentage": 0,
"v3_voice_redirect_campaign_id": "<string>",
"source": {
"campaign_id": "<string>",
"account_id": "<string>",
"snapshot_id": "<string>",
"pending_publish": {
"source_snapshot_id": "<string>",
"source_snapshot_tag": "<string>",
"conflicts": [
{
"conflict_type": "field",
"entity_type": "<string>",
"entity_id": "<string>",
"entity_name": "<string>",
"field": "<string>",
"base_value": "<unknown>",
"source_value": "<unknown>",
"clone_value": "<unknown>"
}
],
"created_at": "2023-11-07T05:31:56Z"
}
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Create Campaign
curl --request POST \
--url https://api.eqho.ai/v1/campaigns \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--header 'x-org-id: <api-key>' \
--data '
{
"name": "<string>",
"agents": [
"<string>"
],
"distribution_strategy": "random",
"distribution_settings": {
"percentages": {},
"last_assigned_agent_index": -1
},
"distribution_by_medium": {},
"rules": {
"call_limit": 123,
"call_window": [
{
"weekday": 1,
"start_time": 1179,
"end_time": 1179
}
],
"messenger_disposition_threshold_in_minutes": 123,
"medium_response_settings": {},
"api_text_disposition_threshold_in_minutes": 123,
"should_answer_policy": {
"enabled": false,
"mode": "suppress_only",
"enabled_mediums": [],
"exact_match_enabled": true,
"jaccard_enabled": true,
"suppress_threshold": 0.85,
"fuzzy_threshold": 0.5,
"llm_judge_enabled": false,
"llm_judge_always": false,
"llm_judge_action": "rewrite",
"timeout_seconds": 10,
"num_retries": 1,
"max_consecutive_suppressions": 2,
"on_suppression_limit_reached": "force_send",
"suppression_history_enabled": true,
"suppression_history_max_size": 10,
"llm_judge_prompt_markdown": "<string>",
"llm_rewrite_prompt_markdown": "<string>"
},
"message_reaction_policy": {
"enabled_mediums": []
},
"session_timeout": {
"days": 0,
"hours": 0,
"minutes": 0
}
},
"disable_system_dispositioning": false,
"dispositions": [
{
"id": "<string>",
"name": "<string>",
"parent_disposition": "<string>",
"description": "<string>",
"color": "#A5A5A5",
"contacted": true,
"conversion": true,
"enabled": true
}
],
"disposition_level_3_prompt": "<string>",
"call_summary_description": "<string>",
"disposition_level_3_model": "gpt-4o-2024-08-06",
"tasks": [
{
"task_settings": {},
"id": "<string>",
"name": "<string>",
"type": "post_call",
"condition": {
"call_count": [
123
],
"dispositions": [
{
"values": [
"<string>"
]
}
],
"ai_conditions": [
{
"condition": "Did the lead say there is a child in the car?",
"confidence_threshold": 0.5
}
],
"eval_conditions": [
{
"grader_name": "<string>",
"values": [
"<string>"
],
"passed": true
}
],
"expression_conditions": [
{
"expression": "conversation.action_runs.call_transfer.last.success"
}
]
},
"required": false,
"enabled": true
}
],
"call_now_threshold_recall_time": 123,
"external_context_template": "customer has purchased their order.",
"system_prompt": null,
"campaign_duration": {
"campaign_start_date": "2023-11-07T05:31:56Z",
"campaign_end_date": "2023-11-07T05:31:56Z"
},
"disable_amd": false,
"answering_machine_detection": {
"enabled": true,
"interrupt_on_machine": true,
"machine_ivr_behavior": "native_ivr",
"machine_vm_behavior": "hang_up",
"machine_unavailable_behavior": "hang_up",
"voicemail_message": "<string>",
"llm_model": "<string>",
"stt_model": "<string>",
"detection_options": {
"human_speech_threshold": 123,
"human_silence_threshold": 123,
"machine_silence_threshold": 123,
"no_speech_threshold": 123,
"timeout": 123,
"prompt": "<string>"
}
},
"custom_fields": {
"postal_code": "1234"
},
"precall_tasks_execution_mode": "prolonged_ringing",
"telephony_outbound_caller_id": "<string>",
"sip_proxy_settings": {
"sip_uri": "<string>",
"enabled": false,
"transport": "tcp",
"username": "<string>",
"password": "<string>"
},
"v3_voice_routing_percentage": 0,
"v3_voice_redirect_campaign_id": "<string>"
}
'import requests
url = "https://api.eqho.ai/v1/campaigns"
payload = {
"name": "<string>",
"agents": ["<string>"],
"distribution_strategy": "random",
"distribution_settings": {
"percentages": {},
"last_assigned_agent_index": -1
},
"distribution_by_medium": {},
"rules": {
"call_limit": 123,
"call_window": [
{
"weekday": 1,
"start_time": 1179,
"end_time": 1179
}
],
"messenger_disposition_threshold_in_minutes": 123,
"medium_response_settings": {},
"api_text_disposition_threshold_in_minutes": 123,
"should_answer_policy": {
"enabled": False,
"mode": "suppress_only",
"enabled_mediums": [],
"exact_match_enabled": True,
"jaccard_enabled": True,
"suppress_threshold": 0.85,
"fuzzy_threshold": 0.5,
"llm_judge_enabled": False,
"llm_judge_always": False,
"llm_judge_action": "rewrite",
"timeout_seconds": 10,
"num_retries": 1,
"max_consecutive_suppressions": 2,
"on_suppression_limit_reached": "force_send",
"suppression_history_enabled": True,
"suppression_history_max_size": 10,
"llm_judge_prompt_markdown": "<string>",
"llm_rewrite_prompt_markdown": "<string>"
},
"message_reaction_policy": { "enabled_mediums": [] },
"session_timeout": {
"days": 0,
"hours": 0,
"minutes": 0
}
},
"disable_system_dispositioning": False,
"dispositions": [
{
"id": "<string>",
"name": "<string>",
"parent_disposition": "<string>",
"description": "<string>",
"color": "#A5A5A5",
"contacted": True,
"conversion": True,
"enabled": True
}
],
"disposition_level_3_prompt": "<string>",
"call_summary_description": "<string>",
"disposition_level_3_model": "gpt-4o-2024-08-06",
"tasks": [
{
"task_settings": {},
"id": "<string>",
"name": "<string>",
"type": "post_call",
"condition": {
"call_count": [123],
"dispositions": [{ "values": ["<string>"] }],
"ai_conditions": [
{
"condition": "Did the lead say there is a child in the car?",
"confidence_threshold": 0.5
}
],
"eval_conditions": [
{
"grader_name": "<string>",
"values": ["<string>"],
"passed": True
}
],
"expression_conditions": [{ "expression": "conversation.action_runs.call_transfer.last.success" }]
},
"required": False,
"enabled": True
}
],
"call_now_threshold_recall_time": 123,
"external_context_template": "customer has purchased their order.",
"system_prompt": None,
"campaign_duration": {
"campaign_start_date": "2023-11-07T05:31:56Z",
"campaign_end_date": "2023-11-07T05:31:56Z"
},
"disable_amd": False,
"answering_machine_detection": {
"enabled": True,
"interrupt_on_machine": True,
"machine_ivr_behavior": "native_ivr",
"machine_vm_behavior": "hang_up",
"machine_unavailable_behavior": "hang_up",
"voicemail_message": "<string>",
"llm_model": "<string>",
"stt_model": "<string>",
"detection_options": {
"human_speech_threshold": 123,
"human_silence_threshold": 123,
"machine_silence_threshold": 123,
"no_speech_threshold": 123,
"timeout": 123,
"prompt": "<string>"
}
},
"custom_fields": { "postal_code": "1234" },
"precall_tasks_execution_mode": "prolonged_ringing",
"telephony_outbound_caller_id": "<string>",
"sip_proxy_settings": {
"sip_uri": "<string>",
"enabled": False,
"transport": "tcp",
"username": "<string>",
"password": "<string>"
},
"v3_voice_routing_percentage": 0,
"v3_voice_redirect_campaign_id": "<string>"
}
headers = {
"X-API-KEY": "<api-key>",
"x-org-id": "<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>',
'x-org-id': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '<string>',
agents: ['<string>'],
distribution_strategy: 'random',
distribution_settings: {percentages: {}, last_assigned_agent_index: -1},
distribution_by_medium: {},
rules: {
call_limit: 123,
call_window: [{weekday: 1, start_time: 1179, end_time: 1179}],
messenger_disposition_threshold_in_minutes: 123,
medium_response_settings: {},
api_text_disposition_threshold_in_minutes: 123,
should_answer_policy: {
enabled: false,
mode: 'suppress_only',
enabled_mediums: [],
exact_match_enabled: true,
jaccard_enabled: true,
suppress_threshold: 0.85,
fuzzy_threshold: 0.5,
llm_judge_enabled: false,
llm_judge_always: false,
llm_judge_action: 'rewrite',
timeout_seconds: 10,
num_retries: 1,
max_consecutive_suppressions: 2,
on_suppression_limit_reached: 'force_send',
suppression_history_enabled: true,
suppression_history_max_size: 10,
llm_judge_prompt_markdown: '<string>',
llm_rewrite_prompt_markdown: '<string>'
},
message_reaction_policy: {enabled_mediums: []},
session_timeout: {days: 0, hours: 0, minutes: 0}
},
disable_system_dispositioning: false,
dispositions: [
{
id: '<string>',
name: '<string>',
parent_disposition: '<string>',
description: '<string>',
color: '#A5A5A5',
contacted: true,
conversion: true,
enabled: true
}
],
disposition_level_3_prompt: '<string>',
call_summary_description: '<string>',
disposition_level_3_model: 'gpt-4o-2024-08-06',
tasks: [
{
task_settings: {},
id: '<string>',
name: '<string>',
type: 'post_call',
condition: {
call_count: [123],
dispositions: [{values: ['<string>']}],
ai_conditions: [
{
condition: 'Did the lead say there is a child in the car?',
confidence_threshold: 0.5
}
],
eval_conditions: [{grader_name: '<string>', values: ['<string>'], passed: true}],
expression_conditions: [{expression: 'conversation.action_runs.call_transfer.last.success'}]
},
required: false,
enabled: true
}
],
call_now_threshold_recall_time: 123,
external_context_template: 'customer has purchased their order.',
system_prompt: null,
campaign_duration: {
campaign_start_date: '2023-11-07T05:31:56Z',
campaign_end_date: '2023-11-07T05:31:56Z'
},
disable_amd: false,
answering_machine_detection: {
enabled: true,
interrupt_on_machine: true,
machine_ivr_behavior: 'native_ivr',
machine_vm_behavior: 'hang_up',
machine_unavailable_behavior: 'hang_up',
voicemail_message: '<string>',
llm_model: '<string>',
stt_model: '<string>',
detection_options: {
human_speech_threshold: 123,
human_silence_threshold: 123,
machine_silence_threshold: 123,
no_speech_threshold: 123,
timeout: 123,
prompt: '<string>'
}
},
custom_fields: {postal_code: '1234'},
precall_tasks_execution_mode: 'prolonged_ringing',
telephony_outbound_caller_id: '<string>',
sip_proxy_settings: {
sip_uri: '<string>',
enabled: false,
transport: 'tcp',
username: '<string>',
password: '<string>'
},
v3_voice_routing_percentage: 0,
v3_voice_redirect_campaign_id: '<string>'
})
};
fetch('https://api.eqho.ai/v1/campaigns', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.eqho.ai/v1/campaigns"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"agents\": [\n \"<string>\"\n ],\n \"distribution_strategy\": \"random\",\n \"distribution_settings\": {\n \"percentages\": {},\n \"last_assigned_agent_index\": -1\n },\n \"distribution_by_medium\": {},\n \"rules\": {\n \"call_limit\": 123,\n \"call_window\": [\n {\n \"weekday\": 1,\n \"start_time\": 1179,\n \"end_time\": 1179\n }\n ],\n \"messenger_disposition_threshold_in_minutes\": 123,\n \"medium_response_settings\": {},\n \"api_text_disposition_threshold_in_minutes\": 123,\n \"should_answer_policy\": {\n \"enabled\": false,\n \"mode\": \"suppress_only\",\n \"enabled_mediums\": [],\n \"exact_match_enabled\": true,\n \"jaccard_enabled\": true,\n \"suppress_threshold\": 0.85,\n \"fuzzy_threshold\": 0.5,\n \"llm_judge_enabled\": false,\n \"llm_judge_always\": false,\n \"llm_judge_action\": \"rewrite\",\n \"timeout_seconds\": 10,\n \"num_retries\": 1,\n \"max_consecutive_suppressions\": 2,\n \"on_suppression_limit_reached\": \"force_send\",\n \"suppression_history_enabled\": true,\n \"suppression_history_max_size\": 10,\n \"llm_judge_prompt_markdown\": \"<string>\",\n \"llm_rewrite_prompt_markdown\": \"<string>\"\n },\n \"message_reaction_policy\": {\n \"enabled_mediums\": []\n },\n \"session_timeout\": {\n \"days\": 0,\n \"hours\": 0,\n \"minutes\": 0\n }\n },\n \"disable_system_dispositioning\": false,\n \"dispositions\": [\n {\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"parent_disposition\": \"<string>\",\n \"description\": \"<string>\",\n \"color\": \"#A5A5A5\",\n \"contacted\": true,\n \"conversion\": true,\n \"enabled\": true\n }\n ],\n \"disposition_level_3_prompt\": \"<string>\",\n \"call_summary_description\": \"<string>\",\n \"disposition_level_3_model\": \"gpt-4o-2024-08-06\",\n \"tasks\": [\n {\n \"task_settings\": {},\n \"id\": \"<string>\",\n \"name\": \"<string>\",\n \"type\": \"post_call\",\n \"condition\": {\n \"call_count\": [\n 123\n ],\n \"dispositions\": [\n {\n \"values\": [\n \"<string>\"\n ]\n }\n ],\n \"ai_conditions\": [\n {\n \"condition\": \"Did the lead say there is a child in the car?\",\n \"confidence_threshold\": 0.5\n }\n ],\n \"eval_conditions\": [\n {\n \"grader_name\": \"<string>\",\n \"values\": [\n \"<string>\"\n ],\n \"passed\": true\n }\n ],\n \"expression_conditions\": [\n {\n \"expression\": \"conversation.action_runs.call_transfer.last.success\"\n }\n ]\n },\n \"required\": false,\n \"enabled\": true\n }\n ],\n \"call_now_threshold_recall_time\": 123,\n \"external_context_template\": \"customer has purchased their order.\",\n \"system_prompt\": null,\n \"campaign_duration\": {\n \"campaign_start_date\": \"2023-11-07T05:31:56Z\",\n \"campaign_end_date\": \"2023-11-07T05:31:56Z\"\n },\n \"disable_amd\": false,\n \"answering_machine_detection\": {\n \"enabled\": true,\n \"interrupt_on_machine\": true,\n \"machine_ivr_behavior\": \"native_ivr\",\n \"machine_vm_behavior\": \"hang_up\",\n \"machine_unavailable_behavior\": \"hang_up\",\n \"voicemail_message\": \"<string>\",\n \"llm_model\": \"<string>\",\n \"stt_model\": \"<string>\",\n \"detection_options\": {\n \"human_speech_threshold\": 123,\n \"human_silence_threshold\": 123,\n \"machine_silence_threshold\": 123,\n \"no_speech_threshold\": 123,\n \"timeout\": 123,\n \"prompt\": \"<string>\"\n }\n },\n \"custom_fields\": {\n \"postal_code\": \"1234\"\n },\n \"precall_tasks_execution_mode\": \"prolonged_ringing\",\n \"telephony_outbound_caller_id\": \"<string>\",\n \"sip_proxy_settings\": {\n \"sip_uri\": \"<string>\",\n \"enabled\": false,\n \"transport\": \"tcp\",\n \"username\": \"<string>\",\n \"password\": \"<string>\"\n },\n \"v3_voice_routing_percentage\": 0,\n \"v3_voice_redirect_campaign_id\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("x-org-id", "<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))
}{
"name": "<string>",
"status": "CREATED",
"id": "<string>",
"account_id": "<string>",
"agents": [
"<string>"
],
"agent_snapshot_map": {},
"distribution_strategy": "random",
"distribution_settings": {
"percentages": {},
"last_assigned_agent_index": -1
},
"distribution_by_medium": {},
"phone_numbers": [
"<string>"
],
"inbound_phone_numbers": [
"<string>"
],
"claimed_phone_numbers": {},
"dispositions": [
{
"id": "<string>",
"name": "<string>",
"parent_disposition": "<string>",
"description": "<string>",
"color": "#A5A5A5",
"contacted": true,
"conversion": true,
"blocklist_level": "CAMPAIGN",
"enabled": true
}
],
"disposition_instructions": "<string>",
"disposition_level_2_instructions": "<string>",
"disposition_level_3_prompt": "<string>",
"call_summary_description": "<string>",
"disposition_level_3_reasoning": "none",
"disposition_level_3_model": "gpt-5.4",
"rules": {
"call_limit": 123,
"call_window": [
{
"weekday": 1,
"start_time": 1179,
"end_time": 1179
}
],
"messenger_disposition_threshold_in_minutes": 123,
"medium_response_settings": {},
"api_text_disposition_threshold_in_minutes": 123,
"should_answer_policy": {
"enabled": false,
"mode": "suppress_only",
"enabled_mediums": [
"web_voice"
],
"exact_match_enabled": true,
"jaccard_enabled": true,
"suppress_threshold": 0.85,
"fuzzy_threshold": 0.5,
"llm_judge_enabled": false,
"llm_judge_always": false,
"llm_judge_action": "rewrite",
"model": "gpt-5.4",
"timeout_seconds": 10,
"num_retries": 1,
"max_consecutive_suppressions": 2,
"on_suppression_limit_reached": "force_send",
"suppression_history_enabled": true,
"suppression_history_max_size": 10,
"llm_judge_prompt_markdown": "<string>",
"llm_rewrite_prompt_markdown": "<string>"
},
"message_reaction_policy": {
"action": "completely_ignore",
"enabled_mediums": [
"web_voice"
]
},
"session_timeout": {
"days": 0,
"hours": 0,
"minutes": 0
}
},
"enabled": true,
"history": {
"last_modified_at": "2023-11-07T05:31:56Z",
"revision": 0,
"created_at": "2023-11-07T05:31:56Z",
"created_by": "unknown",
"last_modified_by": "unknown"
},
"tasks": [
{
"task_type": "try_again",
"task_settings": {},
"id": "<string>",
"name": "<string>",
"type": "post_call",
"condition": {
"call_count": [
123
],
"dispositions": [
{
"field": "twilio_status",
"values": [
"<string>"
]
}
],
"ai_conditions": [
{
"condition": "Did the lead say there is a child in the car?",
"confidence_threshold": 0.5
}
],
"eval_conditions": [
{
"grader_name": "<string>",
"values": [
"<string>"
],
"passed": true
}
],
"expression_conditions": [
{
"expression": "conversation.action_runs.call_transfer.last.success"
}
]
},
"required": false,
"enabled": true
}
],
"call_now_threshold_recall_time": 123,
"external_context_template": "<string>",
"system_prompt": {
"inbound": {
"sections": [
{
"title": "<string>",
"description": "<string>"
}
],
"medium": "web_voice",
"conversation_seeder": [
"<string>"
],
"structured_conversation_seeder": [
{
"role": "system",
"content": "<string>",
"tool_calls": [
{
"name": "<string>",
"arguments": {}
}
]
}
],
"type": "outbound",
"extend_sections": false,
"extend_conversation_seeder": false
},
"outbound": {
"sections": [
{
"title": "<string>",
"description": "<string>"
}
],
"medium": "web_voice",
"conversation_seeder": [
"<string>"
],
"structured_conversation_seeder": [
{
"role": "system",
"content": "<string>",
"tool_calls": [
{
"name": "<string>",
"arguments": {}
}
]
}
],
"type": "outbound",
"extend_sections": false,
"extend_conversation_seeder": false
}
},
"disable_system_dispositioning": false,
"campaign_duration": {
"campaign_start_date": "2023-11-07T05:31:56Z",
"campaign_end_date": "2023-11-07T05:31:56Z"
},
"disable_amd": false,
"answering_machine_detection": {
"enabled": true,
"interrupt_on_machine": true,
"machine_ivr_behavior": "native_ivr",
"machine_vm_behavior": "hang_up",
"machine_unavailable_behavior": "hang_up",
"voicemail_message": "<string>",
"llm_model": "<string>",
"stt_model": "<string>",
"detection_options": {
"human_speech_threshold": 123,
"human_silence_threshold": 123,
"machine_silence_threshold": 123,
"no_speech_threshold": 123,
"timeout": 123,
"prompt": "<string>"
}
},
"custom_fields": {},
"a2p_status": "rejected",
"initial_contact_medium": "web_voice",
"precall_tasks_execution_mode": "prolonged_ringing",
"inbound_lead_list": "<string>",
"telephony_outbound_caller_id": "<string>",
"sip_proxy_settings": {
"sip_uri": "<string>",
"enabled": false,
"transport": "tcp",
"username": "<string>",
"password": "<string>",
"password_configured": true
},
"v3_voice_routing_percentage": 0,
"v3_voice_redirect_campaign_id": "<string>",
"source": {
"campaign_id": "<string>",
"account_id": "<string>",
"snapshot_id": "<string>",
"pending_publish": {
"source_snapshot_id": "<string>",
"source_snapshot_tag": "<string>",
"conflicts": [
{
"conflict_type": "field",
"entity_type": "<string>",
"entity_id": "<string>",
"entity_name": "<string>",
"field": "<string>",
"base_value": "<unknown>",
"source_value": "<unknown>",
"clone_value": "<unknown>"
}
],
"created_at": "2023-11-07T05:31:56Z"
}
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Your API key for authentication.
Org impersonation via x-org-id. Superadmins may impersonate any org; admins may impersonate their direct sub-organizations. Enter the target organization ID to act as that org.
Body
The name of the campaign. Only used for your own reference.
CREATED, ACTIVE, INACTIVE, PAUSED, PROCESSED A list of agent IDs that will be assigned to this campaign, you can query them using GET v1/agents. For inbound and outbound calls and SMS, a random agent will be selected from this list for every conversation. For the chat widget, you can select which Agent will be assigned to conversations.
How calls are distributed among agents in a campaign.
round_robin, custom_percentage, random Settings for the distribution strategy. Required for custom_percentage distribution strategy.
Show child attributes
Show child attributes
Per-medium agent pools and distribution; mediums without an entry use the default distribution.
Show child attributes
Show child attributes
What medium will be used for the initial contact with a lead.
web_voice, telephony, sms, email, chatbot, api_text, chat_app, softphone The rules for the campaign.
Show child attributes
Show child attributes
If true, system will not disposition conversations from this campaign.
Calls made in this campaign will have disposition_level_2 and disposition_level_3 fields as null.
You can use this to create your own dispositioning system using post call tasks.
A list of categories that LLM can use to categorize the outcome of a call. You can use this to setup Task rules based on the dispositions or track the performance of your agents and campaigns.
Show child attributes
Show child attributes
Prompt to be shown to the agent when selecting a disposition. If not provided, a default prompt will be used.
Optional instructions for this campaign's call summary. If omitted or blank, the system default summary instructions are used.
Reasoning effort for disposition classification and its call summary. Null inherits the agent's reasoning setting, then the system default.
none, low, medium, high Model to use for disposition level 3 classification. If not provided, the default model will be used.
gpt-5.4, gpt-5.4-pro, gpt-5.2, gpt-5.2-pro, gpt-5.1, gpt-5, gpt-5-pro, gpt-5-mini, gpt-5-nano, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-4o, gpt-4o-mini, o3, o3-pro, o3-mini, o4-mini, claude-opus-4-6-20260205, claude-sonnet-4-6-20260205, claude-opus-4-5-20251101, claude-sonnet-4-5-20250929, claude-haiku-4-5-20251001, claude-opus-4-20250514, claude-sonnet-4-20250514, gemini-3.1-pro-preview, gemini-3-flash-preview, gemini-2.5-pro, deepseek-chat, deepseek-reasoner, gpt-5-chat-latest, gpt-5.1-chat-latest, gpt-5.2-chat-latest, gpt-5.3-chat-latest "gpt-4o-2024-08-06"
Tasks allow you to do some processing before and/or after a call. They can be used to retry a call, send a webhook or send a text message. You can also set conditions to execute the task based on the call count or disposition status.
Show child attributes
Show child attributes
The minimum amount of time, in seconds, that must elapse before a lead can be recalled in a campaign using Call Now feature.
If provided in the Call Now request, that value takes precedence over the campaign's call_now_threshold_recall_time.
When provided, Call Now will return a 400 status code if the lead was last called within this time frame.
If omitted, the lead can be recalled immediately.
Allows you to add additional context to the Agent during the ongoing conversation.
You can provide a template string with placeholders for the custom fields.
For example, you can provide template:
User purchased {{product_id}}
Then, during the Conversation you can hit the Call Context API to replace the placeholders with actual values and provide it to the Agent.
"customer has purchased their order."
Advanced setting to override the Eqho default system prompt. In most cases, you should not need to use this.
Show child attributes
Show child attributes
null
Show child attributes
Show child attributes
Deprecated legacy AMD toggle for old carriers.
New voice engines use per-agent amd settings instead.
Do not remove this field from clients yet; it remains in responses for backwards compatibility.
Deprecated campaign-level answering machine detection settings. Use per-agent amd settings instead. Existing old engines may still read this field.
Show child attributes
Show child attributes
Allows you to add variables to the campaign that can be used by Agents during the conversation.
It is a dictionary where the key is the Mention display_name and the value is the value you want to use.
You first need to create a Mention with the tag campaign and the display name you want to use.
{ "postal_code": "1234" }
The mode in which the inbound precall tasks will be executed.
If set to prolonged_ringing, the precall tasks will be executed while the phone is ringing.
This is ideal for short tasks, as the maximum time to execute the precall tasks is 10 seconds. It's also the default mode.
If set to caller_on_hold, Eqho will answer the call and play hold music to the caller while the precall tasks are executed.
Once the tasks are executed, the Agent will pick up the call. The maximum time to execute the precall tasks is 5 minutes.
The outbound precall tasks will always be executed before the call is made.
prolonged_ringing Show child attributes
Show child attributes
Percent of inbound SIP-proxy calls routed to voice engine v3.
0 <= x <= 100Response
Successful Response
CREATED, ACTIVE, INACTIVE, PAUSED, PROCESSED Optional mapping of agent_id to snapshot_id or 'latest'. Keys must be agent IDs present in the campaign's agents array. Values are either ObjectId strings referencing agent snapshots, or 'latest' to auto-resolve the newest snapshot.
Show child attributes
Show child attributes
How calls are distributed among agents in a campaign.
round_robin, custom_percentage, random Settings for the distribution strategy. Required for custom_percentage distribution strategy.
Show child attributes
Show child attributes
Per-medium agent pools and distribution; mediums without an entry use the default distribution.
Show child attributes
Show child attributes
Phone numbers used by this campaign. Keyed by phone number. Using dict to ensure uniqueness. Stored also in phone_numbers and inbound_phone_numbers for backwards compatibility.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
scheduled for removal
scheduled for removal
Custom prompt to classify call outcome. If not provided, a default prompt will be used.
Instructions for this campaign's call summary. Blank uses the system default.
Reasoning effort for disposition classification and its call summary. Null inherits the agent's reasoning setting, then the system default.
none, low, medium, high Model to use for disposition level 3 classification. If not provided, the default model will be used.
gpt-5.4, gpt-5.4-pro, gpt-5.2, gpt-5.2-pro, gpt-5.1, gpt-5, gpt-5-pro, gpt-5-mini, gpt-5-nano, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-4o, gpt-4o-mini, o3, o3-pro, o3-mini, o4-mini, claude-opus-4-6-20260205, claude-sonnet-4-6-20260205, claude-opus-4-5-20251101, claude-sonnet-4-5-20250929, claude-haiku-4-5-20251001, claude-opus-4-20250514, claude-sonnet-4-20250514, gemini-3.1-pro-preview, gemini-3-flash-preview, gemini-2.5-pro, deepseek-chat, deepseek-reasoner, gpt-5-chat-latest, gpt-5.1-chat-latest, gpt-5.2-chat-latest, gpt-5.3-chat-latest Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Deprecated legacy AMD toggle for old carrier paths. New voice engines use per-agent amd settings.
Deprecated campaign-level answering machine detection settings. Use per-agent amd settings instead. Existing old engines may still read this field.
Show child attributes
Show child attributes
Use organization.twilio.a2p_status instead.
rejected, verified, pending, unknown web_voice, telephony, sms, email, chatbot, api_text, chat_app, softphone Inbound PreCallTasks can be executed:
- During the ringing phase (prolonged_ringing) - the tasks will be executed while the call is ringing. Agent will pick up the call only after the tasks are completed. Max duration is 10 seconds.
prolonged_ringing The ID of the lead list associated with this campaign. Used to track and manage inbound leads.
Optional ObjectId referencing the caller ID to be used when making outbound phone calls for this campaign.
Show child attributes
Show child attributes
Percent of inbound SIP-proxy calls for this campaign routed to voice engine v3.
0 <= x <= 100Optional campaign the v3-routed fraction resolves to (via that campaign's inbound lead list). None keeps v3 calls on this campaign.
Tracks the source campaign this was cloned from.
Show child attributes
Show child attributes
Was this page helpful?