Use this endpoint to update the configuration of an existing campaign in your contact center.
This legacy information is part of v1, v2, or v3, which will be supported only until March 31, 2027. To avoid disruption, migrate your integration to v4 before that date. For endpoint mappings, Bearer token authentication, and scoped API key guidance, see the Migrating to v4 article in the Developer's Guide.
Below is an updated Update campaign description article that matches the structure and table style you used for Get campaign description, including:
- Element and Sub element table format for the request body
- Element and Sub element table format for the 200 OK response
- Separate Redial rules and Redial rule object tables
- Corrected email wording and removed the mailto example
The Update campaign endpoint enables you to update an existing Dialer campaign configuration, including dialing parameters, Caller ID settings, local time restrictions, and redial rules.
Prerequisites
- You must have access to your contact center API key.
- The campaign must already exist in your contact center.
- Update is not allowed if the campaign status is
stoppedorcompleted.
Making requests
The Update campaign API uses a PUT request. Request and response payloads are formatted as JSON.
Note: Although this endpoint uses
PUT, the API allows you to update individual attributes. You can include only the fields you want to change.
Authentication
The Update campaign API requires the Base URL (cluster_id) and the contact center API key as a bearer token in the request header.
Endpoint
PUT /api/dialer/v1/campaigns/{campaign_id}
Path parameters
| Parameter | Description | Type | Required |
|---|---|---|---|
| campaign_id | The unique identifier of the campaign. | integer | Yes |
Request body
The following table describes the elements of the request body.
| Element | Sub element | Description | Type | Notes |
|---|---|---|---|---|
| name | The name of the campaign. | string | ||
| strategy | The campaign strategy type. | string | Possible values are: simple, predictive_ai. predictive_ai is available only if Dialer AI is enabled for contact center. | |
| dialing_order | The order in which contacts are dialed for live campaigns. | string | Possible values are: disabled, oldest_first, newest_first. Available only if the Dialing order feature is enabled for the contact center. Default is disabled. | |
| dial_level | The number of parallel attempts to dial a contact for one available agent. | integer | ||
| dial_level_override | Settings for overriding the dial level based on the number of active agents. | object | ||
| enabled | Whether the dial level override is enabled. | boolean | ||
| override_value | The dial level to use when the number of active agents drops to the threshold value. | number | float | |
| active_agents_threshold | The number of active agents at which to apply the override dial level. | integer | ||
| max_dial_time | The maximum time in seconds to spend dialing a contact. | integer | In seconds. | |
| max_wait_time | The maximum time in seconds to wait for an agent when a contact answers the call. | integer | In seconds. | |
| max_dial_attempts | The maximum number of attempts to dial a contact. | integer | ||
| voice_message | The name of an audio file that will be played as a voice message. | string | ||
| answering_machine_detection | Whether Answering Machine Detection is enabled for calls. | boolean | ||
| live | Whether or not the campaign type is live. | boolean | ||
| survey_enabled | The ability for contact to rate a call after the call ends. | boolean | Default is false. | |
| local_time_settings | The time settings for calls. | object | Available only if Dialer contact local time is enabled for contact center. | |
| call_from | The time of day when calls to contacts can start. | string | HH:MM | |
| call_to | The time of day when calls to contacts must stop. | string | HH:MM | |
| week_days | The days of the week when calls to contacts can be made. | array of strings | Possible values are: Mon, Tue, Wed, Thu, Fri, Sat, Sun. | |
| caller_id_sets | The Caller ID sets for the campaign. | array of objects | ||
| numbers | The phone numbers assigned to the Caller ID set. | array of strings | This field is contained within each object in caller_id_sets. | |
| local_caller_id | Whether to use only Caller IDs that match the destination country or region. | boolean | ||
| redial_rules | The rules for redialing contacts based on call outcomes. | object | ||
| A redial rule definition. | object | Applies to each object within redial_rules outcome arrays. | ||
| assigned_agents | List of agent email addresses assigned to the campaign. | array of strings | Each value must be a valid email address. |
Redial rules
| Element | Sub element | Description | Type | Notes |
|---|---|---|---|---|
| redial_rules | The rules for redialing contacts based on call outcomes. | object | ||
| machine_answered | Rules applied when a machine answers. | array of objects | Each item is a Redial rule object. | |
| abandoned | Rules applied when the call is abandoned. | array of objects | Each item is a Redial rule object. | |
| no_answer | Rules applied when there is no answer. | array of objects | Each item is a Redial rule object. | |
| rejected | Rules applied when the call is rejected. | array of objects | Each item is a Redial rule object. | |
| failed | Rules applied when the call fails. | array of objects | Each item is a Redial rule object. | |
| busy | Rules applied when the line is busy. | array of objects | Each item is a Redial rule object. |
Redial rule object
| Element | Sub element | Description | Type | Notes |
|---|---|---|---|---|
| Redial rule | A rule definition used in each redial_rules outcome array. | object | ||
| units | The time units for the rule. | string | Possible values are: s, m, h. | |
| wait | The maximum time to wait before redialing. | integer | ||
| change_callerid | Whether to switch the Caller ID set when redialing. | boolean | Optional. |
Example request
{
"method": "PUT",
"url": "https://cluster1.contact_center_name.com/api/dialer/v1/campaigns/12345",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
},
"body": {
"name": "Updated Campaign Name",
"dial_level": 2,
"max_dial_time": 45,
"max_wait_time": 5,
"max_dial_attempts": 3,
"answering_machine_detection": true,
"local_time_settings": {
"call_from": "08:00",
"call_to": "20:00",
"week_days": ["Mon", "Tue", "Wed", "Thu", "Fri"]
},
"caller_id_sets": [
{ "numbers": ["100"] }
],
"local_caller_id": true,
"redial_rules": {
"no_answer": [
{ "units": "s", "wait": 600, "change_callerid": true }
]
},
"assigned_agents": ["[email protected]", "[email protected]"]
}
}Responses
200 OK
Returns the updated campaign object.
| Element | Sub-element | Description | Type | Notes |
|---|---|---|---|---|
| id | The unique identifier of the campaign. | integer | ||
| name | The name of the campaign. | string | ||
| strategy | The campaign strategy type. | string | Possible values are: simple, predictive_ai. predictive_ai is available only if Dialer AI is enabled for contact center. | |
| dialing_order | The order in which contacts are dialed for live campaigns. | string | Possible values are: disabled, oldest_first, newest_first. Available only if the Dialing order feature is enabled for the contact center. | |
| dial_level | The number of parallel attempts to dial a contact for one available agent. | integer | ||
| dial_level_override | Settings for overriding the dial level based on the number of active agents. | object | ||
| enabled | Whether the dial level override is enabled. | boolean | ||
| override_value | The dial level to use when the number of active agents drops to the threshold value. | number | float | |
| active_agents_threshold | The number of active agents at which to apply the override dial level. | integer | ||
| max_dial_time | The maximum time in seconds to spend dialing a contact. | integer | In seconds. | |
| max_wait_time | The maximum time in seconds to wait for an agent when a contact answers the call. | integer | In seconds. | |
| max_dial_attempts | The maximum number of attempts to dial a contact. | integer | ||
| voice_message | The name of an audio file that will be played as a voice message. | string | ||
| answering_machine_detection | Whether Answering Machine Detection is enabled for calls. | boolean | ||
| live | Whether or not the campaign type is live. | boolean | ||
| survey_enabled | The ability for contact to rate a call after the call ends. | boolean | ||
| local_time_settings | The time settings for calls. | object | Available only if Dialer contact local time is enabled for contact center. | |
| call_from | The time of day when calls to contacts can start. | string | HH:MM | |
| call_to | The time of day when calls to contacts must stop. | string | HH:MM | |
| week_days | The days of the week when calls to contacts can be made. | array of strings | Example values are: Mon, Tue, Wed, Thu, Fri. | |
| caller_id_sets | The Caller ID sets for the campaign. | array of objects | ||
| numbers | The phone numbers assigned to the Caller ID set. | array of strings | This field is contained within each object in caller_id_sets. | |
| local_caller_id | Whether to use only Caller IDs that match the destination country or region. | boolean | ||
| redial_rules | The rules for redialing contacts based on call outcomes. | object | ||
| A redial rule definition. | object | Applies to each object within redial_rules outcome arrays. | ||
| assigned_agents | List of agent email addresses assigned to the campaign. | array of strings |
Redial rules
| Element | Sub element | Description | Type | Notes |
|---|---|---|---|---|
| redial_rules | The rules for redialing contacts based on call outcomes. | object | ||
| machine_answered | Rules applied when a machine answers. | array of objects | Each item is a Redial rule object. | |
| abandoned | Rules applied when the call is abandoned. | array of objects | Each item is a Redial rule object. | |
| no_answer | Rules applied when there is no answer. | array of objects | Each item is a Redial rule object. | |
| rejected | Rules applied when the call is rejected. | array of objects | Each item is a Redial rule object. | |
| failed | Rules applied when the call fails. | array of objects | Each item is a Redial rule object. | |
| busy | Rules applied when the line is busy. | array of objects | Each item is a Redial rule object. |
Redial rule object
| Element | Sub element | Description | Type | Notes |
|---|---|---|---|---|
| Redial rule | A rule definition used in each redial_rules outcome array. | object | ||
| units | The time units for the rule. | string | Possible values are: s, m, h. | |
| wait | The maximum time to wait before redialing. | integer | ||
| change_callerid | Whether to switch the Caller ID set when redialing. | boolean | Optional. |
The full structure of the response may vary depending on the dialer mode or campaign type.
{
"id": 12345,
"name": "Updated Campaign Name",
"strategy": "simple",
"dialing_order": "disabled",
"dial_level": 2,
"dial_level_override": {
"enabled": true,
"override_value": 1.5,
"active_agents_threshold": 3
},
"max_dial_time": 45,
"max_wait_time": 5,
"max_dial_attempts": 3,
"voice_message": "Voice message (1)",
"answering_machine_detection": true,
"live": false,
"survey_enabled": false,
"local_time_settings": {
"call_from": "08:00",
"call_to": "20:00",
"week_days": ["Mon", "Tue", "Wed", "Thu", "Fri"]
},
"caller_id_sets": [
{ "numbers": ["100"] }
],
"local_caller_id": true,
"redial_rules": {
"no_answer": [
{ "units": "s", "wait": 600, "change_callerid": true }
]
},
"assigned_agents": ["[email protected]", "[email protected]"]
}401 Unauthorized
{ "error": "The API key specified is invalid" }403 Forbidden
{ "error": "No access" }404 Not found
{ "error": "Campaign not found" }422 Unprocessable Entity
Returned when one or more fields fail validation.
{
"errors": {
"name": ["can't be blank"]
}
}Use cases
- Renaming a campaign.
- Adjusting dial level or dial level override behavior.
- Updating redial rules and maximum dial attempts.
- Enabling Answering Machine Detection.
- Restricting call times to certain hours or weekdays.
- Updating which agents are assigned to the campaign.