openapi: 3.2.0 info: title: Webex Contact Center Campaign Group API version: 1.0.0 description: The Webex Contact Center APIs allow developers to deeply integrate, configure, and manage cloud-based contact center solutions. These APIs cover agent lifecycle management, queue and routing configuration, customer journey tracking, and access to real-time and historical analytics. Use cases include embedding agent controls in custom UIs, automating workforce management, integrating with CRM and ticketing systems, and building custom reporting dashboards. The APIs empower organizations to deliver personalized, efficient customer experiences and optimize contact center operations. 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 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 Group description: Operations for retrieving campaigns associated with a campaign group paths: /v3/campaign-management/campaign-groups/{campaignGroupName}/campaigns: get: tags: - Campaign Group summary: List Campaigns by Campaign Group operationId: getCampaignsByCampaignGroup description: 'Retrieves the list of campaigns that belong to the specified campaign group. Results are paginated and can optionally be filtered by campaign status. **Note:** The `campaignStatus` filter is case-insensitive. Allowed values are `Draft`, `Running`, `Pending`, `Paused`, `Completed`, `Ended`. Unknown values will result in a 400 response.' parameters: - name: campaignGroupName in: path description: "The name of the campaign group whose campaigns are to be retrieved. Case-insensitive matching.\n\n **Allowed characters:** - `A-Z`, `a-z`, `0-9`, `_` (underscore), space \n**Allowed Length** `1..64`" required: true schema: type: string minLength: 1 maxLength: 64 pattern: ^[A-Za-z0-9_ ]{1,64}$ example: Campaign Group Name_123 - name: page in: query description: The page number of the result set to retrieve (1-based). required: false schema: type: integer minimum: 1 default: 1 example: 1 - name: pageSize in: query description: The number of campaigns to return per page. Must be between 1 and 100. required: false schema: type: integer minimum: 1 maximum: 100 default: 50 example: 20 - name: campaignStatus in: query description: 'Optional filter for campaign status. Case-insensitive. Allowed values: `Draft`, `Running`, `Pending`, `Paused`, `Completed`, `Ended`.' required: false schema: type: string enum: - Draft - Running - Pending - Paused - Completed - Ended example: Draft responses: '200': description: Campaigns successfully retrieved for the specified campaign group. content: application/json: schema: $ref: '#/components/schemas/GetCampaignListResponse' example: outcome: Success statusCode: 0 campaigns: - campaignId: CCV_1780403367475 campaignName: Auto_Loan_Collection Campaigns campaignGroupName: Debt_Collection Campaigns channel: Voice campaignType: Basic campaignDialingMode: StandardPreview status: Running createdTime: '2026-06-02T07:59:27Z' lastUpdatedTime: '2026-06-02T07:57:58Z' startDate: '2026-06-01' endDate: '2026-12-31' fieldMapping: Auto_Loans_Field_Mapping timezone: UTC - 06:00 / USA / Central Time / Chicago, Dallas, Memphis, Nashville scheduleType: Advanced scheduleInfo: - name: Monday day: '2' slots: - startTime: 08:00 endTime: '12:00' - startTime: '13:00' endTime: '17:00' - startTime: '18:00' endTime: '20:00' - name: Tuesday day: '3' slots: - startTime: 08:00 endTime: '13:00' - startTime: '14:00' endTime: '20:00' - name: Wednesday day: '4' slots: - startTime: 08:00 endTime: '20:00' - name: Thursday day: '5' slots: - startTime: 08:00 endTime: '20:00' - name: Friday day: '6' slots: - startTime: 08:00 endTime: '20:00' - name: Saturday day: '7' slots: - startTime: 08:00 endTime: '14:00' safeCallingWindow: - scwStartTime: 08:00 scwEndTime: '20:00' contactAttemptsStrategy: maxAttempts: - interval: CLE maxCount: '40' - interval: 1D maxCount: '4' contactModesPriority: - mode: Home priority: 1 maxCount: null - mode: Office priority: 2 maxCount: null sequentialDialing: enabled: 1 noOfCycles: 5 cycleInterval: days: 0 hours: 0 minutes: 30 wrapUpCodesSet: Auto_Loans_WrapUpCodes_Set telephonyOutcomeSet: Auto_Loans_TelephonyOutcomes_Set contactFlowPriority: priorityBasedOn: Contact Attribute attributes: - Outstanding_Balance orderBy: Descending campaignCreatedBy: John Smith controlHubChannelEntryPointID: a62231af-866b-404c-bc74-b8db98b76e6c outdialANI: '+1512345678' dncLists: - Auto_Loans_DNC - Debt_Collections_DNC purposeTags: - Debt_Collection - AutoLoanCollection pAndLTag: Auto_Loans cpaEnabled: 'Yes' numberOfSFTPContactLists: 0 numberOfAPIContactLists: 10 numberOfManualFileContactLists: 2 pagination: page: 1 pageSize: 10 totalCount: 50 totalPages: 5 '400': description: 'Bad Request: The request was invalid (e.g., invalid `page`, `pageSize`, or `campaignStatus`).' content: application/json: schema: $ref: '#/components/schemas/BadRequestError' '401': description: 'Unauthorized: Authentication credentials were missing or incorrect.' content: application/json: schema: $ref: '#/components/schemas/UnauthorizedError' '403': description: 'Forbidden: The request is understood, but it has been refused or access is not allowed. The feature may not be enabled for this organization or the user lacks required permissions.' content: application/json: schema: $ref: '#/components/schemas/ForbiddenError' '404': description: 'Not Found: The specified campaign group does not exist.' content: application/json: schema: $ref: '#/components/schemas/NotFoundError' '429': description: 'Too Many Requests: Too many requests have been sent in a given amount of time and the request has been rate limited. A Retry-After header should be present that specifies how many seconds you need to wait before a successful request can be made.' headers: Retry-After: schema: type: integer description: Number of seconds to wait before retrying content: application/json: schema: $ref: '#/components/schemas/TooManyRequestsError' '500': description: 'Internal Server Error: Something went wrong on the server. If the issue persists, feel free to contact the [Webex Developer Support team](/explore/support).' content: application/json: schema: $ref: '#/components/schemas/InternalServerError' '502': description: 'Bad Gateway: The server received an invalid response from an upstream server while processing the request. Try again later.' content: application/json: schema: $ref: '#/components/schemas/BadGatewayError' '503': description: 'Service Unavailable: Server is overloaded with requests. Try again later.' content: application/json: schema: $ref: '#/components/schemas/ServiceUnavailableError' '504': description: 'Gateway Timeout: An upstream server failed to respond on time. If your query uses max parameter, please try to reduce it.' content: application/json: schema: $ref: '#/components/schemas/GatewayTimeoutError' components: schemas: GetCampaignListResponse: type: object description: Response payload for retrieving campaigns within a campaign group, including pagination metadata. required: - outcome - statusCode - campaigns - pagination example: outcome: Success statusCode: 0 campaigns: - campaignId: CCV_1780403367475 campaignName: Auto_Loan_Collection Campaigns campaignGroupName: Debt_Collection Campaigns channel: Voice campaignType: Basic campaignDialingMode: StandardPreview status: Running createdTime: '2026-06-02T07:59:27Z' lastUpdatedTime: '2026-06-02T07:57:58Z' startDate: '2026-06-01' endDate: '2026-12-31' campaignCreatedBy: John Smith controlHubChannelEntryPointID: a62231af-866b-404c-bc74-b8db98b76e6c outdialANI: '+1512345678' cpaEnabled: 'Yes' numberOfSFTPContactLists: 0 numberOfAPIContactLists: 10 numberOfManualFileContactLists: 2 pagination: page: 1 pageSize: 10 totalCount: 50 totalPages: 5 properties: outcome: type: string description: High-level outcome of the request. example: Success statusCode: type: integer description: Application-level status code. `0` indicates success. example: 0 campaigns: type: array description: List of campaigns belonging to the campaign group for the requested page. items: $ref: '#/components/schemas/CampaignBasicInfo' pagination: $ref: '#/components/schemas/PaginationInfo' BadRequestError: type: object required: - code - message properties: code: type: integer description: Application error code for the bad request. example: 1001 message: type: string description: A detailed error message explaining what went wrong with the request. example: Invalid pageSize. Allowed range is 1 to 100. trackingId: type: string description: A unique identifier for this error that can be used for debugging purposes. example: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f594b example: code: 1001 message: Invalid pageSize. Allowed range is 1 to 100. trackingId: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f594b PaginationInfo: type: object description: Pagination metadata for a paged response. required: - page - pageSize - totalCount - totalPages properties: page: type: integer description: Current page number (1-based). example: 1 pageSize: type: integer description: Number of items returned per page. example: 20 totalCount: type: integer description: Total number of campaigns matching the query. example: 14 totalPages: type: integer description: Total number of pages available for the query. example: 1 ServiceUnavailableError: type: object required: - code - message properties: code: type: integer enum: - 503 description: HTTP status code for Service Unavailable. example: 503 message: type: string description: A detailed error message explaining the service unavailability. example: Service is temporarily unavailable. Please try again later. trackingId: type: string description: A unique identifier for this error that can be used for debugging purposes. example: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f598 example: code: 503 message: Service is temporarily unavailable. Please try again later. trackingId: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f598 MaxAttemptRule: type: object properties: interval: type: string description: Interval identifier (e.g., `CLE` for Campaign List Expiry, `1D` for one day). example: 1D maxCount: type: string description: Maximum number of attempts allowed in the interval. example: '4' UnauthorizedError: type: object required: - code - message properties: code: type: integer enum: - 401 description: HTTP status code for Unauthorized. example: 401 message: type: string description: A detailed error message explaining the authentication failure. example: Invalid or expired access token. trackingId: type: string description: A unique identifier for this error that can be used for debugging purposes. example: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f591 example: code: 401 message: Invalid or expired access token. trackingId: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f591 SafeCallingWindow: type: object properties: scwStartTime: type: string description: Start time of the safe-calling window in HH:mm (24-hour) format. example: 08:00 scwEndTime: type: string description: End time of the safe-calling window in HH:mm (24-hour) format. example: '20:00' ContactAttributePriority: type: object description: Contact-attribute-based priority. Contacts are ordered by the values of the named attributes. properties: priorityBasedOn: type: string description: Discriminator value indicating attribute-based priority. enum: - Contact Attribute example: Contact Attribute attributes: type: array description: Names of the contact attributes used for ordering. items: type: string example: - Outstanding_Balance orderBy: type: string description: Sort order applied to the attribute values. enum: - Ascending - Descending example: Descending ForbiddenError: type: object required: - code - message properties: code: type: integer enum: - 403 description: HTTP status code for Forbidden. example: 403 message: type: string description: A detailed error message explaining the authorization failure. example: Feature is not enabled for this organization. trackingId: type: string description: A unique identifier for this error that can be used for debugging purposes. example: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f592 example: code: 403 message: Feature is not enabled for this organization. trackingId: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f592 InternalServerError: type: object required: - code - message properties: code: type: integer description: Application error code for the internal server error. example: 1006 message: type: string description: A detailed error message explaining the server error. example: An unexpected error occurred while processing your request. trackingId: type: string description: A unique identifier for this error that can be used for debugging purposes. Include this when contacting support. example: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f596 example: code: 1006 message: An unexpected error occurred while processing your request. trackingId: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f596 ContactModePriority: type: object properties: mode: type: string description: Display name of the contact mode (e.g., `Home`, `Office`). example: Home priority: type: integer description: Priority order for the contact mode (lower is higher priority). example: 1 maxCount: type: - integer - 'null' description: Maximum count for this contact mode. GatewayTimeoutError: type: object required: - code - message properties: code: type: integer enum: - 504 description: HTTP status code for Gateway Timeout. example: 504 message: type: string description: A detailed error message explaining the timeout. example: The server did not receive a timely response from an upstream server. trackingId: type: string description: A unique identifier for this error that can be used for debugging purposes. example: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f599 example: code: 504 message: The server did not receive a timely response from an upstream server. trackingId: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f599 NotFoundError: type: object required: - code - message properties: code: type: integer description: Application error code indicating resource not found. example: 1004 message: type: string description: A detailed error message explaining what resource was not found. example: Campaign group 'Carshield_25May2026' not found. trackingId: type: string description: A unique identifier for this error that can be used for debugging purposes. example: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f593 example: code: 1004 message: Campaign group 'Carshield_25May2026' not found. trackingId: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f593 ContactAttemptsStrategy: type: object description: Strategy that governs how many times and in what order contacts are attempted. properties: maxAttempts: type: array description: Maximum attempts for the interval. items: $ref: '#/components/schemas/MaxAttemptRule' contactModesPriority: type: array description: Ordered priority of contact modes. items: $ref: '#/components/schemas/ContactModePriority' sequentialDialing: $ref: '#/components/schemas/SequentialDialing' wrapUpCodesSet: type: string description: Name of the wrap-up codes set applied to the campaign. example: Auto_Loans_WrapUpCodes_Set telephonyOutcomeSet: type: string description: Name of the telephony outcome set applied to the campaign. example: Auto_Loans_TelephonyOutcomes_Set SequentialDialing: type: object description: Sequential dialing configuration for the campaign. properties: enabled: type: integer description: Whether sequential dialing is enabled. `1` for enabled, `0` for disabled. enum: - 0 - 1 example: 1 noOfCycles: type: integer description: Maximum number of dialing cycles. example: 5 cycleInterval: $ref: '#/components/schemas/CycleInterval' FreshVsRetryPriority: type: object description: Fresh-versus-retry priority. Splits dialing capacity between brand-new contacts and retry attempts using the configured percentages and ordering. properties: priorityBasedOn: type: string description: Discriminator value indicating fresh-versus-retry priority. enum: - FreshVsRetry example: FreshVsRetry retryPercentage: type: string description: Percentage of dialing capacity allocated to retry attempts. Combined with `freshPercentage` should equal 100. example: '45' retryPriority: type: string description: Order in which retry contacts are picked. enum: - FIFO - LIFO example: LIFO freshPercentage: type: string description: Percentage of dialing capacity allocated to fresh contacts. Combined with `retryPercentage` should equal 100. example: '55' freshPriority: type: string description: Order in which fresh contacts are picked. enum: - FIFO - LIFO example: FIFO CampaignBasicInfo: type: object description: Basic information for a campaign within a campaign group. properties: campaignId: type: string description: Unique identifier of the campaign. example: CCV_1779692613096 campaignName: type: string description: Display name of the campaign. example: Auto_Loan_Collection Campaigns campaignGroupName: type: string description: Name of the campaign group to which the campaign belongs. example: Debt_Collection Campaigns channel: type: string description: Channel through which the campaign is executed. example: CCVOICE campaignType: type: string description: Type of campaign configuration. enum: - Basic - Advanced example: Basic campaignDialingMode: type: string description: Dialing mode of the campaign. enum: - Progressive - Predictive - ProgressiveIvr - PredictiveIvr - StandardPreview - DirectPreview example: StandardPreview status: type: string description: Current status of the campaign. enum: - Draft - Running - Pending - Paused - Completed - Ended example: Running createdTime: type: string format: date-time description: Timestamp when the campaign was created (ISO 8601, UTC). example: '2026-05-25T02:33:33Z' lastUpdatedTime: type: string description: Timestamp when the campaign was last updated (ISO 8601, UTC). example: '2026-05-25T02:35:30Z' startDate: type: string description: Campaign schedule start date in `yyyy-MM-dd` format. example: '2026-06-01' endDate: type: string description: Campaign schedule end date in `yyyy-MM-dd` format. Returns `N/A` when the campaign has no configured end date. example: '2026-12-31' sourceCampaigns: type: array description: List of source campaigns in chaining from where the contacts are derived. Omitted from the response when empty. items: type: string fieldMapping: type: string description: Name of the field mapping associated with the campaign. example: Auto_Loans_Field_Mapping timezone: type: string description: Timezone configured for the campaign schedule. example: UTC - 06:00 / USA / Central Time / Chicago, Dallas, Memphis, Nashville scheduleType: type: string description: Type of schedule configured for the campaign. `Basic` uses a single daily start/end window; `Advanced` provides per-day windows with named day-of-week entries. enum: - Basic - Advanced example: Advanced scheduleInfo: type: - array - 'null' description: 'Schedule windows for the campaign. The shape of each entry depends on `scheduleType`: for `Basic`, entries are simple `startTime`/`endTime` windows; for `Advanced`, entries describe a specific day-of-week with one or more time slots.' items: oneOf: - $ref: '#/components/schemas/ScheduleSlot' - $ref: '#/components/schemas/AdvancedScheduleDay' safeCallingWindow: type: array description: Safe-calling windows for the campaign. items: $ref: '#/components/schemas/SafeCallingWindow' contactAttemptsStrategy: description: Strategy that governs how many times and in what order contacts are attempted. May be null if not configured. allOf: - $ref: '#/components/schemas/ContactAttemptsStrategy' contactFlowPriority: description: Contact flow priority applied during dialing. Either a `Contact Attribute` priority or a `FreshVsRetry` priority. allOf: - $ref: '#/components/schemas/ContactFlowPriority' example: priorityBasedOn: Contact Attribute attributes: - Outstanding_Balance orderBy: Descending campaignCreatedBy: type: string description: User or system that created the campaign. example: John Smith controlHubChannelEntryPointID: type: string format: uuid description: Control Hub Channel (a.k.a. Entry Point) associated with the campaign. example: a62231af-866b-404c-bc74-b8db98b76e6c outdialANI: type: string description: ANI used for outdial in E.164 format. example: '+1512345678' dncLists: type: array description: DNC lists applied to the campaign. items: type: string example: - Auto_Loans_DNC - Debt_Collections_DNC purposeTags: type: array description: Purpose tags applied to the campaign. items: type: string example: - Debt_Collection - AutoLoanCollection pAndLTag: type: string description: P&L tag associated with the campaign. example: Auto_Loans cpaEnabled: type: string description: Whether Call Progress Analysis (CPA) is enabled for the campaign. enum: - 'Yes' - 'No' example: 'Yes' numberOfSFTPContactLists: type: integer description: Number of SFTP-sourced contact lists associated with the campaign. example: 0 numberOfAPIContactLists: type: integer description: Number of API-sourced contact lists associated with the campaign. example: 10 numberOfManualFileContactLists: type: integer description: Number of manually uploaded file contact lists associated with the campaign. example: 2 BadGatewayError: type: object required: - code - message properties: code: type: integer enum: - 502 description: HTTP status code for Bad Gateway. example: 502 message: type: string description: A detailed error message explaining the gateway error. example: The server received an invalid response from an upstream server. trackingId: type: string description: A unique identifier for this error that can be used for debugging purposes. example: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f597 example: code: 502 message: The server received an invalid response from an upstream server. trackingId: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f597 ContactFlowPriority: type: object description: 'Defines how contacts are prioritized within the dialing flow. The shape of the object varies based on `priorityBasedOn`: `Contact Attribute` uses the `attributes` field; `FreshVsRetry` uses fresh/retry split fields.' oneOf: - $ref: '#/components/schemas/ContactAttributePriority' - $ref: '#/components/schemas/FreshVsRetryPriority' TooManyRequestsError: type: object required: - code - message properties: code: type: integer enum: - 429 description: HTTP status code for Too Many Requests. example: 429 message: type: string description: A detailed error message explaining the rate limit. example: Too many requests. Rate limit exceeded. trackingId: type: string description: A unique identifier for this error that can be used for debugging purposes. example: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f595 example: code: 429 message: Too many requests. Rate limit exceeded. trackingId: GTWY_e6763c9a-71b2-4515-ad5b-89260f7f595 AdvancedScheduleDay: type: object description: Advanced schedule entry describing one day of the week and its calling time slots. required: - name - day - slots properties: name: type: string description: Day-of-week name. enum: - Sunday - Monday - Tuesday - Wednesday - Thursday - Friday - Saturday example: Monday day: type: string description: Day-of-week index as a string. `1` = Sunday through `7` = Saturday. enum: - '1' - '2' - '3' - '4' - '5' - '6' - '7' example: '2' slots: type: array description: One or more start/end time slots active on this day. items: $ref: '#/components/schemas/ScheduleSlot' example: - startTime: 08:00 endTime: '20:00' CycleInterval: type: object description: Time between dialing cycles, expressed in days/hours/minutes. properties: days: type: integer description: Days component. example: 0 hours: type: integer description: Hours component. example: 0 minutes: type: integer description: Minutes component. example: 30 ScheduleSlot: type: object description: Basic schedule slot with a single start and end time, applied to every day the campaign runs. required: - startTime - endTime properties: startTime: type: string description: Start time of the schedule slot in HH:mm (24-hour) format. example: 02:00 endTime: type: string description: End time of the schedule slot in HH:mm (24-hour) format. example: 06:00 securitySchemes: oauth2: flows: authorizationCode: authorizationUrl: / scopes: {} tokenUrl: / type: oauth2 bearer-key: type: http description: e.g. Bearer YOUR_AUTHORIZATION_TOKEN scheme: bearer bearerFormat: JWT BEARER_TOKEN_FROM_CI: type: http in: header scheme: bearer Bearer: type: http description: e.g. Bearer YOUR_AUTHORIZATION_TOKEN scheme: bearer bearerFormat: JWT bearerAuth: type: http scheme: bearer bearerFormat: JWT description: JWT bearer token authentication. Obtain your token from the Webex Developer Portal.