Partially updates a campaign. Cannot update campaigns with status stopped or completed. Only provided fields are updated.
The Partially update campaign endpoint updates one or more settings on an existing Dialer campaign. Only the fields you include in the request body are updated, and you cannot update campaigns with status stopped or completed.
Requirements: Base URL, Authentication, Error codes
Scope: campaigns.manage
What this does
Use this endpoint to change campaign configuration without resubmitting the full campaign definition. For example, you can adjust dial level, toggle answering machine detection, update caller ID sets, or change follow up rules, while leaving all other settings unchanged.
Endpoint
PATCH /api/v4/campaigns/{campaign_id}
Path parameters
- campaign_id The unique identifier of the campaign.
Request body
This endpoint accepts a JSON object. Include only the fields you want to update.
Common fields you can update:
-
name
The name of the campaign. Must be unique within the contact center. -
strategy
Dialing strategy for the campaign.predictive_aiis only available if Dialer AI is enabled for the contact center -
dial_level
Number of simultaneous call attempts per available agent. -
dial_level_override
Dial level override configuration. -
max_dial_time
Maximum time in seconds to spend dialing a contact before hanging up. -
max_wait_time
Maximum time in seconds to wait for an available agent when a contact answers. -
max_dial_attempts
Maximum number of attempts to dial a contact. -
voice_message_id
Identifier of the voice message to play. Must reference an existing voice message in the contact center. -
amd_enabled
Whether answering machine detection is enabled for calls. -
amd_voicemail_message
Controls whetherVoisoplays a voicemail message when AMD detects an answering machine. -
live
Configuration for adding leads to the campaign while it is running. -
caller_id_sets
Sets of caller IDs used for outbound calls. -
use_local_caller_id
Whether to use only caller IDs matching the contact’s country or region. -
asr_optimization_enabled
Whether ASR (Answer Seizure Ratio) optimization is enabled. -
post_call_rating
Post call survey configuration. -
contact_local_time
Time restrictions for calling contacts based on their local time. Set tonullto clear. -
follow_up_rules
Rules for redialing contacts based on call disposition. -
follow_up_mode
Controls how the dialer prioritizes follow up attempts withinfollow_up_rules.- timer
Contacts are prioritized strictly by their configured redial delay (default). - lowest_attempts
Contacts with the fewest dial attempts are prioritized first, while still respecting redial delay timers.
- timer
amd_voicemail_message object
- enabled
Specify whether voicemail playback is enabled when AMD detects an answering machine. - voice_message_id
Identifier of the voice message to play when voicemail playback is enabled.
Note: If you include amd_voicemail_message, amd_voicemail_message.enabled is required.
Related endpoints
- Get a campaign ID: Get list of campaigns
- Get current campaign settings: Get campaign
Example request
Update dial level and enable AMD:
curl -X PATCH "https://{cluster_id}.voiso.com/api/v4/campaigns/5" \
-H "Authorization: Bearer <contact_center_api_key>" \
-H "Content-Type: application/json" \
-d '{
"dial_level": 1.5,
"amd_enabled": true
}'Update follow up rules for no_answer:
curl -X PATCH "https://{cluster_id}.voiso.com/api/v4/campaigns/5" \
-H "Authorization: Bearer <contact_center_api_key>" \
-H "Content-Type: application/json" \
-d '{
"follow_up_rules": {
"no_answer": [
{
"wait_time": 10,
"wait_time_unit": "minutes",
"switch_caller_id_set": true
}
]
}
}'Play voicemail message when an answering machine is detected:
curl -X PATCH "https://{cluster_id}.voiso.com/api/v4/campaigns/5" \
-H "Authorization: Bearer <contact_center_api_key>" \
-H "Content-Type: application/json" \
-d '{
"amd_enabled": true,
"amd_voicemail_message": {
"enabled": true,
"voice_message_id": 12
}
}'Set follow up mode:
curl -X PATCH "https://{cluster_id}.voiso.com/api/v4/campaigns/5" \
-H "Authorization: Bearer <contact_center_api_key>" \
-H "Content-Type: application/json" \
-d '{
"follow_up_mode": "lowest_attempts"
}'Response
If successful, the API returns the updated campaign:
{
"campaign": {
"id": 5,
"name": "Summer Outreach Campaign",
"dial_level": 1.5,
"amd_enabled": true,
"amd_voicemail_message": {
"enabled": true,
"voice_message": {
"type": "voice_message",
"name": "Instructions"
}
},
"follow_up_mode": "lowest_attempts"
}
}The response campaign fields come from the Campaign schema.
Notes
- Only provided fields are updated.
- You cannot update campaigns with status
stoppedorcompleted. - In requests you set
amd_voicemail_message.voice_message_id, but responses return the resolvedamd_voicemail_message.voice_messageobject.
Troubleshooting
400 Bad Request
Returned if the request is malformed (for example invalid JSON).
401 Unauthorized
Returned if the API key is missing or invalid.
403 Forbidden
Returned if the API key does not have access to Campaigns resources.
404 Not Found
Returned if the campaign ID does not exist.
422 Unprocessable Entity
Returned when validation fails (for example invalid enum values, values outside allowed ranges, or invalid object structure).
429 Too Many Requests
Returned if requests are rate limited.