openapi: 3.2.0
info:
title: Webex Campaign Manager API
version: 1.0.0
description: 'Operations tagged Campaign Manager across 2 of this provider''s published API definitions: webex-campaign-manager-api-openapi.yml,
webex-contact-center-openapi.json. Each path carries the servers of the definition it was published in.'
x-provenance:
method: harvested
authored_by: Cisco Webex
harvested_by: API Evangelist
harvested_on: '2026-08-19'
first_party: true
note: Published by Cisco. Retrieved unmodified except for this x-provenance block.
provider_published: true
derived_view: Per-tag view of webex-contact-center-openapi.json, the provider's source document. Operations and schemas
are the provider's, unmodified; only the partition is ours.
derived_from: webex-contact-center-openapi.json
operation_coverage: 4/4
x-evidence:
- type: source
url: https://github.com/webex/webex-openapi-specs/blob/main/public-spec/webex-contact-center.json
- type: raw
url: https://raw.githubusercontent.com/webex/webex-openapi-specs/main/public-spec/webex-contact-center.json
tags:
- name: Campaign Manager
paths:
/v1/dialer/campaign:
post:
tags:
- Campaign Manager
summary: Start Campaign Request
description: 'A start campaign API allows businesses to programmatically start outbound campaigns using their own software
applications. This type of API typically allows businesses to set up the parameters for a campaign, such as the list
of phone numbers to call, the message or script to deliver, and the time of day or day of the week to call. Requires
''cjp.config_write'' scope and one of the following roles: ''cjp.admin'',''id_full_admin'',''atlas-portal.partner.salesadmin'',''atlas-portal.partner.provision_admin''
for authorization.'
operationId: startCampaignRoute
parameters: []
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/StartCampaignRequest'
responses:
'202':
description: The campaign was started for processing.
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignListResponse'
'400':
description: Incorrect fields in request
'401':
description: Invalid or absent Authorization header
'403':
description: Invalid OAuth 2.0 Bearer Token
'500':
description: Internal Server Error
'503':
description: Service Unavailable
/v1/dialer/campaign/{campaignId}:
put:
tags:
- Campaign Manager
summary: Update Campaign Request
description: 'By using an update campaign API, businesses can automate the process of modifying and managing outbound
campaigns, and integrate campaign updates into their existing workflows or applications. This can help to improve
efficiency and reduce errors, as well as allow for greater flexibility and control over outbound campaigns. Requires
''cjp.config_write'' scope and one of the following roles: ''cjp.admin'',''id_full_admin'',''atlas-portal.partner.salesadmin'',''atlas-portal.partner.provision_admin''
for authorization.'
operationId: updateCampaignRoute
parameters:
- name: campaignId
in: path
description: The unique request id of the campaign that needs to be updated
required: true
schema:
type: string
example: Campaign1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateCampaignRequest'
responses:
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignListResponse'
description: The campaign was updated successfully
'400':
description: Incorrect fields in request
'401':
description: Invalid or absent Authorization header
'403':
description: Invalid OAuth 2.0 Bearer Token
'500':
description: Internal Server Error
'503':
description: Service Unavailable
delete:
tags:
- Campaign Manager
summary: Stop Campaign Request
description: 'The stop campaign API enables businesses to automate the process of managing outbound campaigns and integrate
campaign deletion into their existing workflows or applications. Requires ''cjp.config_write'' scope and one of the
following roles: ''cjp.admin'',''id_full_admin'',''atlas-portal.partner.salesadmin'',''atlas-portal.partner.provision_admin''
for authorization.'
operationId: stopCampaignRoute
parameters:
- name: campaignId
in: path
description: The unique request id of the campaign that needs to be stopped
required: true
schema:
type: string
example: Campaign1
responses:
'204':
description: The campaign was stopped.
'400':
description: Incorrect fields in request
'401':
description: Invalid or absent Authorization header
'403':
description: Invalid OAuth 2.0 Bearer Token
'500':
description: Internal Server Error
'503':
description: Service Unavailable
/v1/organization/{orgId}/getValidCampaignTimes:
get:
tags:
- Campaign Manager
summary: Get Valid Campaign Times
description: 'Gets valid campaign times for a campaign and agent. This request is accepted for asynchronous processing.
Requires ''cjp:user'',''cjp.config_write'' scope and one of the following roles: ''cjp.admin'',''id_full_admin'',''atlas-portal.partner.salesadmin'',''atlas-portal.partner.provision_admin''
for authorization.'
operationId: getValidCampaignTimesRoute
parameters:
- name: orgId
in: path
description: The organization ID for which valid campaign times are being requested.
required: true
schema:
type: string
format: uuid
example: 123e4567-e89b-12d3-a456-426614174000
- name: campaignId
in: query
description: The campaign ID for which valid campaign times are being requested.
required: true
schema:
type: string
example: SalesCampaign_Prog
- name: agentId
in: query
description: The agent ID for whom valid campaign times are being requested.
required: true
schema:
type: string
format: uuid
example: 123e4567-e89b-12d3-a456-426614174001
- name: trackingId
in: query
description: Optional tracking identifier for request tracing.
required: false
schema:
type: string
format: uuid
example: 123e4567-e89b-12d3-a456-426614174002
responses:
'200':
description: The valid campaign times request was accepted for processing.
'400':
description: Bad Request
'401':
description: Unauthorized, Token is Invalid
'403':
description: Forbidden Request
'500':
description: Internal Server Error
'503':
description: Service Unavailable
components:
schemas:
MetaSubInfo:
properties:
orgId:
description: Organization ID used for this operation.
example: 97cdbf45-ebe2-4687-8341-44d5c7abf101
format: uuid
type: string
type: object
CampaignURLResponse:
properties:
location:
description: Returns the url for performing subsequent campaign updates or campaign stop
example: https://api.wxcc-<dc>.cisco.com/v1/dialer/campaign/<campaignId>
format: url
type: string
required:
- location
type: object
CallProgressAnalysisParamsRequest:
type: object
description: (Optional) Call Progressive Params details. This is used for Progressive 1:N Dialer.
properties:
cpaEnabled:
type: boolean
description: (Optional) Determines if CPA should execute the campaign, default is false.
example: true
amdEnabled:
type: boolean
description: (Optional) Determines if CPA should enable answering machine detection algorithm. cpaEnabled must be
true when amdEnabled is set to true, default is false.
example: true
minSilencePeriod:
type: integer
description: (Optional) The minimum silence period (in ms) is required to classify a call as voice detected. The
range is from 100 to 1000, default is 608.
example: 608
analysisPeriod:
type: integer
description: (Optional) The number of ms spent analyzing the call. The range is 1000 to 10000, default is 1000.
example: 1000
minimumValidSpeech:
type: integer
description: (Optional) The minimum number of ms of voice required to classify a call as voice detected. The range
is from 50 to 500, default is 112.
example: 112
maxTimeAnalysis:
type: integer
description: (Optional) The maximum number of ms allowed for analysis before identifying a problem as dead air.
The range is from 1000 to 10000, default is 3000.
example: 3000
maxTermToneAnalysis:
type: integer
description: (Optional) The maximum number of ms the dialer analyzes an answering machine voice message looking
for a termination tone. The range is 1000 to 60000, default is 30000.
example: 30000
terminatingToneDetect:
type: boolean
description: (Optional) Determines if CPA should wait for the terminating tone of a voicemail before concluding.
amdEnabled must be true when terminatingToneDetect is set to true, default is false.
example: true
StartCampaignRequest:
required:
- id
- vendorVersion
- campaignType
- dialingRate
- entryPointId
- dialingListFetchURL
- outdialANI
- recordCount
type: object
properties:
id:
type: string
description: The id represents the unique id with which the Campaign Request will be started, maximum length 64
characters.
example: SalesCampaign_Prog
vendorVersion:
type: string
description: Vendor specific information, maximum length 32 characters.
example: myCampaignManager
campaignType:
type: string
description: 'Type of campaign and campaignType should be one of "progressive", "campaign", "predictive", "progressive_ivr",
"predictive_ivr" , "preview_standard", "preview_direct" '
example: Progressive
campaignName:
type: string
description: (Optional) Used if different than id, maximum length 64 characters.
example: campaign1
authToken:
type: string
description: (Not in use) The token needed by the dialer for querying records.
example: Bearer <AuthToken>
dialingRate:
type: number
format: float
description: Number of contacts to be dialed out per available Agent. For Progressive 1:1 Dialer, it will support
for only 1 contact and for Progressive 1:N Dialer it can support upto 10 contacts to be dialed out per available
Agent
example: 1
entryPointId:
type: string
description: Webex Contact Center outdial entry point, maximum length 36 characters.
example: 510d198d-7aa7-4b75-a5ff-e61759f4f313
dialingListFetchURL:
type: string
description: URL the dialer will use to fetch the list of contacts to dial for the campaign from campaign manager,
maximum length 1024 characters.
example: campaignMgr/v1/<campaignId>/dialinglist/
outdialANI:
type: string
description: The ANI (E164) that will be presented to the customer. These must be restricted to the configured
outdial Eps in Webex Contact Center, maximum length 50 characters.
example: '9784330011'
recordCount:
type: integer
description: Value to indicate the recordCount the Campaign Manager expects the dialer to be able to request, the
maximum is 400. If the value is greater than 400 it will be set to the maximum when the request is processed.
example: 50
noAnswerRingLimit:
type: integer
description: (Optional) Number of seconds before a dialed call from the dialer is considered not answered, The range
is from 16 to 80, default is 32. This field is not applicable for Direct preview campaigns.
example: 32
maxDialingRate:
type: number
format: float
description: Caps the maximum dialing rate per agent at this value. The range is from 1.0 to 10.0 , default is 1.0.
example: 10
abandonRatePercentage:
type: number
format: float
description: The percentage of calls that are allowed to be abandoned. The range is from 1.0 to 100.0 with a granularity
of 0.1. The Default is 3.0
example: 3
predictiveCorrectionPace:
type: integer
description: A count of the number of live voice connections that must occur before the dialer adjusts. Increasing
this number results in less frequent adjustments based on a larger sample size. The range is from 10 to 5000 ,
default is 70.
example: 70
predictiveGain:
type: number
format: float
description: The size of the adjustment to lines per agent each time an adjustment is made. Increasing this number
results in larger per-agent adjustments. The range is 0.1 to 3.0 , default is 1.0.
example: 2
reservationPercentage:
type: integer
description: (Not in use) The percentage of agents to reserve within the queue associated with the campaign. The
range is from 0 to 100 , default is 100
example: 50
callProgressAnalysisParams:
$ref: '#/components/schemas/CallProgressAnalysisParamsRequest'
ivrPorts:
type: integer
description: The number of IVR ports to use for this campaign. IVR ports are in use when calling a customer until
the call is either ended or transferred to an agent. One IVR port can be considered equivalent to an agent in
an agent based campaign.The range is from 1 to 1000.
example: 10
previewOfferTimeout:
type: integer
description: (Required if previewOfferTimeoutAutoAction is provided, optional otherwise) The number of seconds dialer
waits for an agent to act on a preview campaign record, before performing the provided previewOfferTimeoutAutoAction.
The range is from 0 to 7200(2 hours) for ACCEPT auto-action and 10 to 7200(2 hours) for other auto-actions. The
default is 600(10 minutes).
example: 300
previewOfferTimeoutAutoAction:
type: string
description: (Required if previewOfferTimeout is provided, optional otherwise) The automatic action to be performed
after the previewOfferTimeout duration has elapsed, if agent takes no action on the preview campaign record offered.
Should be one of "ACCEPT", "SKIP", "REMOVE". The default is "SKIP".
example: ACCEPT
previewActionsDisabled:
type: array
items:
type: string
description: (Optional) The list of preview actions to be disabled for the agent when a preview campaign record
is offered. Can be empty if no action should be disabled, otherwise should be one of "SKIP", "REMOVE" or both.
The default is an empty list
example: '["SKIP", "REMOVE"]'
CampaignListResponse:
properties:
data:
items:
$ref: '#/components/schemas/CampaignURLResponse'
type: string
meta:
$ref: '#/components/schemas/MetaSubInfo'
required:
- data
- meta
type: object
UpdateCampaignRequest:
required:
- dialingRate
- dialingListFetchURL
- outdialANI
type: object
properties:
dialingRate:
type: number
format: float
description: Number of contacts to be dialed out per available Agent. For Progressive 1:1 Dialer, it will support
for only 1 contact and for Progressive 1:N Dialer it can support upto 10 contacts to be dialed out per available
Agent
example: 1
campaignName:
type: string
description: (Optional) Used if different than id, maximum length 64 characters.
example: campaign1
authToken:
type: string
description: (Not in use) The token needed by the dialer for querying records.
example: Bearer <AuthToken>
dialingListFetchURL:
type: string
description: URL the dialer will use to fetch the list of contacts to dial for the campaign from campaign manager,
maximum length 1024 characters.
example: campaignMgr/v1/<campaignId>/dialinglist/
outdialANI:
type: string
description: The ANI (E164) that will be presented to the customer. These must be restricted to the configured
outdial Eps in Webex Contact Center, maximum length 50 characters.
example: '9784330011'
noAnswerRingLimit:
type: integer
description: (Optional) Number of seconds before a dialed call from the dialer is considered not answered. The range
is from 16 to 80, default is 32. This field is not applicable for Direct preview campaigns.
example: 32
maxDialingRate:
type: number
format: float
description: Caps the maximum dialing rate per agent at this value. The range is from 1.0 to 10.0, default is 1.0.
example: 10
reservationPercentage:
type: integer
description: (Not in use) The percentage of agents to reserve within the queue associated with the campaign. The
range is from 0 to 100 , default is 100.
example: 50
previewOfferTimeout:
type: integer
description: (Required only if previewOfferTimeoutAutoAction is provided) The number of seconds dialer waits for
an agent to act on a preview campaign record, before performing the provided previewOfferTimeoutAutoAction. The
range is from 0 to 7200 seconds(2 hours) for ACCEPT auto-action, and from 10 to 7200 seconds(2 hours) for other
auto-actions. The default value is 600 seconds(10 minutes).
example: 300
previewOfferTimeoutAutoAction:
type: string
description: (Required only if previewOfferTimeout is provided) The automatic action to be performed after the previewOfferTimeout
duration has elapsed, if agent takes no action on the preview campaign record offered. The action can be "ACCEPT",
"SKIP" or "REMOVE". The default action is "SKIP".
example: ACCEPT
previewActionsDisabled:
type: array
items:
type: string
description: (Optional) The list of preview actions to be disabled for the agent when a preview campaign record
is offered. The list can be empty if no action should be disabled, otherwise it can be either "SKIP" or "REMOVE"
or both. The default is an empty list
example: '["SKIP", "REMOVE"]'
ShiftTime:
type: object
required:
- start
- end
properties:
start:
type: string
pattern: ^([0-1][0-9]|2[0-3]):[0-5][0-9]$
description: The start time of the shift in 24-hour format (HH:MM). Must be earlier than the end time.
example: 09:00
end:
type: string
pattern: ^([0-1][0-9]|2[0-3]):[0-5][0-9]$
description: The end time of the shift in 24-hour format (HH:MM). Must be later than the start time.
example: '17:00'
ValidCampaignTimes:
type: object
description: (Optional) Defines the valid operating hours for the campaign based on a weekly schedule and optional date-specific
overrides. The campaign will only be active during the specified time windows.
required:
- timeZone
- weeklySchedule
properties:
timeZone:
type: string
description: The IANA timezone name (e.g., 'America/New_York') that defines the timezone for all shift times in
the schedule. This timezone is used to interpret the start and end times in the weekly schedule and date overrides.
example: America/New_York
weeklySchedule:
$ref: '#/components/schemas/WeeklyShiftSchedule'
description: The recurring weekly schedule that defines when the campaign should be active. Each day of the week
can have multiple shift time ranges.
dateOverrides:
type: array
items:
$ref: '#/components/schemas/DateOverride'
description: Optional list of date-specific schedule overrides that take precedence over the weekly schedule for
particular dates (e.g., holidays, special events).
example:
timeZone: America/New_York
weeklySchedule:
monday:
- start: 09:00
end: '13:00'
- start: '14:00'
end: '18:00'
tuesday:
- start: 09:00
end: '17:00'
wednesday:
- start: '10:00'
end: '14:00'
thursday:
- start: 09:00
end: '13:00'
- start: '14:00'
end: '18:00'
friday:
- start: 09:00
end: '12:00'
saturday:
- start: '10:00'
end: '15:00'
sunday: []
dateOverrides:
- date: '2025-08-15'
shiftTimes:
- start: '11:00'
end: '16:00'
StartCampaignRequest_2:
required:
- id
- vendorVersion
- campaignType
- dialingRate
- entryPointId
- dialingListFetchURL
- outdialANI
- recordCount
type: object
properties:
id:
type: string
description: The id represents the unique id with which the Campaign Request will be started, maximum length 64
characters.
example: SalesCampaign_Prog
vendorVersion:
type: string
description: Vendor specific information, maximum length 32 characters.
example: myCampaignManager
campaignType:
type: string
description: 'Type of campaign and campaignType should be one of "progressive", "campaign", "predictive", "progressive_ivr",
"predictive_ivr" , "preview_standard", "preview_direct" '
example: Progressive
campaignName:
type: string
description: (Optional) Used if different than id, maximum length 64 characters.
example: campaign1
authToken:
type: string
description: (Not in use) The token needed by the dialer for querying records.
example: Bearer <AuthToken>
dialingRate:
type: number
format: float
description: Number of contacts to be dialed out per available Agent. For Progressive 1:1 Dialer, it will support
for only 1 contact and for Progressive 1:N Dialer it can support upto 10 contacts to be dialed out per available
Agent
example: 1
entryPointId:
type: string
description: Webex Contact Center outdial entry point, maximum length 36 characters.
example: 510d198d-7aa7-4b75-a5ff-e61759f4f313
dialingListFetchURL:
type: string
description: URL the dialer will use to fetch the list of contacts to dial for the campaign from campaign manager,
maximum length 1024 characters.
example: campaignMgr/v1/<campaignId>/dialinglist/
outdialANI:
type: string
description: The ANI (E164) that will be presented to the customer. These must be restricted to the configured
outdial Eps in Webex Contact Center, maximum length 50 characters.
example: '9784330011'
recordCount:
type: integer
description: Value to indicate the recordCount the Campaign Manager expects the dialer to be able to request, the
maximum is 400. If the value is greater than 400 it will be set to the maximum when the request is processed.
example: 50
noAnswerRingLimit:
type: integer
description: (Optional) Number of seconds before a dialed call from the dialer is considered not answered, The range
is from 16 to 80, default is 32. This field is not applicable for Direct preview campaigns.
example: 32
maxDialingRate:
type: number
format: float
description: Caps the maximum dialing rate per agent at this value. The range is from 1.0 to 10.0 , default is 1.0.
example: 10
abandonRatePercentage:
type: number
format: float
description: The percentage of calls that are allowed to be abandoned. The range is from 1.0 to 100.0 with a granularity
of 0.1. The Default is 3.0
example: 3
predictiveCorrectionPace:
type: integer
description: A count of the number of live voice connections that must occur before the dialer adjusts. Increasing
this number results in less frequent adjustments based on a larger sample size. The range is from 10 to 5000 ,
default is 70.
example: 70
predictiveGain:
type: number
format: float
description: The size of the adjustment to lines per agent each time an adjustment is made. Increasing this number
results in larger per-agent adjustments. The range is 0.1 to 3.0 , default is 1.0.
example: 2
reservationPercentage:
type: integer
description: (Not in use) The percentage of agents to reserve within the queue associated with the campaign. The
range is from 0 to 100 , default is 100
example: 50
callProgressAnalysisParams:
$ref: '#/components/schemas/CallProgressAnalysisParamsRequest'
ivrPorts:
type: integer
description: The number of IVR ports to use for this campaign. IVR ports are in use when calling a customer until
the call is either ended or transferred to an agent. One IVR port can be considered equivalent to an agent in
an agent based campaign.The range is from 1 to 1000.
example: 10
previewOfferTimeout:
type: integer
description: (Required if previewOfferTimeoutAutoAction is provided, optional otherwise) The number of seconds dialer
waits for an agent to act on a preview campaign record, before performing the provided previewOfferTimeoutAutoAction.
The range is from 0 to 7200(2 hours) for ACCEPT auto-action and 10 to 7200(2 hours) for other auto-actions. The
default is 600(10 minutes).
example: 300
previewOfferTimeoutAutoAction:
type: string
description: (Required if previewOfferTimeout is provided, optional otherwise) The automatic action to be performed
after the previewOfferTimeout duration has elapsed, if agent takes no action on the preview campaign record offered.
Should be one of "ACCEPT", "SKIP", "REMOVE". The default is "SKIP".
example: ACCEPT
previewActionsDisabled:
type: array
items:
type: string
description: (Optional) The list of preview actions to be disabled for the agent when a preview campaign record
is offered. Can be empty if no action should be disabled, otherwise should be one of "SKIP", "REMOVE" or both.
The default is an empty list
example: '["SKIP", "REMOVE"]'
validCampaignTimes:
$ref: '#/components/schemas/ValidCampaignTimes'
WeeklyShiftSchedule:
type: object
required:
- monday
- tuesday
- wednesday
- thursday
- friday
- saturday
- sunday
properties:
monday:
type: array
items:
$ref: '#/components/schemas/ShiftTime'
description: List of shift times for Monday. Can be empty if no shifts are scheduled.
tuesday:
type: array
items:
$ref: '#/components/schemas/ShiftTime'
description: List of shift times for Tuesday. Can be empty if no shifts are scheduled.
wednesday:
type: array
items:
$ref: '#/components/schemas/ShiftTime'
description: List of shift times for Wednesday. Can be empty if no shifts are scheduled.
thursday:
type: array
items:
$ref: '#/components/schemas/ShiftTime'
description: List of shift times for Thursday. Can be empty if no shifts are scheduled.
friday:
type: array
items:
$ref: '#/components/schemas/ShiftTime'
description: List of shift times for Friday. Can be empty if no shifts are scheduled.
saturday:
type: array
items:
$ref: '#/components/schemas/ShiftTime'
description: List of shift times for Saturday. Can be empty if no shifts are scheduled.
sunday:
type: array
items:
$ref: '#/components/schemas/ShiftTime'
description: List of shift times for Sunday. Can be empty if no shifts are scheduled.
UpdateCampaignRequest_2:
required:
- dialingRate
- dialingListFetchURL
- outdialANI
type: object
properties:
dialingRate:
type: number
format: float
description: Number of contacts to be dialed out per available Agent. For Progressive 1:1 Dialer, it will support
for only 1 contact and for Progressive 1:N Dialer it can support upto 10 contacts to be dialed out per available
Agent
example: 1
campaignName:
type: string
description: (Optional) Used if different than id, maximum length 64 characters.
example: campaign1
authToken:
type: string
description: (Not in use) The token needed by the dialer for querying records.
example: Bearer <AuthToken>
dialingListFetchURL:
type: string
description: URL the dialer will use to fetch the list of contacts to dial for the campaign from campaign manager,
maximum length 1024 characters.
example: campaignMgr/v1/<campaignId>/dialinglist/
outdialANI:
type: string
description: The ANI (E164) that will be presented to the customer. These must be restricted to the configured
outdial Eps in Webex Contact Center, maximum length 50 characters.
example: '9784330011'
noAnswerRingLimit:
type: integer
description: (Optional) Number of seconds before a dialed call from the dialer is considered not answered. The range
is from 16 to 80, default is 32. This field is not applicable for Direct preview campaigns.
example: 32
maxDialingRate:
type: number
format: float
description: Caps the maximum dialing rate per agent at this value. The range is from 1.0 to 10.0, default is 1.0.
example: 10
reservationPercentage:
type: integer
description: (Not in use) The percentage of agents to reserve within the queue associated with the campaign. The
range is fr
# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/webex/refs/heads/main/openapi/webex-campaign-manager-api-openapi.yml