addedInput schema / properties / requestBody / properties / bot_id
Added value: +{
+ "description": "Agent to run the campaign. Defaults to the agent attached\nto `phone_number_id`; required when the number has none.\n",
+ "type": "number"
+}
addedInput schema / properties / requestBody / properties / call_conditions
Added value: +{
+ "description": "Dial only the contacts that match every condition; the rest\nare kept as `Skipped`. See Filtering in the guide below.\n",
+ "items": {
+ "properties": {
+ "column": {
+ "description": "Key on the contact row to test.",
+ "type": "string"
+ },
+ "operator": {
+ "default": "equals",
+ "description": "`contains` is case-insensitive. `greater_than` and\n`less_than` compare numerically, and a row whose value\nis not a number fails the condition rather than\nerroring.\n",
+ "enum": [
+ "equals",
+ "not_equals",
+ "contains",
+ "greater_than",
+ "less_than"
+ ],
+ "type": "string"
+ },
+ "value": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "column",
+ "operator",
+ "value"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
changedInput schema / properties / requestBody / properties / contact_list / description
Previous value: -"Array of contact objects. Each row needs `phone_number`.\nAny other key you add on the row (e.g. `customer_name`,\n`account_id`, `priority`) is passed to the agent as a\ncontext variable for that specific call, so the agent\ncan reference it during the conversation.\n\nRequired for static campaigns. Optional when `is_dynamic`\nis `true` (you can omit it and add contacts later via the\nwebhook).\n"New value: +"Who to call. Each row needs `phone_number`; any other key\nreaches the agent as context for that one call.\n"
changedInput schema / properties / requestBody / properties / is_dynamic / description
Previous value: -"Set to `true` to create a dynamic campaign that accepts\ncontacts in real time via the Add contact to dynamic\ncampaign webhook. When `true`, `contact_list` is optional\nand may be omitted to start the campaign empty.\n"New value: +"A dynamic campaign stays alive accepting contacts via the\nadd-contact webhooks, and `contact_list` becomes optional.\n"
changedInput schema / properties / requestBody / properties / phone_number_id / description
Previous value: -"Your phone number id to use for making calls."New value: +"The number this campaign calls from. With a `rotation`, the\nrotation numbers dial instead and this one is the standby.\n"
changedInput schema / properties / requestBody / properties / retry_config / properties / retry_limit / default
Previous value: -0New value: +1
changedInput schema / properties / requestBody / properties / retry_config / properties / retry_limit / description
Previous value: -"Maximum number of retry attempts (0–5)."New value: +"Retry attempts, 1 to 10. To disable retries omit it and\nleave `auto_retry` false; never send `0`.\n"
changedInput schema / properties / requestBody / properties / retry_config / properties / retry_limit / maximum
Previous value: -5New value: +10
changedInput schema / properties / requestBody / properties / retry_config / properties / retry_limit / minimum
Previous value: -0New value: +1
addedInput schema / properties / requestBody / properties / rotation
Added value: +{
+ "description": "Rotate the campaign across several of your numbers, so no\nsingle number burns out. See Rotation in the guide below.\n",
+ "properties": {
+ "calls_per_number": {
+ "default": 50,
+ "description": "Calls before moving on. Used by `fixed_count` and `both`.",
+ "type": "number"
+ },
+ "fallback": {
+ "default": "pause",
+ "description": "When every number is unhealthy: `pause` the campaign,\nor `continue_best` with the healthiest one.\n",
+ "enum": [
+ "pause",
+ "continue_best"
+ ],
+ "type": "string"
+ },
+ "health_threshold": {
+ "default": 30,
+ "description": "Health score below which a number is rotated away from.\nUsed by `cpr_threshold` and `both`.\n",
+ "type": "number"
+ },
+ "numbers": {
+ "description": "The numbers to rotate across; each must be yours and\nlisted once.\n",
+ "items": {
+ "properties": {
+ "phone_number_id": {
+ "description": "One of your numbers, from List phone numbers.",
+ "type": "number"
+ },
+ "sequence": {
+ "default": 10,
+ "description": "Rotation order. Lowest dials first.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "phone_number_id"
+ ],
+ "type": "object"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "strategy": {
+ "default": "fixed_count",
+ "description": "When to move to the next number: every\n`calls_per_number` calls, on low health score, both, or\nnever.\n",
+ "enum": [
+ "fixed_count",
+ "cpr_threshold",
+ "both",
+ "none"
+ ],
+ "type": "string"
+ }
+ },
+ "required": [
+ "numbers"
+ ],
+ "type": "object"
+}
addedInput schema / properties / requestBody / properties / save_as_draft
Added value: +{
+ "default": false,
+ "description": "Store the campaign without dialing; start it later with the\nstart endpoint. See Drafts in the guide below.\n",
+ "type": "boolean"
+}