Update campaign description

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 stopped or completed.

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

ParameterDescriptionTypeRequired
campaign_idThe unique identifier of the campaign.integerYes

Request body

The following table describes the elements of the request body.

ElementSub elementDescriptionTypeNotes
nameThe name of the campaign.string
strategyThe campaign strategy type.stringPossible values are: simple, predictive_ai. predictive_ai is available only if Dialer AI is enabled for contact center.
dialing_orderThe order in which contacts are dialed for live campaigns.stringPossible values are: disabled, oldest_first, newest_first. Available only if the Dialing order feature is enabled for the contact center. Default is disabled.
dial_levelThe number of parallel attempts to dial a contact for one available agent.integer
dial_level_overrideSettings for overriding the dial level based on the number of active agents.object
enabledWhether the dial level override is enabled.boolean
override_valueThe dial level to use when the number of active agents drops to the threshold value.numberfloat
active_agents_thresholdThe number of active agents at which to apply the override dial level.integer
max_dial_timeThe maximum time in seconds to spend dialing a contact.integerIn seconds.
max_wait_timeThe maximum time in seconds to wait for an agent when a contact answers the call.integerIn seconds.
max_dial_attemptsThe maximum number of attempts to dial a contact.integer
voice_messageThe name of an audio file that will be played as a voice message.string
answering_machine_detectionWhether Answering Machine Detection is enabled for calls.boolean
liveWhether or not the campaign type is live.boolean
survey_enabledThe ability for contact to rate a call after the call ends.booleanDefault is false.
local_time_settingsThe time settings for calls.objectAvailable only if Dialer contact local time is enabled for contact center.
call_fromThe time of day when calls to contacts can start.stringHH:MM
call_toThe time of day when calls to contacts must stop.stringHH:MM
week_daysThe days of the week when calls to contacts can be made.array of stringsPossible values are: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
caller_id_setsThe Caller ID sets for the campaign.array of objects
numbersThe phone numbers assigned to the Caller ID set.array of stringsThis field is contained within each object in caller_id_sets.
local_caller_idWhether to use only Caller IDs that match the destination country or region.boolean
redial_rulesThe rules for redialing contacts based on call outcomes.object
A redial rule definition.objectApplies to each object within redial_rules outcome arrays.
assigned_agentsList of agent email addresses assigned to the campaign.array of stringsEach value must be a valid email address.

Redial rules

ElementSub elementDescriptionTypeNotes
redial_rulesThe rules for redialing contacts based on call outcomes.object
machine_answeredRules applied when a machine answers.array of objectsEach item is a Redial rule object.
abandonedRules applied when the call is abandoned.array of objectsEach item is a Redial rule object.
no_answerRules applied when there is no answer.array of objectsEach item is a Redial rule object.
rejectedRules applied when the call is rejected.array of objectsEach item is a Redial rule object.
failedRules applied when the call fails.array of objectsEach item is a Redial rule object.
busyRules applied when the line is busy.array of objectsEach item is a Redial rule object.

Redial rule object

ElementSub elementDescriptionTypeNotes
Redial ruleA rule definition used in each redial_rules outcome array.object
unitsThe time units for the rule.stringPossible values are: s, m, h.
waitThe maximum time to wait before redialing.integer
change_calleridWhether to switch the Caller ID set when redialing.booleanOptional.

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.

ElementSub-elementDescriptionTypeNotes
idThe unique identifier of the campaign.integer
nameThe name of the campaign.string
strategyThe campaign strategy type.stringPossible values are: simple, predictive_ai. predictive_ai is available only if Dialer AI is enabled for contact center.
dialing_orderThe order in which contacts are dialed for live campaigns.stringPossible values are: disabled, oldest_first, newest_first. Available only if the Dialing order feature is enabled for the contact center.
dial_levelThe number of parallel attempts to dial a contact for one available agent.integer
dial_level_overrideSettings for overriding the dial level based on the number of active agents.object
enabledWhether the dial level override is enabled.boolean
override_valueThe dial level to use when the number of active agents drops to the threshold value.numberfloat
active_agents_thresholdThe number of active agents at which to apply the override dial level.integer
max_dial_timeThe maximum time in seconds to spend dialing a contact.integerIn seconds.
max_wait_timeThe maximum time in seconds to wait for an agent when a contact answers the call.integerIn seconds.
max_dial_attemptsThe maximum number of attempts to dial a contact.integer
voice_messageThe name of an audio file that will be played as a voice message.string
answering_machine_detectionWhether Answering Machine Detection is enabled for calls.boolean
liveWhether or not the campaign type is live.boolean
survey_enabledThe ability for contact to rate a call after the call ends.boolean
local_time_settingsThe time settings for calls.objectAvailable only if Dialer contact local time is enabled for contact center.
call_fromThe time of day when calls to contacts can start.stringHH:MM
call_toThe time of day when calls to contacts must stop.stringHH:MM
week_daysThe days of the week when calls to contacts can be made.array of stringsExample values are: Mon, Tue, Wed, Thu, Fri.
caller_id_setsThe Caller ID sets for the campaign.array of objects
numbersThe phone numbers assigned to the Caller ID set.array of stringsThis field is contained within each object in caller_id_sets.
local_caller_idWhether to use only Caller IDs that match the destination country or region.boolean
redial_rulesThe rules for redialing contacts based on call outcomes.object
A redial rule definition.objectApplies to each object within redial_rules outcome arrays.
assigned_agentsList of agent email addresses assigned to the campaign.array of strings

Redial rules

ElementSub elementDescriptionTypeNotes
redial_rulesThe rules for redialing contacts based on call outcomes.object
machine_answeredRules applied when a machine answers.array of objectsEach item is a Redial rule object.
abandonedRules applied when the call is abandoned.array of objectsEach item is a Redial rule object.
no_answerRules applied when there is no answer.array of objectsEach item is a Redial rule object.
rejectedRules applied when the call is rejected.array of objectsEach item is a Redial rule object.
failedRules applied when the call fails.array of objectsEach item is a Redial rule object.
busyRules applied when the line is busy.array of objectsEach item is a Redial rule object.

Redial rule object

ElementSub elementDescriptionTypeNotes
Redial ruleA rule definition used in each redial_rules outcome array.object
unitsThe time units for the rule.stringPossible values are: s, m, h.
waitThe maximum time to wait before redialing.integer
change_calleridWhether to switch the Caller ID set when redialing.booleanOptional.

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.