The dialer numbers webhook is triggered when a numbers deactivation of a live Dialer campaign runs.
The following webhook reports the numbers that a numbers deactivation of a live Dialer campaign changes to Inactive.
Subscribe to this webhook on the Administration > Webhooks page.
| Event | Description |
|---|---|
| dialer.numbers.deactivated | A numbers deactivation of a live Dialer campaign changes campaign leads to Inactive. |
dialer.numbers.deactivated
| Property | Value |
|---|---|
| Method | POST to the webhook URL |
| Event | dialer.numbers.deactivated |
| Scope | dialer.numbers |
| Content type | application/json |
| Expected response | 200 Success |
Description
Sent while a numbers deactivation of a live campaign runs: one request per batch of at most 5,000 campaign leads, sent just before the batch is saved. A batch that fails to save is retried and reported again, with the same campaign_lead_id. There is no completion request.
Every campaign lead changed to Inactive is reported once per run (twice only after a failed save), as campaign_lead_id and number. A campaign may hold several campaign leads with the same number; such a number appears once per campaign lead, each with its own campaign_lead_id.
Delivery rules for receivers
- Requests are not ordered.
campaign_lead_idis the deduplication key, notnumber.deactivation_idgroups the requests of one run.- A number that is on a call at the moment the deactivation starts is reported, and may still end Completed by that call.
- A run that stops early simply reports fewer numbers.
secret is present when the webhook has a secret configured.
Payload fields
| Field | Type | Required | Description |
|---|---|---|---|
event | string, enum | Yes | Always dialer.numbers.deactivated |
object | string, enum | Yes | Always campaign |
timestamp | string (date-time) | Yes | |
contact_center_id | string (uuid) | Yes | |
secret | string | No | Present when the webhook has a secret configured |
data | object | Yes | |
data.campaign | object | Yes | |
data.campaign.id | integer | No | |
data.campaign.name | string | No | |
data.deactivation_id | string (uuid) | Yes | Groups the requests of one deactivation run |
data.numbers | array of objects | Yes | Campaign leads changed to Inactive in this batch |
data.numbers[].campaign_lead_id | integer | No | |
data.numbers[].number | string | No |
Example payload
POST <webhook URL>
Content-Type: application/json
{
"event": "dialer.numbers.deactivated",
"object": "campaign",
"timestamp": "2026-10-07T08:00:00Z",
"contact_center_id": "018e4c76-6a52-732e-ac52-91c89f1b96cb",
"data": {
"campaign": {
"id": 42,
"name": "Spring leads"
},
"deactivation_id": "0b9d7f8e-3c1a-4f2b-9e6d-5a4c3b2a1f00",
"numbers": [
{ "campaign_lead_id": 1001, "number": "15550000001" },
{ "campaign_lead_id": 1002, "number": "15550000001" }
]
}
}JSON Schema
{
"type": "object",
"required": ["event", "object", "timestamp", "contact_center_id", "data"],
"properties": {
"event": { "type": "string", "enum": ["dialer.numbers.deactivated"] },
"object": { "type": "string", "enum": ["campaign"] },
"timestamp": { "type": "string", "format": "date-time" },
"contact_center_id": { "type": "string", "format": "uuid" },
"secret": { "type": "string", "description": "Present when the webhook has a secret configured" },
"data": {
"type": "object",
"required": ["campaign", "deactivation_id", "numbers"],
"properties": {
"campaign": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" }
}
},
"deactivation_id": { "type": "string", "format": "uuid", "description": "Groups the requests of one deactivation run" },
"numbers": {
"type": "array",
"description": "Campaign leads changed to Inactive in this batch",
"items": {
"type": "object",
"properties": {
"campaign_lead_id": { "type": "integer" },
"number": { "type": "string" }
}
}
}
}
}
}
}