openapi: 3.1.0 info: title: BPCC List Management API v3.2 version: 1.0.0 description: 'Overview Bright Pattern''s List Management API supports a wide range of functionalities previously only accessible within the Contact Center Administrator application. Version 3.2 delivers expanded list and campaign management functionality, introducing comprehensive API support for Do Not Call (DNC) lists and improved methods for accessing Calling List records. Bright Pattern''s List Management API 3.2 enables you to: Manage outbound campaigns, including their DNC list (new*) and calling list associations Update outbound campaign states, access their information, and view their results Create new lists and new formats View and update (new*) calling list properties Manage calling list and DNC list records individually or in bulk Retrieve the contents of Calling Lists not associated with campaigns (new*) Create, retrieve, update, and delete DNC lists (new*) Note: To ensure compatibility with the last API version and facilitate seamless migration, all previously available methods are retained as is. However, methods with a "DEPRECIATED" tag in their name are not recommended for usage and have new corresponding methods defined for their respective functionalities. This document describes the available REST API methods, specifies their functionality, and provides example requests and responses. Individual methods, as well as the entire List Management API 3.1 collection, can be loaded into Postman and interacted with via your unique Bright Pattern Contact Center access token. new* - added since List API 3.0' contact: name: Bright Pattern url: https://www.brightpattern.com/contact/ x-origin: - format: postman url: https://documenter.getpostman.com/view/8336025/2sB3WmV3UC version: '2.1' x-evidence: fetched: '2026-08-08' source: https://documenter.gw.postman.com/api/collections/8336025/2sB3WmV3UC?segregateAuth=true&versionTag=latest http_status: 200 method: derived-from-published-postman-collection note: Mechanically converted from the Postman collection Bright Pattern publishes as its public API reference. No operations, paths, parameters or examples were invented. servers: - url: https://{tenant_url} description: Bright Pattern is multi-tenant; the base host is the customer contact-center tenant domain. variables: tenant_url: default: example.brightpattern.com description: Your Bright Pattern Contact Center tenant hostname. tags: - name: Authentication description: 'The authentification method described in this section is the first step required to successfully use Bright Pattern''s List Management API. The clients of this API are authenticated in correspondence with the OAuth 2.0 Client Credentials Grant. Requests made via this API are authenticated via an access token. Note: Only the users with corresponding privileges can perform selected operations via this API. The complete list of privileges can be found here. To obtain the access token: Login to the Contact Center Administrator application. Navigate to the Users page. Select or create a user with privileges corresponding to the tasks you wish to perform via the List Management API. Click the Generate button to generate an API secret. Copy the generated key and note the username for the next steps. Use the Get Access Token method to obtain an access token. Set the client_id to the username and client_secret to the generated API secret key. Use the value of access_token, returned in the response, to set the Authorization: Bearer [access token] headers of each subsequent request made via the List Management API.' - name: Campaigns description: 'Bright Pattern''s List Management API provides a convenient way to perform routine campaign management tasks without the Contact Center Administrator application. The API methods described in this section let managers duplicate, update, or delete campaigns; manage link groups; control campaign state; modify specific outbound dialing settings; configure caller ids, dispositions, and dial rules; and assign or remove lists. Bright Pattern Contact Center solution defines several outbound campaign types - Outbound Voice, Blended Voice, and Outbound Messaging. Unless otherwise stated, the API methods described in this section and the following sections support all campaign types. If a method does not support Outbound Messaging (and applies only to Outbound Voice and Blended Voice), this is explicitly noted in that method’s description. Note: Performing operations on all campaigns requires the user to have the "Manage all services and campaigns" privilege, configured in the Contact Center Administrator application. Alternatively, the "Manage assigned services and campaigns" privilege must be enabled for users to manipulate only their assigned campaigns. Additional privileges required are explicitly specified in the corresponding method descriptions. The methods described below use the path variable, campaign_id, to reference the campaign, an operation is to be performed on. The unique identifier of a campaign can be found by opening that campaign in the Contact Center Administrator application, Services & Campaigns section. The id will be displayed in the ''#SERVICES_CAMPAIGNS:SERVICES_PROPERTIES:'' fragment of the URL. Alternatively, campaign_id, can be found in the response body of the Get Campaigns method (see here).' - name: Lists description: 'Bright Pattern''s List Management API streamlines the creation and deletion of lists and formats and provides a convenient way to manage list records. Note: Performing operations on lists requires the user to have the "Manage Lists" privilege, configured in the Contact Center Administrator application. Additional privileges required are explicitly specified in the corresponding method description. All of the methods described below use the path variable, list_id, to specify the list an operation is to be performed on. The unique identifier of a list can be found by opening that list in the Contact Center Administrator application, Lists section. The id will be displayed in the ''#LISTS:LISTS_PROPERTIES:'' fragment of the URL. Alternatively, list_id, can be found in the response body of the Get Lists method (see here). Methods retained from the previous version of the List management API, tagged as "DEPRECIATED", require an additional path variable, campaign_id, to reference the campaign associated with the selected list. The unique identifier of a campaign can be found by opening that campaign in the Contact Center Administrator application, Services & Campaigns section. The id will be displayed in the ''#SERVICES_CAMPAIGNS:SERVICES_PROPERTIES:'' fragment of the URL. Alternatively, campaign_id, can be found in the response body of the Get Campaigns method (see here). Note: When importing records or updating records it is important to remember that: All leading and trailing whitespaces should be deleted. For all PHONE numbers: If a number begins with “+”, the leading "+" sign will be removed. If a number contains non-numeric characters, they will be removed. At least one PHONE number is required. For the United States and Canada PHONE numbers: If a number begins with “011”, it will be kept as is. If a number begins with “1” and has eleven digits, it will be kept as is. If a number does not begin with “1” and has ten digits, “1” will be prepended. If a number begins with “1” and has ten digits, the record will not be imported, returning a format error. In any other case, the record will not be imported, returning a format error. Remove prefix and Default country code fields will be ignored. For Other countries PHONE numbers: If a number begins with prefix matching Remove prefix, the prefix will be deleted. If a number does not begin with prefix matching Remove prefix, it will be kept as is. If a number does not begin with prefix matching Default country code, Default country code will be added. For all INTEGER fields: If the value is presented as a string, it should be converted to an integer. Values presented as integers should be supported. For all fields that expect strings (ACCOUNT, AGENT_LOGIN_ID, FIRST_NAME, LAST_NAME, etc.) integer values should be converted to strings. Capitalization matters: values with different capitalizations are treated as distinct. For all DATE/TIME and DATE/TIME - SCHEDULE CALL AT fields: If a…' - name: DNC Lists description: "Bright Pattern's List Management API makes it easy to manage the contents of Do Not Call\ \ (DNC) lists with bulk delete, add, and replace actions. The API methods described in this section\ \ fully support Internal, Geographic (Postal), Geographic (Area codes), and Record Exclusion DNC list\ \ types. Geographic (State/Province) DNC List type is not supported in the current implementation.\n\ \nNote: Performing operations on DNC lists requires the user to have the \"Manage Lists\" privilege,\ \ configured in the Contact Center Administrator application.\n\nThe functionality of the API methods\ \ described in this section is built upon a DNC List Record JSON Object with a required non-empty\ \ key field and an optional comment field. Depending on the DNC list type, the object's field values\ \ vary as follows:\n\nDNC List Type\nField Values\n\nInternal\nkey (required field): Phone number\ \ \ncomment (optional field): Campaign Name\n\nGeographic (Postal)\nkey (required field): Postal\ \ Code \ncomment (optional field): Notes\n\nGeographic (Area Codes)\nkey (required field): Area code\ \ \ncomment (optional field): Notes\n\nRecord Exclusion\nkey (required field): Exclusion field \n\ comment (optional field): -\n\nNote: When importing records or updating records it is important to\ \ remember that:\n\nAll leading and trailing whitespaces should be deleted.\n\nAll integer values\ \ should be converted to strings.\n\nCapitalization matters: values with different capitalizations\ \ are treated as distinct.\n\nThe search can be performed by both the original values created in third-party\ \ systems and their transformed equivalents visible in the Administrator Application and Agent Desktop." - name: Cursor-based Pagination description: 'Cursor-based Pagination, utilized in many of the Bright Pattern''s List Management API methods is a current state-of-the-art approach to dealing with large volumes of data. In cases where API requests are expected to contain many and many rows of records, returning them all at once is not an option. Instead, it makes sense to return one subset of a predefined size, a page, at a time. This technique, called paging, is commonly used across the majority of APIs. The cursor-based part of our approach comes from the idea of using a "cursor" - something like a bookmark that points exactly to where you left off. At the core of Cursor-based pagination lies a rather basic concept of pointers. The pointer in this case is called a "cursor", and is used to reference a specific record in a database. In each request, clients pass cursor along with page_size parameter that specifies the number of records returned per page. It is important to remember that: The cursor must refer to a specific unique value in the database. If the cursor value is not provided, the first record in the database will be used by default. The number of records, specified in page_size , with corresponding field values less than the value of cursor are returned. If the number of records returned is less than page_size, it implies that there are no more records and the page returned was the last one. The record whose position is page_size + 1 is passed back to the client as the next_cursor.' - name: Link Groups description: Bright Pattern's List Management API provides the ability to manage Link Groups so several campaigns can be linked together. When processing all records of one campaign is finished, the next campaign in the group will be started automatically. Additionally, see the Link a Campaign and Unlink a Campaign methods descriptions. - name: Error Handling description: "Note: This section provides general information regarding unsuccessful execution responses.\ \ We recommend you refer to the Response Codes description provided for each method individually for\ \ more specific information about any encountered errors.\n\nBright Pattern’s List Management API\ \ utilizes standard HTTP codes to indicate successful execution and flag errors if any occur. For\ \ each error listed in this documentation, the response includes the following information:\n\nHuman-readable\ \ error name - e.g. \"bad_request\"\n\nDetailed description of what caused the error to occur - e.g.\ \ \"'parameter_name' has unsupported value 'parameter_value': integer is expected\"\n\nand has the\ \ following format:\n\n{ \n “error”: “name”, //error name\n “error_description”: “description” //detailed\ \ description of the reasons that led to this error\n}\n\nNote: We highly recommend paying close attention\ \ to the content of error_description as it offers useful information to aid debugging.\n\nPossible\ \ Errors\n\nThe table below contains the full list of HTTP errors and specifies possible underlying\ \ reasons for each of them.\n\nError\nDescription\nPossible Reasons\n\n400 Bad Request\nRequest cannot\ \ be processed due to a format error\n- Empty or missed required parameter \n- Duplicated parameter\ \ \n- Unsupported parameter \n- Wrong value format or value out of boundaries\n\n401 Unauthorized\n\ Authentification failed for some reason\n- Wrong Client ID/Secret or Grant type \n- Tenant is inactive\ \ \n- Client is disabled or locked out \n- Token is expired or has an invalid format\n\n403 Forbidden\n\ Requested operation cannot be performed due to insufficient privileges on the current user's profile\n\ - User is authenticated but doesn't have sufficient privileges\n\n404 Not Found\nSpecified resource\ \ cannot be found\n- Wrong path or key \n- Wrong or missing object ID\n\n405 Method Not Allowed\n\ Requested method cannot be performed for the specified resource\n- Wrong request type \n- HEAD request\ \ type\n\n409 Conflict\nRequest conflicts with the current state of the server\n- Duplicate or missing\ \ value \n- Issue with specified instance \n- Campaign is already in the requested state \n- List\ \ is not bound to the specified campaign\n\n415 Unsupported Media Type\nMedia format of the requested\ \ data is not supported\n- No content type in HTTP header \n- Content type is text/plain but JSON\ \ is expected" paths: /configapi/v3/oauth/token: post: operationId: getAccessToken summary: Get Access Token description: 'This method returns an access token that will be used to authenticate each subsequent request made via this API. Note: Access Tokens expire after 1 hour and require renewal. Supplementing invalid credentials in any of the parameters will return a 401 Authentification failed response. Client authentification will also fail if the selected user is locked out or disabled, or the chosen tenant is inactive. Note: Clients are authenticated using OAuth 2.0 Client Credentials Grant, therefore, thegrant_type parameter is always set to ''client_credentials''. Examples of other parameter values can be found in the Request body below.' tags: - Authentication requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: client_id: type: string client_secret: type: string scope: type: string grant_type: type: string example: client_id: 'Username ' client_secret: API secret scope: grant_type: client_credentials responses: '200': description: 200 OK content: application/json: example: access_token: 9E266F3C6189F70D10CBDCB6C7D457FB690C0BF401841F3FB29C463D9251FB1D token_type: Bearer expires_in: '3480' scope: example.com security: [] /configapi/v3/campaign/getCampaign/{campaign_id}: get: operationId: getCampaign summary: Get Campaign description: "This method returns all campaign settings. To request only specific parts of the settings\ \ (e.g., only assigned teams), use the include query parameter with comma-separated values. If\ \ include is not specified, the method behaves the same as Get Campaign 3.1 (backward compatible).\ \ Possible values for include are:\n\n\\\\*: Returns all settings\n\ngeneralSettings\n\ncallerIdSettings\n\ \noutboundGeneral\n\nteams\n\ncallerIDs\n\ndispositions\n\nlists\n\ndncLists\n\nNote: The include\ \ query parameter is not supported for Outbound Messaging campaigns.\n\nResponse Codes\n\nCode\n\ Description\n\n200\nSuccess\n\n400\nBad request (format not understood; 1 or more required fields\ \ are missing or have an unsupported value)\n\n401\nAuthentication failed (invalid token format;\ \ token is expired)\n\n403\nAuthentication succeeded but the user does not have sufficient privileges\n\ \n404\nSpecified campaign was not found; \nInvalid URL\n\n422\nInclude parameter is not supported\ \ for Outbound Messaging campaigns" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string - name: include in: query required: false schema: type: string responses: '200': description: 'Outbound Voice: no include' content: application/json: example: name: Campaign name enabled: true state: STOPPED direction: OUTBOUND_VOICE lists: - id: 635DB66C-AA54-41C9-9F0E-AC3A9B5EDB2D name: List 1.csv instanceId: DBA3A9B0-6CC4-11EE-807C-0800200C9A66 instanceName: '' enabled: true order: 1 dialingRatio: 1 sortingOrder: type: CUSTOM sortingFields: - fieldId: f1 fieldName: Priority sortOrder: ASC totalRecords: 100 - id: 92A7FE1C-3EC1-4A4E-A662-7A8E57E6CA78 name: List 2.csv instanceId: 99B6B870-6CC5-11EE-807C-0800200C9A66 instanceName: filtered enabled: false order: 1 dialingRatio: 1 sortingOrder: type: NATURAL sortingFields: [] totalRecords: 50 dncLists: - id: A5717BD2-C610-4AE9-B1B3-0DBE34CA31BD name: List 1 type: GEOGRAPHIC_AREACODE Country: US disposition: Number matches DNC - id: B494BB83-C359-4432-A720-9858A6990E06 name: List 2 type: EXCLUSION listField: accountId disposition: Number matches DNC security: - bearerAuth: [] /configapi/v3/campaign/getAll: get: operationId: getCampaigns summary: Get Campaigns description: 'This method returns a list of enabled outbound campaigns, their current states, and unique identifiers. Based on the user privileges configured, the list will contain all campaigns or only those assigned to this user (see here). An empty list will be returned if no outbound campaign is currently enabled or the user has no assigned campaigns. Note: A campaign''s unique identifier returned in the response body can be used to reference that campaign in the path variables of further API requests. Response Codes Code Description 200 Success 400 Bad request (format not understood; 1 or more required fields are missing or have an unsupported value) 401 Authentication failed (invalid token format; token is expired) 403 Authentication succeeded but the user does not have sufficient privileges 404 Invalid URL' tags: - Campaigns responses: '200': description: 200 OK content: application/json: example: - id: 85389D39-E05C-4CE7-B36D-4401BEA52E14 name: Campaign name state: STOPPED - id: 48B91DC5-A8CD-4FCA-9AF8-EC20A4ACC14B name: Campaign name 2 state: RUNNING security: - bearerAuth: [] /configapi/v3/campaign/getStatus/{campaign_id}: get: operationId: getCampaignStatus summary: Get Campaign Status description: "This method returns the current state, i.e. STOPPED or RUNNING, of an enabled or disabled\ \ campaign.\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\n400\nBad request (format\ \ not understood; 1 or more required fields are missing or have an unsupported value)\n\n401\n\ Authentication failed (invalid token format; token is expired)\n\n403\nAuthentication succeeded\ \ but the user does not have sufficient privileges\n\n404\nSpecified campaign was not found; \ \ \nInvalid URL" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string responses: '404': description: 200 OK content: application/json: example: name: Campaign name enabled: true state: STOPPED security: - bearerAuth: [] /configapi/v3/campaign/start/{campaign_id}: post: operationId: start summary: Start description: "This method starts an enabled campaign, first checking that the campaign is not disabled\ \ or already running.\n\nNote: Manipulating campaign states requires the user to have an additional\ \ \"Start campaigns and enable lists\" privilege.\n\nResponse Codes\n\nCode\nDescription\n\n200\n\ Success\n\n400\nBad request (format not understood; 1 or more required fields are missing or have\ \ an unsupported value)\n\n401\nAuthentication failed (invalid token format; token is expired)\n\ \n403\nAuthentication succeeded but the user does not have sufficient privileges\n\n404\nSpecified\ \ campaign was not found; \nInvalid URL\n\n409\nSpecified campaign is disabled or already running" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string responses: '200': description: 200 OK content: application/json: example: "{\n \"state\": “RUNNING”\n}" security: - bearerAuth: [] /configapi/v3/campaign/stop/{campaign_id}: post: operationId: stop summary: Stop description: "This method stops an enabled campaign, first checking that the campaign is not disabled\ \ or already stopped.\n\nNote: Manipulating campaign states requires the user to have an additional\ \ \"Start campaigns and enable lists\" privilege.\n\nResponse Codes\n\nCode\nDescription\n\n200\n\ Success\n\n400\nBad request (format not understood; 1 or more required fields are missing or have\ \ an unsupported value)\n\n401\nAuthentication failed (invalid token format; token is expired)\n\ \n403\nAuthentication succeeded but the user does not have sufficient privileges\n\n404\nSpecified\ \ campaign was not found; \nInvalid URL\n\n409\nSpecified campaign is disabled or already stopped" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string responses: '200': description: 200 OK content: application/json: example: "{\n \"state\": “STOPPED”\n}" security: - bearerAuth: [] /configapi/v3/campaign/bindList/{campaign_id}: post: operationId: bindList summary: Bind List description: "This method adds a list to the selected campaign.\n\nOnce added, an instance of the\ \ list associated with this particular campaign is created. The ID of such an instance is returned\ \ in the response body, together with the total number of records inside the original list.\n\n\ Note: The instance's unique identifier can be further used to unbind or update the list, get campaign\ \ results, or query a record from that list.\n\nNote: Manipulating calling lists associated with\ \ a campaign requires the user to have an additional \"Start campaigns and enable lists\" privilege.\n\ \nInput parameters\n\nName\nType\nRequired?\nPossible/Default Values\n\nlistId\nstring\nyes (can\ \ be found in the Get Campaign response)\n-\n\ninstanceName\nstring\nno\n-\n\nenabled\nboolean\n\ no\nfalse (Default); \ntrue\n\norder\ninteger, > 0\nno\n1(Default); \n2,...\n\ndialingRatio\n\ integer, > 0\nno\n1(Default); \n2,...\n\nsortingOrder\nstring\nno\nNATURAL; (Default) \nRANDOM;\ \ \nCUSTOM\n\nsortingOrder.sortingFields.fieldName\nstring\nyes, if sortingOrder.type = custom\n\ -\n\nsortingOrder.sortingFields.sortOrder\nstring\nyes, if sortingOrder.type = custom\nASC (Default);\ \ \nDESC\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\n400\nBad request (format not\ \ understood; 1 or more required fields are missing or have an unsupported value)\n\n401\nAuthentication\ \ failed (invalid token format; token is expired)\n\n403\nAuthentication succeeded but the user\ \ does not have sufficient privileges\n\n404\nSpecified campaign was not found; \nSpecifed list\ \ was not found; \nInvalid URL" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: listId: 635DB66C-AA54-41C9-9F0E-AC3A9B5EDB2D instanceName: '' enabled: true order: 1 dialingRatio: 1 sortingOrder: type: CUSTOM sortingFields: - fieldName: Expected result sortOrder: ASC responses: '200': description: 200 OK content: application/json: example: instanceId: DBA3A9B0-6CC4-11EE-807C-0800200C9A66 totalRecords: 100 security: - bearerAuth: [] /configapi/v3/campaign/updateList/{campaign_id}: patch: operationId: updateList summary: Update List description: "This method changes the properties of an instance of a list in the associated campaign.\ \ The instance is specified by its unique identifier, instanceID, returned in the response body\ \ of the Get Campaign method (see here). Additionally, this method can reset an optional parameter\ \ to its default value by passing \" \" or null to that parameter.\n\nBefore the list is updated,\ \ its binding to the specified campaign is checked. If the instance is bound to the specified\ \ campaign, the list is updated successfully.\n\nNote: Manipulating the content of calling lists\ \ associated with a campaign requires the user to have an additional \"Start campaigns and enable\ \ lists\" privilege.\n\nInput parameters\n\nName\nType\nRequired?\nPossible/Default Values\n\n\ instanceId\nstring\nyes (can be found in the Get Campaign response)\n-\n\ninstanceName\nstring\n\ no\n-\n\nenabled\nboolean\nno\nfalse (Default); \ntrue\n\norder\ninteger, > 0\nno\n1(Default);\ \ \n2,...\n\ndialingRatio\ninteger, > 0\nno\n1(Default); \n2,...\n\nsortingOrder\nstring\nno\n\ NATURAL; (Default) \nRANDOM; \nCUSTOM\n\nsortingOrder.sortingFields.fieldName\nstring\nyes,\ \ if sortingOrder.type = custom\n-\n\nsortingOrder.sortingFields.sortOrder\nstring\nyes, if sortingOrder.type\ \ = custom\nASC (Default); \nDESC\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\n\ 400\nBad request (format not understood; 1 or more required fields are missing or have an unsupported\ \ value)\n\n401\nAuthentication failed (invalid token format; token is expired)\n\n403\nAuthentication\ \ succeeded but the user does not have sufficient privileges\n\n404\nSpecified campaign was not\ \ found; \nSpecified instance was not found; \nInvalid URL\n\n409\nSpecified instance is not\ \ bound to the selected campaign" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: instanceId: DBA3A9B0-6CC4-11EE-807C-0800200C9A66 instanceName: '' enabled: true order: 1 dialingRatio: 1 sortingOrder: type: CUSTOM sortingFields: - fieldName: Expected result sortOrder: ASC responses: '200': description: 200 OK content: application/json: example: totalRecords: 50 security: - bearerAuth: [] /configapi/v3/campaign/unbindList/{campaign_id}: post: operationId: unbindList summary: Unbind List description: "This method removes the instance of a list from the associated campaign. The instance\ \ to be removed is specified by its unique identifier, instanceID, returned in the response body\ \ of the Get Campaign method (see here).\n\nNote: Bright Pattern Contact Center solution supports\ \ several voice campaign modes (see here). Depending on the mode of the associated campaign, the\ \ active call behavior will differentiate as follows:\n\nProgressive, Predictive, or Automatic\ \ (IVR) campaigns\nUpon instance deletion, all active, i.e. in a dialing state, within a script,\ \ or connected to an agent, calls are dropped\n\nPreview campaigns\nUpon instance deletion, only\ \ the calls not yet picked up by an agent are dropped. In-progress and connected calls are not\ \ affected\n\nThe results of completed calls are archived and available for downloading in the\ \ Contact Center Administrator application (see here). Interaction results for dropped calls are\ \ not saved.\n\nInput parameters\n\nName\nType\nRequired?\nPossible/Default Values\n\ninstanceId\n\ string\nyes (can be found in the Get Campaign response)\n-\n\nResponse Codes\n\nCode\nDescription\n\ \n200\nSuccess\n\n400\nBad request (format not understood; 1 or more required fields are missing\ \ or have an unsupported value)\n\n401\nAuthentication failed (invalid token format; token is\ \ expired)\n\n403\nAuthentication succeeded but the user does not have sufficient privileges\n\ \n404\nSpecified campaign was not found; \nSpecified instance was not found; \nInvalid URL\n\ \n409\nSpecified instance is not bound to the selected campaign" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: instanceId: DBA3A9B0-6CC4-11EE-807C-0800200C9A66 responses: '200': description: 200 OK security: - bearerAuth: [] /configapi/v3/campaign/getAllRecords/{campaign_id}: post: operationId: getAllRecords summary: Get All Records description: "This method returns a list of all records in an instance. The instance is specified\ \ by its unique identifier, instanceID, returned in the response body of the Get Campaign method\ \ (see here). Optionally, this method can also display request attempts made. The records are\ \ returned and sorted by the standard MongoDB _id field.\n\nNote: To accommodate the display of\ \ large numbers of list records, Bright Pattern Contact Solution utilizes Cursor-based pagination\ \ (see here). The _id field is used as the \"cursor\" to reference the last served record.\n\n\ Input parameters\n\nName\nType\nRequired?\nPossible/Default Values\n\ninstanceId\nstring\nyes\ \ (can be found in the Get Campaign response)\n-\n\nextractAttempts\nboolean\nno (if true,the\ \ method returns the list of all attempts)\nfalse (Default); \ntrue\n\nlimit\ninteger, ≤ 1000\n\ yes (Specifies the maximum number of records per page when using cursor-based pagination)\n1...1000\n\ \ncursor\nstring\nno (used for pagination)\nFirst request: null \nSubsequent request: value received\ \ in the response to the previous request\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\ \n400\nBad request (format not understood; 1 or more required fields are missing or have an unsupported\ \ value)\n\n401\nAuthentication failed (invalid token format; token is expired)\n\n403\nAuthentication\ \ succeeded but the user does not have sufficient privileges\n\n404\nSpecified campaign was not\ \ found; \nInvalid URL\n\n409\nSpecified instance is not bound to the selected campaign" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: instanceId: DBA3A9B0-6CC4-11EE-807C-0800200C9A66 extractAttempts: true limit: 1000 cursor: 590e9abd4abbf1165862d342 responses: '200': description: All content: application/json: example: next_cursor: 590e9abd4abbf1165862d342 records: - entry: firstname: Firstname4 date_time: 29-12-2023 phone: '1004' id: N4 lastname: Lastname4 status: globalInteractionID: '' lastCallDuration: 0 lastDisposition: '' totalAttempts: 0 completed: false completedTime: '' lastAgent: '' lastPhone: '' lastDate: '' attempts: [] - entry: firstname: Firstname2 date_time: 01-12-2023 phone: '1002' id: N2 lastname: Lastname2 status: globalInteractionID: F944CE77-2B21-472F-BE85-8BDE356A9500 lastCallDuration: 30 lastDisposition: Appointment approved totalAttempts: 1 completed: true completedTime: '2023-01-19T20:46:35.000' lastAgent: katie.kent lastPhone: '1003' lastDate: '2023-01-19T20:46:35.000' custom_field_1: value1 custom_field_2: value2 attempts: - call_attempted: true disposition: Appointment approved date: '2023-01-19T20:46:35.000' phone: '1003' timezone: Europe/Dublin timezoneBy: field callDuration: 30 dialingDuration: 5 callNotes: '' agent: katie.kent globalInteractionID: F944CE77-2B21-472F-BE85-8BDE356A9500 CPADuration: 2 CPAResult: Voice custom_field_1: value1 custom_field_2: value2 security: - bearerAuth: [] /configapi/v3/campaign/getCompletedRecords/{campaign_id}: post: operationId: getCompletedRecords summary: Get Completed Records description: "This method returns a list of all completed records within an instance. The instance\ \ is specified by its unique identifier, instanceID, returned in the response body of the Get\ \ Campaign method (see here). Optionally, the user can view request attempts and specify the completion\ \ time frame for which they want to display the completed records list. The records are returned\ \ and sorted by completion time (MongoDB completedTime field).\n\nNote: To accommodate the display\ \ of large numbers of list records, Bright Pattern Contact Solution utilizes Cursor-based pagination\ \ (see here). The _id and the completedTimefields are concatenated and used as the \"cursor\"\ \ to reference the last served record.\n\nNote: The input parameters defined for this method in\ \ the List Management API 3.0 differ from the previous version.\n\nInput parameters\n\nName\n\ Type\nRequired?\nPossible/Default Values\n\ninstanceId\nstring\nyes (can be found in the Get Campaign\ \ response)\n-\n\nstartTime\ntime (UTC)\nno (if specified, the method returns all records completed\ \ at or after the startTime)\n-\n\nendTime\ntime (UTC)\nno (if specified, the method returns all\ \ records completed before the endTime)\n-\n\nextractAttempts\nboolean\nno (if true,the method\ \ returns the list of all attempts)\nfalse (Default); \ntrue\n\nlimit\ninteger, ≤ 1000\nyes (Specifies\ \ the maximum number of records per page when using cursor-based pagination)\n1...1000\n\ncursor\n\ string\nno (used for pagination)\nFirst request: null \nSubsequent request: \nvalue received\ \ in the response to the previous request\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\ \n400\nBad request (format not understood; 1 or more required fields are missing or have an unsupported\ \ value)\n\n401\nAuthentication failed (invalid token format; token is expired)\n\n403\nAuthentication\ \ succeeded but the user does not have sufficient privileges\n\n404\nSpecified campaign was not\ \ found; \nInvalid URL\n\n409\nSpecified instance is not bound to the selected campaign" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: instanceId: DBA3A9B0-6CC4-11EE-807C-0800200C9A66 startTime: '2023-01-01T00:00:00.000' endTime: '2023-01-30T00:00:00.000' extractAttempts: true limit: 1000 cursor: 2023-01-10T12:13:59.001_590e9abd4abbf1165862d342 responses: '200': description: Completed content: application/json: example: "{\n \"next_cursor\": \"2023-01-15T18:13:59.111_6870e9abd4abbf1165862d22\",\n\ \ \"records\": [\n {\n \"entry\": {\n \"firstname\"\ : \"Firstname2\",\n \"date_time\": \"01-12-2023\",\n \"\ phone\": \"1002\",\n \"id\": \"N2\",\n \"lastname\": \"\ Lastname2\"\n },\n \"status\": {\n \"globalInteractionID\"\ : \"F944CE77-2B21-472F-BE85-8BDE356A9500\",\n \"lastCallDuration\": 30,\n\ \ \"lastDisposition\": \"Appointment approved\",\n \"totalAttempts\"\ : 1,\n \"completed\": true,\n \"completedTime\": \"2023-01-19T20:46:35.000\"\ ,\n \"lastAgent\": \"katie.kent\",\n \"lastPhone\": \"1002\"\ ,\n \"lastDate\": \"2023-01-19T20:46:35.000\",\n \"custom_field_1\"\ : \"value1\",\n \"custom_field_2\": \"value2\"\n },\n \ \ \"attempts\": [\n {\n \ \ \"call_attempted\": true,\n \"disposition\": \"Appointment\ \ approved\",\n \"date\": \"2023-01-19T20:46:35.000\",\n\ \ \"phone\": \"1003\",\n \ \ \"phoneTimezone\": \"Europe/Dublin\", //Dialer 2.5\n \ \ \"postalCodeTimezone\": \"\", //Dialer 2.5\n \"timezonesBy\"\ : \"field\", //Dialer 2.5\n \"callDuration\": 30,\n \ \ \"dialingDuration\": 5,\n \ \ \"callNotes\": \"\",\n \"agent\": \"katie.kent\",\n\ \ \"globalInteractionID\": \"F944CE77-2B21-472F-BE85-8BDE356A9500\"\ ,\n \"CPADuration\": 2,\n \ \ \"CPAResult\": \"Voice\",\n \"custom_field_1\": \"\ value1\",\n \"custom_field_2\": \"value2\"\n \ \ }\n ]\n }\n ]\n}" security: - bearerAuth: [] /configapi/v3/campaign/getUpdatedRecords/{campaign_id}: post: operationId: getUpdatedRecords summary: Get Updated Records description: "This method returns a list of all updated records within an instance. The instance\ \ is specified by its unique identifier, instanceID, returned in the response body of the Get\ \ Campaign method. Optionally, the user can view request attempts and specify the time frame for\ \ which they want to display the updated records list. The records are returned and sorted by\ \ the last date attempted (MongoDB lastDate field).\n\nNote: To accommodate the display of large\ \ numbers of list records, Bright Pattern Contact Solution utilizes Cursor-based pagination (see\ \ here). The _id and the lastDatefields are concatenated and used as the \"cursor\" to reference\ \ the last served record.\n\nNote: The input parameters defined for this method in the List Management\ \ API 3.0 differ from the previous version.\n\nInput parameters\n\nName\nType\nRequired?\nPossible/Default\ \ Values\n\ninstanceId\nstring\nyes (can be found in the Get Campaign response)\n-\n\nstartTime\n\ time (UTC)\nno (if specified, the method returns all records completed at or after the startTime)\n\ -\n\nendTime\ntime (UTC)\nno (if specified, the method returns all records completed before the\ \ endTime)\n-\n\nextractAttempts\nboolean\nno (if true,the method returns the list of all attempts)\n\ false (Default); \ntrue\n\nlimit\ninteger, ≤ 1000\nyes (Specifies the maximum number of records\ \ per page when using cursor-based pagination)\n1...1000\n\ncursor\nstring\nno (mn for pagination)\n\ First request: null \nSubsequent request: \nvalue received in the response to the previous request\n\ \nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\n400\nBad request (format not understood;\ \ 1 or more required fields are missing or have an unsupported value)\n\n401\nAuthentication failed\ \ (invalid token format; token is expired)\n\n403\nAuthentication succeeded but the user does\ \ not have sufficient privileges\n\n404\nSpecified campaign was not found; \nInvalid URL\n\n\ 409\nSpecified instance is not bound to the selected campaign" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: instanceId: DBA3A9B0-6CC4-11EE-807C-0800200C9A66 startTime: '2023-01-01T00:00:00.000' endTime: '2023-01-30T00:00:00.000' extractAttempts: true limit: 1000 cursor: 2023-01-10T12:13:59.001_590e9abd4abbf1165862d342 responses: '200': description: Updated content: application/json: example: "{\n \"next_cursor\": \"2023-01-15T18:13:59.111_6870e9abd4abbf1165862d22\",\n\ \ \"records\": [\n {\n \"entry\": {\n \"firstname\"\ : \"Firstname2\",\n \"date_time\": \"01-12-2023\",\n \"\ phone\": \"1002\",\n \"id\": \"N2\",\n \"lastname\": \"\ Lastname2\"\n },\n \"status\": {\n \"globalInteractionID\"\ : \"F944CE77-2B21-472F-BE85-8BDE356A9500\",\n \"lastCallDuration\": 30,\n\ \ \"lastDisposition\": \"Appointment approved\",\n \"totalAttempts\"\ : 1,\n \"completed\": true,\n \"completedTime\": \"2023-01-19T20:46:35.000\"\ ,\n \"lastAgent\": \"katie.kent\",\n \"lastPhone\": \"1002\"\ ,\n \"lastDate\": \"2023-01-19T20:46:35.000\",\n \"custom_field_1\"\ : \"value1\",\n \"custom_field_2\": \"value2\"\n },\n \ \ \"attempts\": [\n {\n \ \ \"call_attempted\": true,\n \"disposition\": \"Appointment\ \ approved\",\n \"date\": \"2023-01-19T20:46:35.000\",\n\ \ \"phone\": \"1003\",\n \ \ \"phoneTimezone\": \"Europe/Dublin\", //Dialer 2.5\n \ \ \"postalCodeTimezone\": \"\", //Dialer 2.5\n \"timezonesBy\"\ : \"field\", //Dialer 2.5 \n \"callDuration\"\ : 30,\n \"dialingDuration\": 5,\n \ \ \"callNotes\": \"\",\n \"agent\": \"katie.kent\"\ ,\n \"globalInteractionID\": \"F944CE77-2B21-472F-BE85-8BDE356A9500\"\ ,\n \"CPADuration\": 2,\n \ \ \"CPAResult\": \"Voice\",\n \"custom_field_1\": \"\ value1\",\n \"custom_field_2\": \"value2\"\n \ \ }\n ]\n }\n ]\n}" security: - bearerAuth: [] /configapi/v3/campaign/queryRecord/{campaign_id}: post: operationId: queryARecord summary: Query a Record description: "This method returns a copy of an existing record in an instance, as well as the information\ \ about the last interaction associated with this record. The instance is specified by its unique\ \ identifier, instanceID, returned in the response body of the Get Campaign method (see here).\ \ The search for the record is performed based on the defined key fields.\n\nBefore the record\ \ is queried, its existence in the specified list is checked. If the record does exist in the\ \ specified list, the record is queried successfully.\n\nNote: If a PHONE type field is defined\ \ as a key, the record value is checked for a full match with the value stored in the database\ \ or the original source (if the data was modified upon loading into the database).\n\nNote: The\ \ response body contains the List Record JSON Object, defined by two sub-objects as follows:\n\ \nentry object: contains a copy of the list entry\nfield names are retained as defined at list\ \ creation\ncustom fields are returned with the prefix 'custom_' added to the name defined in\ \ the Administrator Application\n\ntime and date field values are returned in UTC format\n\nstatusobject:\ \ contains the campaign results for this specific record\nomitted if the list is not assigned\ \ to the campaign or the campaign doesn't exist\n\nfield names are predefined\n\ncompleted field\ \ is always present, while the other fields may be absent if the record was never called or never\ \ reached an agent.\n\nInput parameters\n\nName\nType\nRequired?\nPossible/Default Values\n\n\ instanceId\nstring\nyes (can be found in the Get Campaign response)\n-\n\nfields\nlist of JSON\ \ Objects\nyes (specifies the key fields to be used for the object search; the non-key fields\ \ are ignored)\n-\n\nextractAttempts\nboolean\nno (if true,the method returns the list of all\ \ attempts)\nfalse (Default); \ntrue\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\ \n400\nBad request (format not understood; 1 or more required fields are missing or have an unsupported\ \ value)\n\n401\nAuthentication failed (invalid token format; token is expired)\n\n403\nAuthentication\ \ succeeded but the user does not have sufficient privileges\n\n404\nSpecified campaign was not\ \ found; \nSpecified record was not found; \nInvalid URL\n\n409\nSpecified instance is not bound\ \ to the selected campaign" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: instanceId: DBA3A9B0-6CC4-11EE-807C-0800200C9A66 extractAttempts: false fields: id: '1' responses: '200': description: 200 OK content: application/json: example: entry: firstname: Firstname4 date_time: 29-12-2023 phone: '1004' id: N4 lastname: Lastname4 status: globalInteractionID: '' lastCallDuration: 0 lastDisposition: '' totalAttempts: 0 completed: false completedTime: '' lastAgent: '' lastPhone: '' lastDate: '' custom_field_1: '' custom_field_2: '' security: - bearerAuth: [] /configapi/v3/campaign/deleteCampaign/{campaign_id}: delete: operationId: deleteCampaign summary: Delete Campaign description: "This method deletes the campaign and erases call results, including all archived results\ \ for the campaign.\n\nNote: This method is not supported for Outbound Messaging campaigns.\n\n\ Depending on the mode of the associated campaign, the active call behavior will differentiate\ \ as follows:\n\nProgressive, Predictive, or Automatic (IVR) campaigns: Upon instance deletion,\ \ all active, i.e. in a dialing state, within a script, or connected to an agent, calls are dropped.\n\ \nPreview campaigns: Upon instance deletion, only the calls not yet picked up by an agent are\ \ dropped. In-progress and connected calls are not affected.\n\nResponse Codes\n\nCode\nDescription\n\ \n200\nSuccess\n\n400\nBad request (format not understood; 1 or more required fields are missing\ \ or have an unsupported value)\n\n401\nAuthentication failed (invalid token format; token is\ \ expired)\n\n403\nAuthentication succeeded but the user does not have sufficient privileges\n\ \n404\nSpecified campaign was not found; \nInvalid URL\n\n422\nNot supported for Outbound Messaging\ \ campaigns" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string responses: '200': description: 200 OK security: - bearerAuth: [] /configapi/v3/campaign/unlinkCampaign/{campaign_id}: post: operationId: unlinkACampaign summary: Unlink a Campaign description: "This method removes the selected campaign from its link group. Once deleted, the group\ \ becomes re-ordered.\n\nNote: This method is not supported for Outbound Messaging campaigns.\n\ \nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\n400\nBad request (format not understood;\ \ 1 or more required fields are missing or have an unsupported value)\n\n401\nAuthentication failed\ \ (invalid token format; token is expired)\n\n403\nAuthentication succeeded but the user does\ \ not have sufficient privileges\n\n404\nSpecified link group was not found; \nSpecified campaign\ \ was not found; \nInvalid URL\n\n409\nSpecified campaign is not linked to the selected link\ \ group\n\n422\nNot supported for Outbound Messaging campaigns" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string responses: '200': description: 200 OK security: - bearerAuth: [] /configapi/v3/campaign/linkCampaign/{campaign_id}: post: operationId: linkACampaign summary: Link a Campaign description: "This method adds a campaign to the selected link group or changes its order. When\ \ adding, this will reset campaign type, teams assigned, hours, additional skills, and term to\ \ the settings of campaigns already in the group. Also call quota will be disabled. Once added,\ \ the group becomes re-ordered.\n\nNote: This method is not supported for Outbound Messaging campaigns.\n\ \nInput parameters\n\nName\nType\nRequired?\nPossible/Default Values\n\ngroupId\nstring\nyes\n\ -\n\nstartAfterCampaignId\nstring\nno\n- (will be added first, if empty)\n\nResponse Codes\n\n\ Code\nDescription\n\n200\nSuccess\n\n400\nBad request (format not understood; 1 or more required\ \ fields are missing or have an unsupported value)\n\n401\nAuthentication failed (invalid token\ \ format; token is expired)\n\n403\nAuthentication succeeded but the user does not have sufficient\ \ privileges\n\n404\nSpecified link group was not found; \nSpecifed campaign was not found; \ \ \nInvalid URL\n\n422\nNot supported for Outbound Messaging campaigns" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: groupId: 6D7C2A7E-7E7A-4D43-9F6D-AB7D6F2B1F1E startAfterCampaignId: 48B91DC5-A8CD-4FCA-9AF8-EC20A4ACC14B responses: '200': description: 200 OK security: - bearerAuth: [] /configapi/v3/campaign/updateDisposition/{campaign_id}: patch: operationId: updateDisposition summary: Update Disposition description: "This method updates the selected disposition and associated dial rule by its id (both\ \ custom and system).\n\nNote: This method is not supported for Outbound Messaging campaigns.\n\ \nSee Add Disposition format.\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\n400\n\ Bad request (format not understood; 1 or more required fields are missing or have an unsupported\ \ value)\n\n401\nAuthentication failed (invalid token format; token is expired)\n\n403\nAuthentication\ \ succeeded but the user does not have sufficient privileges\n\n404\nSpecified campaign was not\ \ found; \nSpecified disposition id was not found; \nInvalid URL\n\n409\nSpecified disposition\ \ id is not associated with the selected campaign\n\n422\nNot supported for Outbound Messaging\ \ campaigns" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: id: 0758F19D-448E-4EE3-B34F-DF5014D1156E scope: preview: false outbound: true inbound: false folder: Non-final orderNumber: 15 name: Wrong person description: The business purpose ... code: null type: CONTINUE agentCanSelect: true agentCanReschedule: true dialRule: action: WAIT doRetry: false maxRetries: null retryIntervalMin: null minWaitMin: 1440 rescheduleMin: null scenarioId: null responses: '200': description: 200 OK security: - bearerAuth: [] /configapi/v3/campaign/deleteDispositions/{campaign_id}: post: operationId: deleteDispositions summary: Delete Dispositions description: "This method deletes multiple custom dispositions from the campaign by matching the\ \ provided identifiers. The disposition IDs can be obtained using the Get Campaign method with\ \ ?include=dispositions (see here).\n\nNote: This method is not supported for Outbound Messaging\ \ campaigns.\n\nThis method catches and displays the following errors (if any were encountered\ \ during the request execution):\n\nidsNotFound - dispositions were not found or not associated\ \ with the selected campaign;\n\nisSystem - system dispositions (cannot be deleted);\n\nResponse\ \ Codes\n\nCode\nDescription\n\n200\nSuccess\n\n400\nBad request (format not understood; 1 or\ \ more required fields are missing or have an unsupported value)\n\n401\nAuthentication failed\ \ (invalid token format; token is expired)\n\n403\nAuthentication succeeded but the user does\ \ not have sufficient privileges\n\n404\nSpecified campaign was not found; \nInvalid URL\n\n\ 422\nNot supported for Outbound Messaging campaigns" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: dispositions: - 0758F19D-448E-4EE3-B34F-DF5014D1156E - A9B7ED52-CD95-48E1-BCB1-0754214309BF responses: '200': description: 200 OK content: application/json: example: removed: 1 error: idsNotFound: ids: - '111' isSystem: ids: - A9B7ED52-CD95-48E1-BCB1-0754214309BF security: - bearerAuth: [] /configapi/v3/campaign/addDisposition/{campaign_id}: post: operationId: addDisposition summary: Add Disposition description: "This method add a disposition to the campaign.\n\nNote: This method is not supported\ \ for Outbound Messaging campaigns.\n\nInput parameters\n\nName\nType\nRequired?\nPossible/Default\ \ Values\n\nscope.outbound\nboolean\nno\ntrue (Default); \nfalse\n\nscope.inbound\nboolean\n\ no\nfalse (Default); \ntrue\n\nscope.preview\nboolean\nno\nfalse (Default); \ntrue\n\nfolder\n\ string\nyes\nFolder name for grouping\n\norderNumber\ninteger\nno\nDefault: last + 1\n\nname\n\ string\nyes\nDisposition label shown to users\n\ndescription\nstring\nno\n-\n\ncode\nstring or\ \ null\nno\nExternal code used in scenarios; if provided, must be a string\n\ntype\nstring (enum)\n\ no\nSUCCESS (Default); \nFAILURE; \nCONTINUE; \nDO_NOT_CALL\n\nagentCanSelect\nboolean\nno\n\ true(Default); \nfalse\n\nagentCanReschedule\nboolean\nno\nfalse (Default); \ntrue\n\ndialRule.action\n\ string (enum) or null\nno\nDial rule action: \nWAIT(Default); \nRESCHEDULE; \nSCENARIO; \n\ STOP_NUMBER; \nSTOP_RECORD; \nSTOP_NUMBER_ALL; \nnull\n\ndialRule.doRetry\nboolean\nno\nfalse\ \ (Default); \ntrue\n\ndialRule.maxRetries\ninteger or null\nno\n[1..2147483647], \nDefault:\ \ 1\n\ndialRule.retryIntervalMin\ninteger or null\nno\n[0..10] minutes, \nDefault: 10\n\ndialRule.minWaitMin\n\ integer or null\nno\n[2..2147483647] minutes, \nDefault: 1440\n\ndialRule.rescheduleMin\ninteger\ \ or null\nno\n[2..2147483647] minutes, \nDefault: 1440\n\ndialRule.scenarioId\nstring (UUID)\ \ or null\nyes, when action=SCENARIO\nScenario to start after this disposition\n\nResponse Codes\n\ \nCode\nDescription\n\n200\nSuccess\n\n400\nBad request (format not understood; 1 or more required\ \ fields are missing or have an unsupported value)\n\n401\nAuthentication failed (invalid token\ \ format; token is expired)\n\n403\nAuthentication succeeded but the user does not have sufficient\ \ privileges\n\n404\nSpecified campaign was not found; \nInvalid URL\n\n422\nNot supported for\ \ Outbound Messaging campaigns" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: scope: preview: false outbound: true inbound: false folder: Non-final orderNumber: 15 name: Wrong person description: The business purpose ... code: null type: CONTINUE agentCanSelect: true agentCanReschedule: true dialRule: action: WAIT doRetry: false maxRetries: null retryIntervalMin: null minWaitMin: 1440 rescheduleMin: null scenarioId: null responses: '200': description: 200 OK security: - bearerAuth: [] /configapi/v3/campaign/addDispositions/{campaign_id}: post: operationId: addDispositions summary: Add Dispositions description: "This method adds multiple custom dispositions to the campaign.\n\nNote: This method\ \ is not supported for Outbound Messaging campaigns.\n\nThis method catches and displays the following\ \ errors (if any were encountered during the request execution):\n\nmissingRequired - one or more\ \ required field values were not found;\n\nformatError - format was mismatched in one or more\ \ field values (e.g. string value was defined for an integer field); one or more unsupported fields\ \ were defined in the request body;\n\nduplicateName - dispositions were not found or not associated\ \ with the selected campaign;\n\nInput parameters\n\nName\nType\nRequired?\nPossible/Default Values\n\ \ndispositions\narray of objects\nyes\nArray of disposition objects to add, see Add Disposition\ \ input parameters\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\n400\nBad request\ \ (format not understood)\n\n401\nAuthentication failed (invalid token format; token is expired)\n\ \n403\nAuthentication succeeded but the user does not have sufficient privileges\n\n404\nSpecified\ \ campaign was not found; \nInvalid URL\n\n422\nNot supported for Outbound Messaging campaigns" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: dispositions: - scope: preview: false outbound: true inbound: false folder: Final orderNumber: 0 name: Product sold description: The business purpose ... code: null type: SUCCESS agentCanSelect: true agentCanReschedule: false - scope: preview: false outbound: true inbound: false folder: Non-final orderNumber: 15 name: Wrong person description: The business purpose ... code: null type: CONTINUE agentCanSelect: true agentCanReschedule: true dialRule: action: WAIT doRetry: false maxRetries: null retryIntervalMin: null minWaitMin: 1440 rescheduleMin: null scenarioId: null responses: '200': description: 200 OK content: application/json: example: added: 0 error: duplicateName: - scope: preview: false outbound: true inbound: false folder: Non-final orderNumber: 15 name: Wrong person description: The business purpose ... code: null type: CONTINUE agentCanSelect: true agentCanReschedule: true dialRule: action: WAIT doRetry: false maxRetries: null retryIntervalMin: null minWaitMin: 1440 rescheduleMin: null scenarioId: null security: - bearerAuth: [] /configapi/v3/campaign/unassignCallerIds/{campaign_id}: post: operationId: unassignCallerIds summary: Unassign Caller IDs description: "This method removes one or more caller IDs from the campaign by matching the provided\ \ identifiers. The caller IDs can be obtained using the Get Campaign method with ?include=callerIds\ \ (see here).\n\nNote: Manipulating Caller IDs requires the user to have an additional \"Manage\ \ caller IDs within services and campaigns\" privilege.\n\nNote: This method is not supported\ \ for Outbound Messaging campaigns.\n\nThis method catches and displays the following errors (if\ \ any were encountered during the request execution):\n\nidsNotFound - one or more caller ID was\ \ not found or is not associated with the selected campaign;\n\nisDefault - One or more caller\ \ ID cannot be deleted because its set as default, and default is required for the selection method;\n\ \nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\n400\nBad request (format not understood;\ \ 1 or more required fields are missing or have an unsupported value)\n\n401\nAuthentication failed\ \ (invalid token format; token is expired)\n\n403\nAuthentication succeeded but the user does\ \ not have sufficient privileges\n\n404\nSpecified campaign was not found; \nInvalid URL\n\n\ 422\nNot supported for Outbound Messaging campaigns" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: callerIds: - 131564DC-D093-4BA2-8EBD-22269B96C702 - 22250E7D90E-C424-46AD-BA49-7773BBFAD5AD responses: '200': description: 200 OK content: application/json: example: removed: 1 error: idsNotFound: - 50E7D90E-C424-46AD-BA49-7773BBFAD5AD security: - bearerAuth: [] /configapi/v3/campaign/assignCallerIds/{campaign_id}: post: operationId: assignCallerIds summary: Assign Caller IDs description: "This method assigns one or more caller IDs to the campaign by matching the provided\ \ phone numbers.\n\nNote: Manipulating Caller IDs requires the user to have an additional \"Manage\ \ caller IDs within services and campaigns\" privilege.\n\nNote: This method is not supported\ \ for Outbound Messaging campaigns.\n\nThis method catches and displays the following errors (if\ \ any were encountered during the request execution):\n\nnumbersNotFound - numbers were not found;\n\ \nformatError - format was mismatched in one or more field values (e.g. string value was defined\ \ for an integer field); one or more unsupported fields were defined in the request body;\n\n\ Input parameters\n\nName\nType\nRequired?\nPossible/Default Values\n\ncallerIds\narray of objects\n\ yes\n-\n\ncallerIds.number\nstring\nyes\n-\n\ncallerIds.stateProvince\nstring\nno\n-\n\nResponse\ \ Codes\n\nCode\nDescription\n\n200\nSuccess\n\n400\nBad request (format not understood; 1 or\ \ more required fields are missing or have an unsupported value)\n\n401\nAuthentication failed\ \ (invalid token format; token is expired)\n\n403\nAuthentication succeeded but the user does\ \ not have sufficient privileges\n\n404\nSpecified campaign was not found; \nInvalid URL\n\n\ 422\nNot supported for Outbound Messaging campaigns" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: callerIds: - number: '111' stateProvince: null - number: '222' stateProvince: CA responses: '200': description: 200 OK content: application/json: example: added: 1 error: numbersNotFound: - '222' security: - bearerAuth: [] /configapi/v3/campaign/unassignTeams/{campaign_id}: post: operationId: unassignTeams summary: Unassign Teams description: "This method unassigns multiple teams from the campaign by matching the provided identifiers.\ \ The team ID can be found by opening that team in the Contact Center Administrator application,\ \ Teams section. The id will be displayed in the '#GROUPS:GROUP_PROPERTIES:' fragment of the URL.\n\ \nNote: Manipulating teams requires the user to have an additional \"Manage all teams\" privilege.\n\ \nNote: This method is not supported for Outbound Messaging campaigns.\n\nThis method catches\ \ and displays the following errors (if any were encountered during the request execution):\n\n\ idsNotFound - teams were not found or not associated with the selected campaign;\n\nResponse Codes\n\ \nCode\nDescription\n\n200\nSuccess\n\n400\nBad request (format not understood; 1 or more required\ \ fields are missing or have an unsupported value)\n\n401\nAuthentication failed (invalid token\ \ format; token is expired)\n\n403\nAuthentication succeeded but the user does not have sufficient\ \ privileges\n\n404\nSpecified campaign was not found; \nInvalid URL\n\n422\nNot supported for\ \ Outbound Messaging campaigns" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: teams: - BB71650B-C60A-4299-B111-84FA271E90C2 - 7DE27874-B524-4DFA-9CC3-23817096837F responses: '200': description: 200 OK content: application/json: example: removed: 1 error: idsNotFound: - 7DE27874-B524-4DFA-9CC3-23817096837F security: - bearerAuth: [] /configapi/v3/campaign/assignTeams/{campaign_id}: post: operationId: assignTeams summary: Assign Teams description: "This method assigns multiple teams to a campaign and specifies the Service skill level\ \ to be assigned to the team members. Teams are matched by the provided identifiers. The team\ \ ID can be found by opening that team in the Contact Center Administrator application, Teams\ \ section. The id will be displayed in the '#GROUPS:GROUP_PROPERTIES:' fragment of the URL.\n\n\ Note: Manipulating teams requires the user to have an additional \"Manage all teams\" privilege.\n\ \nNote: This method is not supported for Outbound Messaging campaigns.\n\nThis method catches\ \ and displays the following errors (if any were encountered during the request execution):\n\n\ idsNotFound - teams were not found;\n\nduplicateIDs - teams are already added;\n\nInput parameters\n\ \nName\nType\nRequired?\nPossible/Default Values\n\nteams\narray of strings\nyes\n-\n\nskillLevel\n\ string\nno\nDefault: 100\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\n400\nBad request\ \ (format not understood; 1 or more required fields are missing or have an unsupported value)\n\ \n401\nAuthentication failed (invalid token format; token is expired)\n\n403\nAuthentication succeeded\ \ but the user does not have sufficient privileges\n\n404\nSpecified campaign was not found; \ \ \nInvalid URL\n\n422\nNot supported for Outbound Messaging campaigns" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: teams: - BB71650B-C60A-4299-B111-84FA271E90C2 - 7DE27874-B524-4DFA-9CC3-23817096837F skillLevel: 100 responses: '200': description: 200 OK content: application/json: example: added: 1 error: idsNotFound: - 7DE27874-B524-4DFA-9CC3-23817096837F security: - bearerAuth: [] /configapi/v3/campaign/updateCallerIDSettings/{campaign_id}: patch: operationId: updateCallerIdSettings summary: Update Caller ID Settings description: "This method changes the specified properties of the selected campaign. Additionally,\ \ this method can reset an optional parameter to its default value by passing \" \" or null to\ \ that parameter.\n\nNote: Manipulating Caller ID Settings requires the user to have an additional\ \ \"Manage caller IDs within services and campaigns\" privilege.\n\nNote: This method is not supported\ \ for Outbound Messaging campaigns.\n\nInput parameters\n\nName\nType\nRequired?\nPossible/Default\ \ Values\n\ncallerIdSelectionMethod\nstring\nno\nDEFAULT(Default); \nRND_WITHIN_LIST; \nRND_WITHIN_STATE_OW_DEFAULT\ \ \nRND_WITHIN_STATE_OW_LIST \nRECORD_CALLING_NUMBER \nGEOGRAPHIC_PROXIMITY \nDMAPPING_INT_NUMBERS\n\ \ndefaultCallerId\nstring or null\nyes, if the method requires a fallback\n\nResponse Codes\n\n\ Code\nDescription\n\n200\nSuccess\n\n400\nBad request (format not understood; 1 or more required\ \ fields are missing or have an unsupported value)\n\n401\nAuthentication failed (invalid token\ \ format; token is expired)\n\n403\nAuthentication succeeded but the user does not have sufficient\ \ privileges\n\n404\nInvalid URL or defaultCallerId is not found\n\n409\ndefaultCaller Id is not\ \ associated with the campaign\n\n422\nNot supported for Outbound Messaging campaigns" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: callerIdSelectionMethod: DEFAULT defaultCallerId: '111' responses: '200': description: 200 OK security: - bearerAuth: [] /configapi/v3/campaign/updateGeneralSettings/{campaign_id}: patch: operationId: updateGeneralAndOutboundSettings summary: Update General and Outbound Settings description: "This method changes the specified properties of the selected campaign. Additionally,\ \ this method can reset an optional parameter to its default value by passing \" \" or null to\ \ that parameter.\n\nNote: This method is not supported for Outbound Messaging campaigns.\n\n\ Input parameters\n\nName\nType\nRequired?\nPossible/Default Values\n\nname\nstring\nno\n-\n\n\ enabled\nboolean\nno\nfalse (Default); \ntrue\n\noutboundGeneral.type\nstring\nno\nPREVIEW (Default);\ \ \nPROGRESSIVE; \nPREDICTIVE; \nAUTOMATIC\n\noutboundGeneral.progressive.noAnswerTimeoutSec\n\ integer\nno\n[0..2147483647], Default: 45\n\noutboundGeneral.progressive.overdialRatePcnt\ninteger\n\ no\n[100..100000], \nDefault: 100\n\noutboundGeneral.progressive.autoAdjustOverdialRate\nboolean\n\ no\nfalse; \ntrue (Default)\n\noutboundGeneral.predictive.noAnswerTimeoutSec\ninteger\nno\n[0..2147483647],\ \ Default: 45\n\noutboundGeneral.predictive.initialOverdialRatePcnt\ninteger\nno\n[100..100000],\ \ \nDefault: 100\n\noutboundGeneral.automatic.noAnswerTimeoutSec\ninteger\nno\n[0..2147483647],\ \ Default: 45\n\noutboundGeneral.automatic.maxConcurrentCalls\ninteger\nno\n[1..2147483647], \ \ \nDefault: 1\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\n400\nBad request (format\ \ not understood; 1 or more required fields are missing or have an unsupported value)\n\n401\n\ Authentication failed (invalid token format; token is expired)\n\n403\nAuthentication succeeded\ \ but the user does not have sufficient privileges\n\n404\nInvalid URL\n\n409\nAttempt to change\ \ an immutable field\n\n422\nNot supported for Outbound Messaging campaigns" tags: - Campaigns parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: name: Campaign name enabled: true outboundGeneral: type: PREVIEW progressive: noAnswerTimeoutSec: 45 overdialRatePcnt: 100 autoAdjustOverdialRate: true predictive: noAnswerTimeoutSec: 45 initialOverdialRatePcnt: 100 automatic: noAnswerTimeoutSec: 45 maxConcurrentCalls: 300 responses: '200': description: 200 OK security: - bearerAuth: [] /configapi/v3/campaign/duplicateCampaign: post: operationId: duplicateCampaign summary: Duplicate Campaign description: 'This method creates a copy of the specified campaign. Note: This method is not supported for Outbound Messaging campaigns. The new campaign is always created disabled and in the STOPPED state. Calling lists are not inherited. Disposition IDs are newly generated, while disposition names and all other settings are inherited. Settings, dialing mode, teams, roles, caller ids, and calling hours are also inherited from the original campaign. Input parameters Name Type Required? Possible/Default Values name string no Clone of Source Campaign Name sourceCampaignId string yes - Response Codes Code Description 200 Success 400 Bad request (format not understood; 1 or more required fields are missing or have an unsupported value) 401 Authentication failed (invalid token format; token is expired) 403 Authentication succeeded but the user does not have sufficient privileges 404 Invalid URL or source campaign was not found 409 Duplicate name error 422 Not supported for Outbound Messaging campaigns' tags: - Campaigns requestBody: required: true content: application/json: schema: type: object example: name: Campaign name sourceCampaignId: 31002C90-7188-11EE-A565-0800200C9A66 responses: '200': description: 200 OK content: application/json: example: id: 85389D39-E05C-4CE7-B36D-4401BEA52E14 security: - bearerAuth: [] /configapi/v3/callinglist/getAll/{list_id}/{campaign_id}: post: operationId: getAllRecordsDeprecated summary: Get All Records DEPRECATED description: "This method returns a list of records from a calling list associated with a campaign.\n\ \nRecords are referenced by indexes, assigned to each record in the list in sequential order of\ \ insertion (beginning from 0). All records with an index greater than or equal to the requested\ \ record index, fromIndex, are returned in the response.\n\nNote: The returned recordset contains\ \ JSON objects sorted by the index field. List Record JSON Object has two sub-objects, entry and\ \ status, defined as follows:\n\nentry object: contains a copy of the list entry\n\nfield names\ \ are retained as defined at list creation\n\ncustom fields are returned with the prefix 'custom_'\ \ added to the name defined in the Administrator Application\n\nNote: The value returned in the\ \ id field can be used to reference this record in further API requests.\n\nstatusobject: contains\ \ the campaign results for this specific record\n\nomitted if the list is not assigned to the\ \ campaign or the campaign doesn't exist\n\nfield names are predefined\n\ncompleted field is always\ \ present, while the other fields may be absent if the record was never called or never reached\ \ an agent.\n\nInput parameters\n\nName\nType\nRequired?\nPossible/Default Values\n\nmaxSize\n\ integer, ≤ 1000\nyes (Specifies the maximum number of records per page when using cursor-based\ \ pagination)\n1...1000\n\nfromIndex\nstring\nyes (specifies initial record index, used for pagination)\n\ -\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\n400\nBad request (format not understood;\ \ 1 or more required fields are missing or have an unsupported value)\n\n401\nAuthentication failed\ \ (invalid token format; token is expired)\n\n403\nAuthentication succeeded but the user does\ \ not have sufficient privileges\n\n404\nSpecified Campaign was not found; \nSpecified List was\ \ not found; \nInvalid URL" tags: - Lists parameters: - name: list_id in: path required: true schema: type: string - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: fromIndex: 0 maxSize: '100' responses: '200': description: 200 OK content: application/json: example: - entry: firstname: Graham phone: '16509999999' id: '1' lastname: Smith status: Gold index: 0 status: globalInteractionID: 0B767156-D012-4F63-A3E2-12ACFC2F26EA lastCallDuration: 0 lastDisposition: No disposition totalAttempts: 1 completed: false lastAgent: elizabeth lastPhone: '16509999999' lastDate: '2021-02-19T19:11:40.000' - entry: firstname: Mike phone: '16507777777' id: '2' lastname: Miller status: Platinum index: 1 status: globalInteractionID: 3F4F2ACD-1233-42E3-8092-3A9F7D9D84BC lastCallDuration: 0 lastDisposition: Try again later totalAttempts: 1 completed: false lastAgent: elizabeth lastPhone: '16507777777' lastDate: '2021-02-19T19:12:21.000' - entry: firstname: Katrina phone: '16505555555' id: '3' lastname: Johnson status: Silver index: 2 status: globalInteractionID: 9D914127-C1C4-4587-8B30-4E2A9790D184 lastCallDuration: 0 lastDisposition: Product sold totalAttempts: 1 completed: true completedTime: '2021-02-19T19:12:37.000' lastAgent: elizabeth lastPhone: '16505555555' lastDate: '2021-02-19T19:12:37.000' - entry: firstname: Jenny phone: '16502222222' id: '4' lastname: Green status: Gold index: 3 status: globalInteractionID: 35DE77AC-5A37-4907-97CA-50B09B30ECDF lastCallDuration: 0 lastDisposition: Fast busy totalAttempts: 1 completed: false lastAgent: elizabeth lastPhone: '16502222222' lastDate: '2021-02-19T19:13:08.000' security: - bearerAuth: [] /configapi/v3/callinglist/getChanged/{list_id}/{campaign_id}: post: operationId: getUpdatedRecordsDeprecated summary: Get Updated Records DEPRECATED description: "This method returns a list of records from a calling list that have had any activity\ \ within the associated campaign since the requested initial time, fromTime.\n\nNote: The returned\ \ record set contains JSON objects sorted by the index field. List Record JSON Object has two\ \ sub-objects, entry and status, defined as follows:\n\nentry object: contains a copy of the list\ \ entry\n\nfield names are retained as defined at list creation\n\ncustom fields are returned\ \ with the prefix 'custom_' added to the name defined in the Administrator Application\n\ntime\ \ and date field values are returned in UTC format\n\nstatusobject: contains the campaign results\ \ for this specific record\n\nomitted if the list is not assigned to the campaign or the campaign\ \ doesn't exist\n\nfield names are predefined\n\ncompleted field is always present, while the\ \ other fields may be absent if the record was never called or never reached an agent.\n\nInput\ \ parameters\n\nName\nType\nRequired?\nPossible/Default Values\n\nmaxSize\ninteger, ≤ 1000\nyes\ \ (Specifies the maximum number of records per page when using cursor-based pagination)\n1...1000\n\ \nfromTime\nstring\nyes (specifies initial time)\n-\n\nResponse Codes\n\nCode\nDescription\n\n\ 200\nSuccess\n\n400\nBad request (format not understood; 1 or more required fields are missing\ \ or have an unsupported value)\n\n401\nAuthentication failed (invalid token format; token is\ \ expired)\n\n403\nAuthentication succeeded but the user does not have sufficient privileges\n\ \n404\nSpecified Campaign was not found; \nSpecified List was not found; \nInvalid URL" tags: - Lists parameters: - name: list_id in: path required: true schema: type: string - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: fromTime: '2013-03-01T13:15:06.456' maxSize: '100' responses: '200': description: 200 OK content: application/json: example: - entry: firstname: Graham phone: '16509999999' id: '1' lastname: Smith status: Gold completed: false recordDisposition: '' recordDispositionCode: '' totalAttempts: 1 attempts: - call_attempted: false disposition: No disposition dispositionCode: '' date: '2021-02-19T19:11:40.000' phone: '16509999999' callDuration: 0 dialingDuration: 0 callNotes: '' agent: elizabeth globalInteractionID: 0B767156-D012-4F63-A3E2-12ACFC2F26EA CPADuration: 0 - entry: firstname: Mike phone: '16507777777' id: '2' lastname: Miller status: Platinum completed: false recordDisposition: '' recordDispositionCode: '' totalAttempts: 1 attempts: - call_attempted: false disposition: Try again later dispositionCode: '' date: '2021-02-19T19:12:21.000' phone: '16507777777' callDuration: 0 dialingDuration: 0 callNotes: '' agent: elizabeth globalInteractionID: 3F4F2ACD-1233-42E3-8092-3A9F7D9D84BC CPADuration: 0 - entry: firstname: Katrina phone: '16505555555' id: '3' lastname: Johnson status: Silver completed: true recordDisposition: Product sold recordDispositionCode: '' totalAttempts: 1 attempts: - call_attempted: false disposition: Product sold dispositionCode: '' date: '2021-02-19T19:12:37.000' phone: '16505555555' callDuration: 0 dialingDuration: 0 callNotes: '' agent: elizabeth globalInteractionID: 9D914127-C1C4-4587-8B30-4E2A9790D184 CPADuration: 0 - entry: firstname: Jenny phone: '16502222222' id: '4' lastname: Green status: Gold completed: false recordDisposition: '' recordDispositionCode: '' totalAttempts: 1 attempts: - call_attempted: false disposition: Fast busy dispositionCode: '' date: '2021-02-19T19:13:08.000' phone: '16502222222' callDuration: 0 dialingDuration: 0 callNotes: '' agent: elizabeth globalInteractionID: 35DE77AC-5A37-4907-97CA-50B09B30ECDF CPADuration: 0 security: - bearerAuth: [] /configapi/v3/callinglist/get/{list_id}/{campaign_id}: post: operationId: queryARecordDeprecated summary: Query a Record DEPRECATED description: "This method returns a copy of an existing record in a calling list of an associated\ \ campaign. The list is specified in the path variable, list_id, by its unique identifier returned\ \ in the response body of the Get Campaign method (see here). The campaign is specified in the\ \ path variable, campaign_id, by its unique identifier returned in the response body of the Get\ \ Campaigns method (see here).\n\nThe record search is performed by its unique identifier, id,\ \ returned in the response body of the Get All Records method (see here). If the list has been\ \ added to the specified campaign more than once, the method returns an array of records. An error\ \ is returned if a record with the specified id does not exist in the selected list.\n\nNote:\ \ The response body contains the List Record JSON Object, defined by two sub-objects as follows:\n\ \nentry object: contains a copy of the list entry\nfield names are retained as defined at list\ \ creation\ncustom fields are returned with the prefix 'custom_' added to the name defined in\ \ the Administrator Application\n\ntime and date field values are returned in UTC format\n\nstatusobject:\ \ contains the campaign results for this specific record\nomitted if the list is not assigned\ \ to the campaign or the campaign doesn't exist\n\nfield names are predefined\n\ncompleted field\ \ is always present, while the other fields may be absent if the record was never called or never\ \ reached an agent.\n\nNote: If a PHONE type field is defined as a key, the record value is checked\ \ for a full match with the value stored in the database or the original source (if the data was\ \ modified upon loading into the database).\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\ \n400\nBad request (format not understood; 1 or more required fields are missing or have an unsupported\ \ value)\n\n401\nAuthentication failed (invalid token format; token is expired)\n\n403\nAuthentication\ \ succeeded but the user does not have sufficient privileges\n\n404\nSpecified List was not found;\ \ \nSpecified Record was not found; \nInvalid URL" tags: - Lists parameters: - name: list_id in: path required: true schema: type: string - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: id: N4 responses: '200': description: 0 instances - 200 OK content: application/json: example: entry: firstname: Mike phone: '16505555555' id: '2' lastname: Miller status: Platinum security: - bearerAuth: [] /configapi/v3/callinglist/fetchAll/{list_id}: post: operationId: fetchAllRecords summary: Fetch All Records description: "This method returns a list of records from an existing calling list, specified in\ \ the path variable, list_id.\n\nRecords are referenced by indexes, assigned to each record in\ \ the list in sequential order of insertion (beginning from 0). All records with an index greater\ \ than or equal to the requested record index, fromIndex, are returned in the response.\n\nNote:\ \ The returned recordset contains JSON objects sorted by the index field. List Record JSON Object\ \ contains:\n\nentry object: contains a copy of the list entry\n\nfield names are retained as\ \ defined at list creation\n\nNote: This method doesn't return custom fields\n\nNote: The value\ \ returned in the id field can be used to reference this record in further API requests.\n\nInput\ \ parameters\n\nName\nType\nRequired?\nPossible/Default Values\n\nmaxSize\ninteger, ≤ 1000\nyes\ \ (Specifies the maximum number of records per page when using cursor-based pagination)\n1...1000\n\ \nfromIndex\nstring\nyes (specifies initial record index, used for pagination)\n-\n\nResponse\ \ Codes\n\nCode\nDescription\n\n200\nSuccess\n\n400\nBad request (format not understood; 1 or\ \ more required fields are missing or have an unsupported value)\n\n401\nAuthentication failed\ \ (invalid token format; token is expired)\n\n403\nAuthentication succeeded but the user does\ \ not have sufficient privileges\n\n404\nSpecified List was not found; \nInvalid URL" tags: - Lists parameters: - name: list_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: fromIndex: 0 maxSize: '100' responses: '200': description: 200 OK content: application/json: example: "[\n {\n \"entry\": {\n \"firstname\": \"Graham\",\n \"phone\": \"\ 16509999999\",\n \"id\": \"1\",\n \"lastname\": \"Smith\",\n \"status\"\ : \"Gold\"\n },\n \"index\": 0,\n },\n {\n \"entry\": {\n \"firstname\"\ : \"Mike\",\n \"phone\": \"16507777777\",\n \"id\": \"2\",\n \"lastname\"\ : \"Miller\",\n \"status\": \"Platinum\"\n },\n \"index\": 1,\n },\n {\n\ \ \"entry\": {\n \"firstname\": \"Katrina\",\n \"phone\": \"16505555555\"\ ,\n \"id\": \"3\",\n \"lastname\": \"Johnson\",\n \"status\": \"Silver\"\ \n },\n \"index\": 2,\n },\n {\n \"entry\": {\n \"firstname\": \"Jenny\"\ ,\n \"phone\": \"16502222222\",\n \"id\": \"4\",\n \"lastname\": \"Green\"\ ,\n \"status\": \"Gold\"\n },\n \"index\": 3, \n }\n }\n]" security: - bearerAuth: [] /configapi/v3/callinglist/fetch/{list_id}: post: operationId: fetchRecord summary: Fetch Record description: "This method returns a copy of one or more existing records in a calling list. The\ \ search for the records is performed based on the defined key fields.\n\nNote: Time and date\ \ field values are returned in UTC format.\n\nNote: If a PHONE type field is defined as a key,\ \ the record value is checked for a full match with the value stored in the database or the original\ \ source (if the data was modified upon loading into the database).\n\nResponse Codes\n\nCode\n\ Description\n\n200\nSuccess\n\n400\nBad request (format not understood; 1 or more required fields\ \ are missing or have an unsupported value)\n\n401\nAuthentication failed (invalid token format;\ \ token is expired)\n\n403\nAuthentication succeeded but the user does not have sufficient privileges\n\ \n404\nSpecified List was not found; \nInvalid URL" tags: - Lists parameters: - name: list_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: phone: - '16505555555' - '16505555556' responses: '200': description: 200 OK content: application/json: example: entry: firstname: Mike phone: '16505555555' id: '2' lastname: Miller status: Platinum security: - bearerAuth: [] /configapi/v3/callinglist/getAll: post: operationId: getLists summary: Get Lists description: "This method returns all Calling Lists, sorted by the standard MongoDB _id field.\n\ \nNote: To accommodate the display of large numbers of list records, Bright Pattern Contact Solution\ \ utilizes Cursor-based pagination (see here). The _id field is used as the \"cursor\" to reference\ \ the last served record.\n\nInput parameters\n\nName\nType\nRequired?\nPossible/Default Values\n\ \nlimit\ninteger, ≤ 1000\nyes (Specifies the maximum number of records per page when using cursor-based\ \ pagination)\n1...1000\n\ncursor\nstring\nno (used for pagination)\nFirst request: null \nSubsequent\ \ request: value received in the response to the previous request\n\nResponse Codes\n\nCode\n\ Description\n\n200\nSuccess\n\n400\nBad request (limit exceeded; format not understood; 1 or more\ \ required fields are missing or have an unsupported value)\n\n401\nAuthentication failed (invalid\ \ token format; token is expired)\n\n403\nAuthentication succeeded but the user does not have\ \ sufficient privileges\n\n404\nInvalid URL" tags: - Lists requestBody: required: true content: application/json: schema: type: object example: limit: 100 cursor: 590e9abd4abbf1165862d342 responses: '200': description: 200 OK content: application/json: example: next_cursor: 590e9abd4abbf1165862d342 records: - id: 635DB66C-AA54-41C9-9F0E-AC3A9B5EDB2D name: List 1.csv formatId: 31002C90-7188-11EE-A565-0800200C9A66 formatName: format 1 allowUsingDefaultTimezone: true defaultTimezone: Europe/Dublin totalRecords: 100 - id: 635DB66C-AA54-41C9-9F0E-AC3A9B5EDB2D name: List 2.csv formatId: 31002C90-7188-11EE-A565-0800200C9A66 formatName: format 1 allowUsingDefaultTimezone: false totalRecords: 100 security: - bearerAuth: [] /configapi/v3/callinglist/getList/{list_id}: get: operationId: getList summary: Get List description: "This method returns the information about a list, including its name, the format name,\ \ timezone settings, and amount of records of the specified list. Additionally, it returns the\ \ information about the associated campaign of that list, if any.\n\nResponse Codes\n\nCode\n\ Description\n\n200\nSuccess\n\n400\nBad request (wrong cursor; format not understood; 1 or more\ \ required fields are missing or have an unsupported value)\n\n401\nAuthentication failed (invalid\ \ token format; token is expired)\n\n403\nAuthentication succeeded but the user does not have\ \ sufficient privileges\n\n404\nSpecified List was not found; \nInvalid URL" tags: - Lists parameters: - name: list_id in: path required: true schema: type: string responses: '200': description: 200 OK content: application/json: example: name: List 1.csv formatId: 31002C90-7188-11EE-A565-0800200C9A66 formatName: format 1 allowUsingDefaultTimezone: true defaultTimezone: Europe/Dublin totalRecords: 100 campaigns: - campaignName: Campaign name 1 campaignId: 99B6B870-6CC5-11EE-807C-0800200C9A66 instanceId: 94D63B10-6CF1-11EE-807C-0800200C9A66 - campaignName: Campaign name 1 campaignId: 99B6B870-6CC5-11EE-807C-0800200C9A66 instanceId: 9EA07CA0-6CF1-11EE-807C-0800200C9A66 - campaignName: Campaign name 2 campaignId: 7E57DE70-6CF1-11EE-807C-0800200C9A66 instanceId: A5F55160-6CF1-11EE-807C-0800200C9A66 security: - bearerAuth: [] /configapi/v3/callinglist/deleteList/{list_id}: delete: operationId: deleteListAndOrphanedFormat summary: Delete List and Orphaned Format description: "This method deletes a list, archiving all records with associated campaign results\ \ associated with that list. If the last list using a specific format was deleted, that format\ \ is removed as well.\n\nNote: Bright Pattern Contact Center solution supports several voice campaign\ \ modes (see here). Depending on the mode of the associated campaign, the active call behavior\ \ will differentiate as follows:\n\nProgressive, Predictive, or Automatic (IVR) campaigns\nUpon\ \ instance deletion, all active, i.e. in a dialing state, within a script, or connected to an\ \ agent, calls are dropped\n\nPreview campaigns\nUpon instance deletion, only the calls not yet\ \ picked up by an agent are dropped. In-progress and connected calls are not affected\n\nThe results\ \ of completed calls are archived and available for downloading in the Contact Center Administrator\ \ application (see here). Interaction results for dropped calls are not saved.\n\nResponse Codes\n\ \nCode\nDescription\n\n200\nSuccess\n\n400\nBad request (format not understood; 1 or more required\ \ fields are missing or have an unsupported value)\n\n401\nAuthentication failed (invalid token\ \ format; token is expired)\n\n403\nAuthentication succeeded but the user does not have sufficient\ \ privileges\n\n404\nSpecified List was not found; \nInvalid URL" tags: - Lists parameters: - name: list_id in: path required: true schema: type: string responses: '200': description: 200 OK security: - bearerAuth: [] /configapi/v3/callinglist/createList: post: operationId: createList summary: Create List description: "This method creates a new empty list using an existing format. The format is specified\ \ by its unique identifier, formatId, returned in the response body of the Get Lists method (see\ \ here).\n\nInput parameters\n\nName\nType\nRequired?\nPossible/Default Values\n\nformatId\nstring\n\ yes (can be found in the Get Lists response)\n-\n\nResponse Codes\n\nCode\nDescription\n\n200\n\ Success\n\n400\nBad request (format not understood; 1 or more required fields are missing or have\ \ an unsupported value)\n\n401\nAuthentication failed (invalid token format; token is expired)\n\ \n403\nAuthentication succeeded but the user does not have sufficient privileges\n\n404\nSpecified\ \ Format was not found; \nInvalid URL\n\n409\nDuplicate name error" tags: - Lists requestBody: required: true content: application/json: schema: type: object example: name: List 3.csv formatId: 31002C90-7188-11EE-A565-0800200C9A66 allowUsingDefaultTimezone: true defaultTimezone: Europe/Dublin responses: '200': description: 200 OK content: application/json: example: id: 635DB66C-AA54-41C9-9F0E-AC3A9B5EDB2D security: - bearerAuth: [] /configapi/v3/callinglist/createListWithNewFormat: post: operationId: createListWithNewFormat summary: Create List with New Format description: "This method creates a new empty list and a new format corresponding to that list.\n\ \nWhen creating the new list format, the fields must be defined with the following properties\ \ in mind:\n\nField Property\nDescription\n\nname (string)\nRequired property that defines field\ \ names. The names must be unique. \nDefault value: -\n\ntype (string)\nRequired property that\ \ indicates the type of data the field contains. \nNote: See the table below for available data\ \ types. \nDefault value: -\n\nrequired (boolean)\nOptional property that indicates that the\ \ data in this field is required. \nDefault value: false\n\nsearchable (boolean)\nOptional property\ \ that indicates that this field will be used for record lookups. \nDefault value: false\n\n\ skip (boolean)\nOptional property that indicates that the data in this field is non-essential.\ \ Such data will not be included in Campaign Results/Archives, returned in API requests, or imported\ \ into the database. However, including such fields in the request body should not result in an\ \ error since the fields are simply ignored. \nNote: Skipped fields cannot be set as required,\ \ searchable, or key. \nDefault value: false\n\nkey (boolean)\nOptional property that indicates\ \ that this field will be used to identify list records uniquely. The key will be used to detect\ \ duplicated and reference Campgin Results data. \nDefault value: false\n\nNote: The following\ \ properties are not used when the method is called: CUSTOM_DELIMITER(default 'COMMA' value is\ \ set), DEFAULT_ENCODING(default 'UTF-8' value is set), DELIMITER_TYPE, FORMAT_TYPE(default 'DELIMITED'\ \ value is set),NAMES_IN_FIRST_LINE, SOURCE_TYPE.\n\nField types\n\nField Type\nDescription\n\n\ ACCOUNT\nAccount type fields can be used to store customer's unique identifiers. The values from\ \ such fields are stored in the Call History and can be used for interaction record search. \n\ Note: List formats can only have one field of this type.\n\nAGENT_LOGIN_ID\nFields of this type\ \ are used to assign records to specific agents in preview and progressive campaign modes. \n\ Note: This field will be ignored if used in predictive or automatic campaigns.\n\nCALLING_NUMBER\n\ Fields of this type contain the numbers to be displayed as caller IDs when dialing the corresponding\ \ records from campaigns. \nNOTE: Fields of this type are required to enable the From list field\ \ of type \"Caller ID\" caller id assignment method.\n\nCOMPANY\nCompany type fields can be used\ \ to store the information about a business/company the record belongs to, e.g. company name.\n\ \nDATETIME\nFields of this type can be used to specify the date and time a callback request was\ \ made. Typically, such information is provided in opt-in callback lists. Fields of this type\ \ have additional properties, timeZone and format. \n \nSupported formats: \nMM/dd/yyyy ::mm(Default);\ \ \ndd.MM.yyyy HH:mm; \nyyyy-MM-dd HH:mm; \nyyyy-MM-dd; \ndd-MM-yyyy; \nMM-dd-yyyy; \nMM/dd/yyyy\ \ HH:mm:ss\n\nDATETIME_CALL_AT\nFields of this type can be used to specify the date and time the\ \ record should be called. Fields of this type have additional properties, timeZone and format(see\ \ above for details about supported formats).\n\nFIRST_NAME\nFields of this type store the first\ \ name of the contact.\n\nINTEGER\nInteger type fields store semantically numeric data, e.g. age\ \ or account balance. Such fields can be used to set campaign quotas.\n\nLAST_NAME\nFields of\ \ this type store the last name of the contact.\n\nOTHER\nOther is used to specify that the field\ \ has a type different than the predefined types outlined here.\n\nPHONE\nPhone type fields store\ \ the phone numbers to be dialed during campaigns. \nNote: Fields of this type have additional\ \ properties defined in the table below. \nNote: List formats must have at least one Phone field\ \ defined.\n\nZIP_CODE\nFields of this type store the postal code of the contact. \nNote: Fields\ \ of this type are required to enable the Use safe calling hours setting.\n\nPRIORITY\nPriority\ \ type fields indicate that the record must be attempted before the other records in the list.\ \ Fileds of this type \nhave additional properties:order,i.e. First-in-First-out or Last-in-FIrst-Out,\ \ andexpiresAfter,used to set the expiration date of the priority setting.\n\nSTATE\nFields of\ \ this type store the state the contact lives in. \nNote: Fields of this or the ZIP_CODE type\ \ are required to enable the Comply with State calling hours setting.\n\nPhone Type Properties\n\ \nName\nType\nRequired?\nPossible/Default Values\n\nphoneType\nstring\nno (if =US_CANADA, sets\ \ hasCountryCode to true)\nOTHER (Default); \nUS_CANADA\n\nremovePrefix\nstring\nyes ( ignore\ \ this field if phoneType = US_CANADA)\n-\n\ndefaultCoutryCode\nstring\nno (ignore this field\ \ if phoneType = US_CANADA)\n-\n\nInput parameters\n\nName\nType\nRequired?\nPossible/Default\ \ Values\n\nformatName\nstring\nyes\n-\n\nfields\nlist of JSON Objects\nyes\n-\n\nlistName\nstring\n\ no (appropriate list format must be defined by \"FORMAT: $(formatName)\")\n-\n\nResponse Codes\n\ \nCode\nDescription\n\n200\nSuccess\n\n400\nBad request (format not understood; 1 or more required\ \ fields are missing or have an unsupported value)\n\n401\nAuthentication failed (invalid token\ \ format; token is expired)\n\n403\nAuthentication succeeded but the user does not have sufficient\ \ privileges\n\n404\nInvalid URL\n\n409\nDuplicate name error" tags: - Lists requestBody: required: true content: application/json: schema: type: object example: formatName: format 1 fields: - name: id type: OTHER required: true searchable: false skip: false key: false - name: timeZone type: TIMEZONE required: true searchable: false skip: false key: false default: false - name: phone type: PHONE required: true searchable: true skip: false key: true phoneType: OTHER removePrefix: '' defaultCountryCode: '' overrideTimezone: timeZone listName: List 3.csv allowUsingDefaultTimezone: true defaultTimezone: Europe/Dublin responses: '200': description: 200 OK content: application/json: example: id: 635DB66C-AA54-41C9-9F0E-AC3A9B5EDB2D formatId: 31002C90-7188-11EE-A565-0800200C9A66 security: - bearerAuth: [] /configapi/v3/callinglist/updateListProperties/{list_id}: patch: operationId: updateListProperties summary: Update List Properties description: "This method allows to change the name and the expiration settings of an existing calling\ \ list, specified in the path variable, list_id.\n\nInput parameters\n\nName\nType\nRequired?\n\ Possible/Default Values\n\nname\nstring, ≤ 255 characters \n \nNote: Calling list name must\ \ be unique within the contact center\nno\n-\n\nexpireRecords\nboolean\nno\nDefault = false\n\n\ expirationPeriod\ninteger, [0, 365] \n \nNote: Specifies number of days since record was added\ \ to the Calling list, after which that records is considered expired by the Dialer\nrequired,\ \ if expireRecords = true\nDefault = 90 days\n\nexpirationMode\nFiled name to be set as \"key\"\ \ for records exclusion \n \nNote: Must contain a valid field from the available calling list\ \ formats.\nrequired, if expireRecords = true\n-“INSERTION” \n-“DATE_FIELD” \n \nDefault =\ \ “INSERTION”\n\ndateField\nFiled name to be set as \"key\" for record expiration \n \nNote:\ \ Must contain a valid Date/time field from the available calling list formats.\nrequired, if\ \ expirationMode = “DATE_FIELD”\n-\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\n\ 400\nBad request (format not understood; 1 or more required fields are missing or have an unsupported\ \ value)\n\n401\nAuthentication failed (invalid token format; token is expired)\n\n403\nAuthentication\ \ succeeded but the user does not have sufficient privileges\n\n404\nInvalid URL\n\n409\nDuplicate\ \ name error" tags: - Lists parameters: - name: list_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: name: Updated Calling List Name expireRecords: true expirationPeriod: 90 expirationMode: INSERTION responses: '200': description: 200 OK security: - bearerAuth: [] /configapi/v3/callinglist/addAll/{list_id}: post: operationId: addManyRecords summary: Add Many Records description: "This method updates fields in existing records of a calling list and returns the number\ \ of successfully updated records.\n\nNote: Manipulating the content of calling lists requires\ \ the user to have an additional \"Update content of calling list\" privilege.\n\nThis method\ \ catches and displays the following errors (if any were encountered during the request execution):\n\ \nlimitExceeded - the maximum total number of rows across all existing lists has been reached\n\ \nmissingKey - one or more key field values were not found;\n\nduplicateKey - a record with the\ \ same key already exists in the list;\n\nmissingRequired - one or more required fields are missing\ \ values;\n\nformatError - format was mismatched in one or more field values (e.g. string value\ \ was defined for an integer field); one or more unsupported fields were defined in the request\ \ body\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\n400\nBad request (format not\ \ understood; 1 or more required fields are missing or have an unsupported value)\n\n401\nAuthentication\ \ failed (invalid token format; token is expired)\n\n403\nAuthentication succeeded but the user\ \ does not have sufficient privilegesv\n\n404\nSpecified List was not found; \nInvalid URL" tags: - Lists parameters: - name: list_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: array example: - firstname: Firstname4 date_time: 01-11-2023 phone: '1004' id: N4 lastname: Lastname4 - firstname: Firstname5 date_time: 12-11-2023 phone: '10045' id: N5 lastname: Lastname5 responses: '200': description: 200 OK content: application/json: example: added: 1 error: duplicateKey: - firstname: Firstname4 date_time: 01-11-2023 phone: '1004' id: N4 lastname: Lastname4 security: - bearerAuth: [] /configapi/v3/callinglist/add/{list_id}: post: operationId: addRecord summary: Add Record description: "This method adds a single new record to a calling list.\n\nBefore the record is added,\ \ the uniqueness of its key values is checked against the contents of the list. If the list does\ \ not already have a record with the specified key values, the new record is added successfully.\n\ \nNote: Manipulating the content of calling lists requires the user to have an additional \"Update\ \ content of calling list\" privilege.\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\ \n400\nBad request (format not understood; 1 or more required fields are missing or have an unsupported\ \ value)\n\n401\nAuthentication failed (invalid token format; token is expired)\n\n403\nAuthentication\ \ succeeded but the user does not have sufficient privileges\n\n404\nSpecified List was not found;\ \ \nInvalid URL\n\n409\nDuplicate key error" tags: - Lists parameters: - name: list_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: firstname: Firstname4 date_time: 01-11-2023 phone: '1004' id: N4 lastname: Lastname4 responses: '200': description: 200 OK security: - bearerAuth: [] /configapi/v3/callinglist/updateAll/{list_id}: post: operationId: updateManyRecords summary: Update Many Records description: "This method updates fields in existing records of a calling list and returns the number\ \ of successfully updated records. Additionally, this method can reset optional parameters to\ \ their default values by passing \" \" or null to these parameters.\n\nNote: Manipulating the\ \ content of calling lists requires the user to have an additional \"Update content of calling\ \ list\" privilege.\n\nThis method catches and displays the following errors (if any were encountered\ \ during the request execution):\n\nmissingKey - one or more key field values were not found;\n\ \nkeyNotFound - a record with the same key already exists in the DNC list;\n\nformatError - format\ \ was mismatched in one or more field values (e.g. string value was defined for an integer field);\ \ one or more unsupported fields were defined in the request body\n\nNote: This method is similar\ \ to the Update Record method. However, the input parameters differ to accommodate updating multiple\ \ records within one request. This is done to account for the fact that each request requires\ \ reprocessing of the entire calling list.\n\nInput parameters\n\nName\nType\nRequired?\nPossible/Default\ \ Values\n\nDNC List Record JSON Objects\nlist\nyes (only the key fields are required)\n-\n\n\ Response Codes\n\nCode\nDescription\n\n200\nSuccess\n\n400\nBad request (format not understood;\ \ 1 or more required fields are missing or have an unsupported value)\n\n401\nAuthentication failed\ \ (invalid token format; token is expired)\n\n403\nAuthentication succeeded but the user does\ \ not have sufficient privileges\n\n404\nSpecified List was not found; \nInvalid URL" tags: - Lists parameters: - name: list_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: array example: - date_time: 01-11-2023 phone: '1004' - date_time: 12-11-2023 phone: '10045' responses: '200': description: 200 OK content: application/json: example: updated: 1 error: keyNotFound: - phone: '1004' security: - bearerAuth: [] /configapi/v3/callinglist/update/{list_id}: post: operationId: updateRecord summary: Update Record description: "This method updates fields in an existing record of a calling list. Additionally,\ \ this method can reset an optional parameter to its default value by passing \" \" or null to\ \ that parameter.\n\nNote: Manipulating the content of calling lists requires the user to have\ \ an additional \"Update content of calling list\" privilege.\n\nThe search for the record is\ \ performed based on the defined key fields. The request can contain either a full or partial\ \ set of fields of the List Record JSON Object, but the key fields are mandatory and must be retained\ \ as configured during list creation.\n\nBefore the record is queried, its existence in the specified\ \ list is checked by its unique key values. If the record does exist in the specified list, the\ \ record is updated successfully.\n\nNote: If a PHONE type field is defined as a key, the record\ \ value is checked for a full match with the value stored in the database or the original source\ \ (if the data was modified upon loading into the database).\n\nTo avoid disruptions in the campaign\ \ work caused by the list reprocessing time, the Dialer ignores the changes made to the record\ \ until it makes a call attempt to that record. Thus, if a list containing the updated record\ \ has Filters or Sorting configured, the changes made to that record will not affect that filtering\ \ or sorting order.\n\nNote: Always remember to reapply the desired Filters or Sorting settings\ \ if you wish for it to reflect the changes made to the updated record.\n\nInput parameters\n\n\ Name\nType\nRequired?\nPossible/Default Values\n\nDNC List Record JSON Object\nstring\nyes (can\ \ provide either all or some fields; key fields are mandatory and must have a value)\n-\n\nResponse\ \ Codes\n\nCode\nDescription\n\n200\nSuccess\n\n400\nBad request (format not understood; 1 or\ \ more required fields are missing or have an unsupported value)\n\n401\nAuthentication failed\ \ (invalid token format; token is expired)\n\n403\nAuthentication succeeded but the user does\ \ not have sufficient privileges\n\n404\nSpecified List was not found; \nSpecified Record was\ \ not found; \nInvalid URL" tags: - Lists parameters: - name: list_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: date_time: 01-11-2023 phone: '1004' responses: '200': description: 200 OK security: - bearerAuth: [] /configapi/v3/callinglist/delete/{list_id}: post: operationId: deleteManyRecords summary: Delete Many Records description: "This method deletes records from a list and returns the number of successfully deleted\ \ records.\n\nNote: Manipulating the content of calling lists requires the user to have an additional\ \ \"Update content of calling list\" privilege.\n\nRecords are searched for by one or many criteria\ \ defined in correspondence with the associated list fields. At least one of the available filtering\ \ criteria has to be specified. Otherwise, no record is deleted.\n\nThe method supports filtering\ \ records by:\n\nkey and searchable fields (defined in the fields.some_field parameter);\n\nstatus\ \ in the associated campaign (defined in the byCampaignResult.policy parameter);\n\ncreation date\ \ (defined in the createdFrom and createdTo parameters);\n\ncombination of the above\nNote: If\ \ several criteria are specified, the record should match all of them\n\nNote: Filtered records\ \ will be deleted from all campaigns the list is associated with.\n\nInput parameters\n\nName\n\ Type\nRequired?\nPossible/Default Values\n\nfields.some_field\nstring\nno (specifies the fields\ \ to be used for search; the field must be searchable or key)\n-\n\nbyCampaignResult.campaignId\n\ string\nno (specifies that the records are to be filtered by their associated campaign; campaignId\ \ is required (can be found in the Get List response)\n-\n\nbyCampaignResult.policy\nstring\n\ no (specifies that the records are to be filtered by their state; if = ONLY_COMPLETED, both completed\ \ and expired records are removed)\nALL (Default); \nONLY_COMPLETED; \nONLY_NEVER_ATTEMPTED;\n\ \ncreatedFrom\ntime (UTC)\nno (allows filtering by creation date; must be less than createdTo,\ \ if configured)\n-\n\ncreatedTo\ntime (UTC)\nno (allows filtering by creation date; must be more\ \ than createdFrom, if configured)\n-\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\ \n400\nBad request (format not understood; 1 or more required fields are missing or have an unsupported\ \ value)\n\n401\nAuthentication failed (invalid token format; token is expired)\n\n403\nAuthentication\ \ succeeded but the user does not have sufficient privileges\n\n404\nSpecified List was not found;\ \ \nInvalid URL\n\n422\n????????????????????????????????????????1 or more required fields are\ \ missing" tags: - Lists parameters: - name: list_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: fields: accountId: - id1 - id2 - id3 byCampaignResult: campaignId: 85389D39-E05C-4CE7-B36D-4401BEA52E14 policy: ALL createdFrom: '2023-01-01T00:00:00.000' createdTo: '2023-01-10T00:00:00.000' responses: '200': description: 200 OK content: application/json: example: deleted: 3 security: - bearerAuth: [] /configapi/v3/callinglist/erase/{list_id}: post: operationId: eraseRecord summary: Erase Record description: "This method removes a record from a list and all associated campaign results. The\ \ search for the record is performed based on the defined key fields. An error is returned if\ \ a record does not exist.\n\nNote: Manipulating the content of calling lists requires the user\ \ to have an additional \"Update content of calling list\" privilege.\n\nBright Pattern Contact\ \ Center solution supports several voice campaign modes (see here). If the last record is being\ \ deleted, depending on the mode of the associated campaign, the active call behavior will differentiate\ \ as follows:\n\nProgressive, Predictive, or Automatic (IVR) campaigns\nUpon instance deletion,\ \ all active, i.e. in a dialing state, within a script, or connected to an agent, calls are dropped\n\ \nPreview campaigns\nUpon instance deletion, only the calls not yet picked up by an agent are\ \ dropped. In-progress and connected calls are not affected\n\nOtherwise, if there are still other\ \ records in the list, the method won't impact any calls.\n\nThe list of deleted records with\ \ completed calls, as well as their results, are archived and available for downloading in the\ \ Contact Center Administrator application (see here). Interaction results for dropped calls are\ \ not saved.\n\nNote: This method does not delete contacts, activities, voice recordings, transcriptions,\ \ or screen recordings. This functionality is covered by other APIs.\n\nInput parameters\n\nName\n\ Type\nRequired?\nPossible/Default Values\n\nfields\nstring\nyes (specifies the key fields to be\ \ used for the object search; the non-key fields are ignored)\n-\n\nreason\nstring\nyes (used\ \ to specify the reason for audit log purposes)\n-\n\nResponse Codes\n\nCode\nDescription\n\n\ 200\nSuccess\n\n400\nBad request (format not understood; 1 or more required fields are missing\ \ or have an unsupported value)\n\n401\nAuthentication failed (invalid token format; token is\ \ expired)\n\n403\nAuthentication succeeded but the user does not have sufficient privileges\n\ \n404\nSpecified List was not found; \nSpecified Record was not found; \nInvalid URL" tags: - Lists parameters: - name: list_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: fields: phone: '1004' reason: for audit log responses: '200': description: 200 OK security: - bearerAuth: [] /configapi/v3/callinglist/deleteAll/{list_id}: post: operationId: deleteAllRecords summary: Delete All Records description: "This method removes all records from a list and returns the number of successfully\ \ deleted records.\n\nNote: Manipulating the content of calling lists requires the user to have\ \ an additional \"Update content of calling list\" privilege.\n\nBright Pattern Contact Center\ \ solution supports several voice campaign modes (see here). Depending on the mode of the associated\ \ campaign, the active call behavior will differentiate as follows:\n\nProgressive, Predictive,\ \ or Automatic (IVR) campaigns\nUpon instance deletion, all active, i.e. in a dialing state, within\ \ a script, or connected to an agent, calls are dropped\n\nPreview campaigns\nUpon instance deletion,\ \ only the calls not yet picked up by an agent are dropped. In-progress and connected calls are\ \ not affected\n\nThe list of deleted records with completed calls, as well as their results,\ \ are archived and available for downloading in the Contact Center Administrator application (see\ \ here). Interaction results for dropped calls are not saved.\n\nResponse Codes\n\nCode\nDescription\n\ \n200\nSuccess\n\n400\nBad request (format not understood; 1 or more required fields are missing\ \ or have an unsupported value)\n\n401\nAuthentication failed (invalid token format; token is\ \ expired)\n\n403\nAuthentication succeeded but the user does not have sufficient privileges\n\ \n404\nSpecified List was not found; \nInvalid URL" tags: - Lists parameters: - name: list_id in: path required: true schema: type: string responses: '200': description: 200 OK content: application/json: example: deleted: 2 security: - bearerAuth: [] /configapi/v3/donotcalllist/deleteAll/{do_not_call_list_id}: post: operationId: deleteAllRecordsDNCLists summary: Delete All Records description: 'Privileges required: Service and Campaign Administration -> Manage Lists This method deletes all records from the specified DNC List and returns the number of deleted records. Response Codes: Code Description 200 Success 400 Bad request (format not understood/1 or more required fields are missed or have unsupported value) 401 Authentication failed 403 User authenticated but does not have sufficient privileges, or modification of this type of list is not allowed 404 DNC List is not found or invalid URL' tags: - DNC Lists parameters: - name: do_not_call_list_id in: path required: true schema: type: string responses: '200': description: 200 OK content: application/json: example: deleted: 2 security: - bearerAuth: [] /configapi/v3/donotcalllist/delete/{do_not_call_list_id}: post: operationId: deleteManyRecordsDNCLists summary: Delete Many Records description: 'Privileges required: Service and Campaign Administration -> Manage Lists This method deletes the list of specified records from the DNC List, returns the number of deleted records and list of errors if there are. The following errors should be caught: missingKey - one or more key fields are missed; formatError - one or more fields has wrong format (e.g. string value for an integer field). Input parameters: list of DNC list record JSON objects, only key field is required. Response Codes: Code Description 200 Success 400 Bad request (format not understood/1 or more required fields are missed or have unsupported value) 401 Authentication failed 403 User authenticated but does not have sufficient privileges, or modification of this type of list is not allowed 404 DNC List is not found or invalid URL' tags: - DNC Lists parameters: - name: do_not_call_list_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: array example: - key: '9999999' - key: '8888888' responses: '200': description: 200 OK content: application/json: example: deleted: 1 error: keyNotFound: - key: '9999999' security: - bearerAuth: [] /configapi/v3/donotcalllist/addAll/{do_not_call_list_id}: post: operationId: addManyRecordsDNCLists summary: Add Many Records description: 'Privileges required: Service and Campaign Administration -> Manage Lists This method adds new records to the specified Do Not Call (DNC) list and returns the number of added (i.e., appended) records. Duplicates are ignored. The following errors should be caught: missingKey - one or more key fields are missed; duplicateKey - a record with the same key already exists; formatError - one or more fields has wrong format (e.g. string value for an integer field) or unsupported fields are sent; Input parameters: list of DNC list record JSON objects. Response Codes: Code Description 200 Success 400 Bad request (format not understood/1 or more required fields are missed or have unsupported value) 401 Authentication failed 403 User authenticated but does not have sufficient privileges, or modification of this type of list is not allowed 404 DNC List is not found or invalid URL' tags: - DNC Lists parameters: - name: do_not_call_list_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: array example: - key: '9999999' expirationPeriod: 3 comment: optional comment - key: '8888888' responses: '200': description: 200 OK content: application/json: example: added: 1 error: duplicateKey: - key: '8888888' security: - bearerAuth: [] /configapi/v3/donotcalllist/add/{do_not_call_list_id}: post: operationId: addRecordsDeprecated summary: Add Records DEPRECATED description: 'Privileges required: Service and Campaign Administration -> Manage Lists This method adds new records to the specified Do Not Call (DNC) list and returns the number of added (i.e., appended) records. Duplicates are ignored. Response Codes: Code Description 200 Success 400 Bad request (format not understood/1 or more required fields are missed or have unsupported value) 401 Authentication failed 403 User authenticated but does not have sufficient privileges, or modification of this type of list is not allowed 404 DNC List is not found or invalid URL' tags: - DNC Lists parameters: - name: do_not_call_list_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: array example: - - '123456789' - optional comment - - '9999999999' - optional comment responses: '200': description: 200 OK content: application/json: example: added: 2 security: - bearerAuth: [] /configapi/v3/donotcalllist/replaceAll/{do_not_call_list_id}: post: operationId: replaceRecordsDeprecated summary: Replace Records DEPRECATED description: 'Privileges required: Service and Campaign Administration -> Manage Lists The method deletes all records in the specified Do Not Call (DNC) list, inserts new ones and returns the number of newly inserted records. Duplicates are ignored. Response Codes: Code Description 200 Success 400 Bad request (format not understood/1 or more required fields are missed or have unsupported value) 401 Authentication failed 403 User authenticated but does not have sufficient privileges, or modification of this type of list is not allowed 404 DNC List is not found or invalid URL' tags: - DNC Lists parameters: - name: do_not_call_list_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: array example: - - '123456789' - optional comment - - '9999999999' - optional comment responses: '200': description: 200 OK content: application/json: example: added: 2 security: - bearerAuth: [] /configapi/v3/donotcalllist/getDNCRecords/{do_not_call_list_id}: get: operationId: getDncRecords summary: Get DNC Records description: "This method returns a list of all records, including their in an existing DNC List,\ \ specified in the path variable, do_not_call_list_id. The records are returned and sorted by\ \ the standard MongoDB _id field.\n\nNote: To accommodate the display of large numbers of list\ \ records, Bright Pattern Contact Solution utilizes Cursor-based pagination (see here). The _id\ \ field is used as the \"cursor\" to reference the last served record.\n\nInput parameters\n\n\ Name\nType\nRequired?\nPossible/Default Values\n\nlimit\ninteger, ≤ 1000\nyes (Specifies the maximum\ \ number of records per page when using cursor-based pagination)\n1...1000\n\ncursor\nstring\n\ no (used for pagination)\nFirst request: null \nSubsequent request: value received in the response\ \ to the previous request\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\n400\nBad request\ \ (format not understood; 1 or more required fields are missing or have an unsupported value)\n\ \n401\nAuthentication failed (invalid token format; token is expired)\n\n403\nAuthentication succeeded\ \ but the user does not have sufficient privileges; \nModification of this type of list is not\ \ allowed\n\n404\nSpecified DNC List was not found; \nInvalid URL" tags: - DNC Lists parameters: - name: do_not_call_list_id in: path required: true schema: type: string responses: '200': description: 200 OK content: application/json: example: next_cursor: 590e9abd4abbf1165862d342 records: - key: '8888888' added: '2023-01-19T20:46:34.000' comment: optional comment setOn: '2023-01-19T20:46:35.000' expireAt: '2023-04-19T20:46:35.000' - key: '9999999' comment: optional comment setOn: '2023-01-19T20:48:35.000' expireAt: '2023-02-09T20:46:35.000' security: - bearerAuth: [] /configapi/v3/donotcalllist/getAll: get: operationId: getDncLists summary: Get DNC Lists description: "This method returns all DNC Lists, sorted by the standard MongoDB _id field.\n\nNote:\ \ To accommodate the display of large numbers of list records, Bright Pattern Contact Solution\ \ utilizes Cursor-based pagination (see here). The _id field is used as the \"cursor\" to reference\ \ the last served record.\n\nInput parameters\n\nName\nType\nRequired?\nPossible/Default Values\n\ \nlimit\ninteger, ≤ 100\nyes (Specifies the maximum number of records per page when using cursor-based\ \ pagination)\n1...100\n\ncursor\nstring\nno (used for pagination)\nFirst request: null \nSubsequent\ \ request: value received in the response to the previous request\n\nResponse Codes\n\nCode\n\ Description\n\n200\nSuccess\n\n400\nBad request (format not understood; limit exceeded; 1 or more\ \ required fields are missing or have an unsupported value)\n\n401\nAuthentication failed (invalid\ \ token format; token is expired)\n\n403\nAuthentication succeeded but the user does not have\ \ sufficient privileges\n\n404\nInvalid URL" tags: - DNC Lists responses: '200': description: 200 OK content: application/json: example: "{\n \"next_cursor\": \"590e9abd4abbf1165862d342\",\n \"records\": [\n \ \ {\n \"id\": \"635DB66C-AA54-41C9-9F0E-AC3A9B5EDB2D\",\n \"\ name\": \"DNC - July\",\n \"type\": \"Internal\"\n \"creationDate\"\ : \"2024-07-01T19:11:40.000\",\n \"totalRecords\": 29\n },\n \ \ {\n \"id\": \"635DB66C-AA54-41C9-9F0E-AC3A9B5EDB2C\",\n \"name\"\ : \"DNC - June\",\n \"type\": \"Internal\"\n \"creationDate\": \"\ 2025-06-01T19:11:41.000\",\n \"totalRecords\": 34\n }\n ]\n}\n" security: - bearerAuth: [] /configapi/v3/donotcalllist/getDNCList/{do_not_call_list_id}: get: operationId: getDncList summary: Get DNC List description: 'This method returns the detailed information about a specified DNC list, including it''s name, type and total number of records, as well as exipartion and reset settings, if applicable. Additionally, this method returns information about the campaigns associated with that DNC list, if any. Response Codes Code Description 200 Success 400 Bad request (format not understood; limit exceeded; 1 or more required fields are missing or have an unsupported value) 401 Authentication failed (invalid token format; token is expired) 403 Authentication succeeded but the user does not have sufficient privileges 404 Invalid URL' tags: - DNC Lists parameters: - name: do_not_call_list_id in: path required: true schema: type: string responses: '200': description: 200 OK content: application/json: example: "{ \n \"id\": \"635DB66C-AA54-41C9-9F0E-AC3A9B5EDB2D\",\n \"name\": \"DNC - July\"\ ,\n \"type\": \"INTERNAL\",\n \"creationDate\": \"2024-07-01T19:11:40.000\",\n \"totalRecords\"\ : 100,\n \"expireRecords\": true,\n \"defaultExpirationPeriod\": 120,\n \"resetDaily\"\ \ : true,\n \"resetTime\" : \"12:00:00 PM -08:00\"\n\n \"campaigns\": [\n {\n \ \ \"campaignName\": \"Campaign name 1\",\n \"campaignId\": \"99B6B870-6CC5-11EE-807C-0800200C9A66\"\ ,\n \"disposition\": \"Requested DNC\",\n\t \"allowAppend\": true\n },\n {\n\ \ \"campaignName\": \"Campaign name 2\",\n \"campaignId\": \"99B6B870-6CC5-11EE-807C-0800200C9A66\"\ ,\n \"disposition\": \"Requested DNC\",\n \"allowAppend\": true\n },\n \ \ {\n \"campaignName\": \"Campaign name 3\",\n \"campaignId\": \"7E57DE70-6CF1-11EE-807C-0800200C9A66\"\ ,\n \"disposition\": \"Matched DNC\",\n \"allowAppend\": false\n }\n ]\n\ } " security: - bearerAuth: [] /configapi/v3/donotcalllist/createDNCList: post: operationId: createDncList summary: Create DNC List description: "This method creates a new empty DNC list. Depending on the specified DNC list type,\ \ the creation process is as follows:\n\nFor Internal, Geographic, Area Codes - new DNC lists\ \ are created using the fixed format corresponding to the list type\n\nFor Record Exclusion -\ \ the exclusion field has to be explicitly specified in the request body\n\nAdditionally, for\ \ DNC lists of Area Codes and Geographic Postal types, the ISO country code has to be explicitly\ \ specified in the request body.\n\nNote: For Area Codes, additional option “Each area code had\ \ country prefix” is available. This option can be specified using “Prefixed” as the country value.\n\ \nOn succesfull excution, the response should contain the ID of the newly created DNC list.\n\n\ Input parameters\n\nName\nType\nRequired?\nPossible/Default Values\n\nname\nstring, ≤ 255 characters\ \ \n \nNote: DNC list name must be unique within the contact center\nyes\n-\n\ntype\nstring\n\ yes\n“INTERNAL” \n“GEOGRAPHIC_POSTAL” \n“AREA_CODES” \n“EXCLUSION”\n\ncountry\nISO country\ \ code; \nOR “prefixed” (applicable only to DNC lists of Area Codes type)\nonly required for\ \ DNC lists of Area Codes and Geographic Postal types\n\nexpireRecords\nboolean\nonly required\ \ for DNC lists of Internal and Record Exclusion types\nDefault = false\n\ndefaultExpirationPeriod\n\ integer, [0, 365] \nNote: Specifies number of days since record was added to the DNC list, after\ \ which that records is considered expired by the Dialer\nrequired, if expireRecords = true\n\ Default = 90 days\n\nexclusionField\nFiled name to be set as \"key\" for records exclusion \n\ \ \nNote: Must contain a valid field from the available calling list formats.\nonly required\ \ for DNC lists of Record Exclusion type\n-\n\nresetDaily\nboolean\nonly required for DNC lists\ \ of Record Exclusion type\nDefault = false\n\nresetPeriod\nJSON object, consisting of: \n \n\ resetTime, formatted as HH:mm:ss \nAND \n \ntimezoneID, formatted as {Area}/{Location} \n\ e.g., \"America/New_York\"\nrequired, if resetDaily = true\nDefault resetTime = 00:00:00 \n \ \ \nDefault timezoneID = user’s timezone\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\ \n400\nBad request (format not understood; 1 or more required fields are missing or have an unsupported\ \ value)\n\n401\nAuthentication failed (invalid token format; token is expired)\n\n403\nAuthentication\ \ succeeded but the user does not have sufficient privileges\n\n404\nInvalid URL\n\n409\nDuplicate\ \ name error" tags: - DNC Lists requestBody: required: true content: application/json: schema: type: string example: "//FOR INTERNAL, GEOGRAPHIC POSTAL, AREA CODES\n\n{\n \"name\": \"DNC - June\"\ ,\n \"type\": \"INTERNAL\",\n \"expireRecords\": true, \n \"defaultExpirationPeriod\"\ : 120\n}\n\n//FOR GEOGRAPHIC POSTAL, AREA CODES\n\n{\n \"name\": \"DNC - June\",\n \ \ \"type\": \"AREA_CODES\",\n \"country\": \"US\"\n}\n\n//FOR RECORD EXCLUSION\n\n{\n\ \ \"name\": \"Account Exclusion List\",\n \"type\": \"EXCLUSION\",\n \"expireRecords\"\ : true, \n \"defaultExpirationPeriod\": 120, \n \"exclusionField\": \"Account Number\"\ ,\n \"resetDaily\" : true,\n \"resetPeriod\": \n { \n \"time\": \"04:00:00\"\ ,\n \"timezoneID\" : \"America/Los_Angeles\" \t\n }\n}" responses: '200': description: 200 OK content: application/json: example: id: 31CAA7DA-0AE2-4D1A-BE8C-07CA1A4C39AE security: - bearerAuth: [] /configapi/v3/donotcalllist/deleteDNCList/{do_not_call_list_id}: delete: operationId: deleteDncList summary: Delete DNC List description: 'This method deletes the DNC list specified in the path variable, do_not_call_list_id. Once the DNC List is deleted, all records previously blocked by it in the associated campaign(s) become dialable again. Note: Archivation of DNC Lists and DNS List records is not supported in the Admin Portal, so no special considerations should be made for List API.' tags: - DNC Lists parameters: - name: do_not_call_list_id in: path required: true schema: type: string responses: '200': description: 200 OK security: - bearerAuth: [] /configapi/v3/campaign/bindDNCList/{campaign_id}: post: operationId: bindDncList summary: Bind DNC List description: "This method adds a DNC list to the campaign, referenced by its ID in the path variable.\n\ \nNote: Manipulating calling lists associated with a campaign requires the user to have an additional\ \ \"Start campaigns and enable lists\" privilege.\n\nInput parameters\n\nName\nType\nRequired?\n\ Possible/Default Values\n\ndncListId\nstring\nyes\n-\n\ndisposition\nstring \n \nNote: Specifies\ \ disposition to be attached to call attempts and completed records in case of a match against\ \ DNC record\nyes\n-\n\napplyToLinkGroup\nboolean \n \nNote: Allows to automatically apply DNC\ \ to all other campaigns in link group\nno\n-\n\nallowAppend\nboolean \n \nNote: Allows numbers\ \ to be added to Internal DNC list based on “Add to DNC” disposition set by agents during the\ \ given campaign\nonly required for DNC lists of Internal type\nDefault = false\n\nResponse Codes\n\ \nCode\nDescription\n\n200\nSuccess\n\n400\nBad request (format not understood; 1 or more required\ \ fields are missing or have an unsupported value)\n\n401\nAuthentication failed (invalid token\ \ format; token is expired)\n\n403\nAuthentication succeeded but the user does not have sufficient\ \ privileges\n\n404\nSpecified campaign was not found; \nSpecifed DNC list was not found; \n\ Invalid URL" tags: - DNC Lists parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: dncListid: 31CAA7DA-0AE0-4D1A-BE8C-07CA1A4C39AC disposition: Number matched DNC applyToLinkGroup: false allowAppend: true responses: '200': description: 200 OK security: - bearerAuth: [] /configapi/v3/campaign/unbindDNCList/{campaign_id}: post: operationId: unbindDncList summary: Unbind DNC List description: 'This method removes the DNC list from the associated campaign, referenced by its ID in the path variable., campaign_id. The DNC list to be removed is specified in the request body by its unique identifier, dncListId. Note: Manipulating calling lists associated with a campaign requires the user to have an additional "Start campaigns and enable lists" privilege. Input parameters Name Type Required? Possible/Default Values dncListId string yes -' tags: - DNC Lists parameters: - name: campaign_id in: path required: true schema: type: string requestBody: required: true content: application/json: schema: type: object example: dncListId: DBA3A9B0-6CC4-11EE-807C-0800200C9A66 responses: '200': description: 200 OK security: - bearerAuth: [] /configapi/v3/campaignlinkgroup/getAll: post: operationId: getLinkGroups summary: Get Link Groups description: "This method returns all Campaign Link Groups, sorted by the standard MongoDB _id field.\n\ \nNote: To accommodate the display of large numbers of list records, Bright Pattern Contact Solution\ \ utilizes Cursor-based pagination (see here). The _id field is used as the \"cursor\" to reference\ \ the last served record.\n\nInput parameters\n\nName\nType\nRequired?\nPossible/Default Values\n\ \nlimit\ninteger, ≤ 100\nyes (specifies the maximum size of the returned list)\n1...100\n\ncursor\n\ string\nno (used for pagination)\nFirst request: null \nSubsequent request: value received in\ \ the response to the previous request\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\ \n400\nBad request (format not understood; limit exceeded; 1 or more required fields are missing\ \ or have an unsupported value)\n\n401\nAuthentication failed (invalid token format; token is\ \ expired)\n\n403\nAuthentication succeeded but the user does not have sufficient privileges\n\ \n404\nInvalid URL" tags: - Link Groups requestBody: required: true content: application/json: schema: type: object example: limit: 100 cursor: 590e9abd4abbf1165862d342 responses: '200': description: 200 OK content: application/json: example: - id: 6D7C2A7E-7E7A-4D43-9F6D-AB7D6F2B1F1E name: New campaignsCount: 2 security: - bearerAuth: [] /configapi/v3/campaignlinkgroup/getLinkGroup/{group_id}: get: operationId: getLinkGroup summary: Get Link Group description: "This method returns the information about a link group, including its name and amount\ \ of linked campaigns.\n\nResponse Codes\n\nCode\nDescription\n\n200\nSuccess\n\n400\nBad request\ \ (wrong cursor; format not understood; 1 or more required fields are missing or have an unsupported\ \ value)\n\n401\nAuthentication failed (invalid token format; token is expired)\n\n403\nAuthentication\ \ succeeded but the user does not have sufficient privileges\n\n404\nSpecified Link Group was\ \ not found; \nInvalid URL" tags: - Link Groups parameters: - name: group_id in: path required: true schema: type: string responses: '200': description: 200 OK content: application/json: example: name: New campaigns: - campaignId: 85389D39-E05C-4CE7-B36D-4401BEA52E14 name: Campaign 1 order: 0 - campaignId: 48B91DC5-A8CD-4FCA-9AF8-EC20A4ACC14B name: Campaign 2 order: 1 security: - bearerAuth: [] /configapi/v3/campaignlinkgroup/createLinkGroup: post: operationId: createLinkGroup summary: Create Link Group description: "This method creates a new empty link group.\n\nInput parameters\n\nName\nType\nRequired?\n\ Possible/Default Values\n\nname\nstring\nyes\n-\n\nResponse Codes\n\nCode\nDescription\n\n200\n\ Success\n\n400\nBad request (format not understood; 1 or more required fields are missing or have\ \ an unsupported value)\n\n401\nAuthentication failed (invalid token format; token is expired)\n\ \n403\nAuthentication succeeded but the user does not have sufficient privileges\n\n404\nSpecified\ \ Format was not found; \nInvalid URL\n\n409\nDuplicate name error" tags: - Link Groups requestBody: required: true content: application/json: schema: type: object example: name: New responses: '200': description: 200 OK content: application/json: example: id: 6D7C2A7E-7E7A-4D43-9F6D-AB7D6F2B1F1E security: - bearerAuth: [] /configapi/v3/campaignlinkgroup/deleteLinkGroup/{group_id}: delete: operationId: deleteLinkGroup summary: Delete Link Group description: "This method deletes an empty link group.\n\nResponse Codes\n\nCode\nDescription\n\n\ 200\nSuccess\n\n400\nBad request (format not understood; 1 or more required fields are missing\ \ or have an unsupported value)\n\n401\nAuthentication failed (invalid token format; token is\ \ expired)\n\n403\nAuthentication succeeded but the user does not have sufficient privileges\n\ \n404\nSpecified Link Group was not found; \nInvalid URL\n\n409\nSpecified Link Group is not\ \ empty" tags: - Link Groups parameters: - name: group_id in: path required: true schema: type: string responses: '200': description: 200 OK security: - bearerAuth: [] /configapi/v3/donotcalllist/updateDNCProperties/{do_not_call_list_id}: patch: operationId: updateDncListProperties summary: Update DNC List Properties description: "This method allows to change properties and settings of an existing DNC list, specified\ \ in the path variable, do_not_call_list_id.\n\nInput parameters\n\nName\nType\nRequired?\nPossible/Default\ \ Values\n\nname\nstring, ≤ 255 characters \n \nNote: DNC list name must be unique within the\ \ contact center\nno\n-\n\ntype\nstring\nno\n“INTERNAL” \n“GEOGRAPHIC_POSTAL” \n“AREA_CODES”\ \ \n“EXCLUSION”\n\ncountry\nISO country code; \nOR “prefixed” (applicable only to DNC lists\ \ of Area Codes type)\nno, only applicable to DNC lists of Area Codes and Geographic Postal types\n\ \nexpireRecords\nboolean\nno, only applicable to DNC lists of Internal and Record Exclusion types\n\ Default = false\n\ndefaultExpirationPeriod\ninteger, [0, 365] \nNote: Specifies number of days\ \ since record was added to the DNC list, after which that records is considered expired by the\ \ Dialer\nrequired, if expireRecords = true\nDefault = 90 days\n\nexclusionField\nFiled name to\ \ be set as \"key\" for records exclusion \n \nNote: Must contain a valid field from the available\ \ calling list formats.\nno, only applicable to DNC lists of Record Exclusion type\n-\n\nresetDaily\n\ boolean\nno, only applicable to DNC lists of Record Exclusion type\nDefault = false\n\nresetPeriod\n\ JSON object, consisting of: \n \nresetTime, formatted as HH:mm:ss \nAND \n \ntimezoneID,\ \ formatted as {Area}/{Location} \ne.g., \"America/New_York\"\nrequired, if resetDaily = true\n\ Default resetTime = 00:00:00 \n \nDefault timezoneID = user’s timezone\n\nResponse Codes\n\n\ Code\nDescription\n\n200\nSuccess\n\n400\nBad request (format not understood; 1 or more required\ \ fields are missing or have an unsupported value)\n\n401\nAuthentication failed (invalid token\ \ format; token is expired)\n\n403\nAuthentication succeeded but the user does not have sufficient\ \ privileges\n\n404\nInvalid URL\n\n409\nDuplicate name error" tags: - DNC Lists requestBody: required: true content: application/json: schema: type: object example: name: new DNC name expireRecords: true defaultExpirationPeriod: 180 resetDaily: true resetTime: 12:00:00 PM -08:00 responses: '200': description: 200 OK security: - bearerAuth: [] parameters: - name: do_not_call_list_id in: path required: true schema: type: string x-normalized-from: '/configapi/v3/donotcalllist/updateDNCProperties/do_not_call_list_id (the published collection omits the : parameter marker)' components: securitySchemes: bearerAuth: type: http scheme: bearer description: 'OAuth 2.0 access token issued by the Bright Pattern token endpoint, sent as `Authorization: Bearer `.' oauth2ClientCredentials: type: oauth2 description: OAuth 2.0 client-credentials grant against the Bright Pattern tenant token endpoint. flows: clientCredentials: tokenUrl: https://{tenant_url}/configapi/v3/oauth/token scopes: {} security: - bearerAuth: []