Bright Pattern Campaigns API

The Campaigns API from Bright Pattern — 27 operation(s) for campaigns.

OpenAPI Specification

bright-pattern-campaigns-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bright Pattern Campaigns API
  version: 1.0.0
  contact:
    name: Bright Pattern
    url: https://www.brightpattern.com/contact/
  description: 'Operations tagged Campaigns across 3 of this provider''s published API definitions: bright-pattern-list-management-v2-openapi.yml, bright-pattern-list-management-v3-2-openapi.yml, bright-pattern-list-management-v3-openapi.yml. Each path carries the servers of the definition it was published in.'
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.
security:
- bearerAuth: []
tags:
- name: Campaigns
paths:
  /configapi/v2/campaign/getAll:
    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.
    get:
      operationId: getCampaigns
      summary: Get Campaigns
      description: 'This method returns the list of enabled campaigns and the calling lists currently associated with such campaigns. It does not return any disabled campaigns.


        Notes:


        An empty array can be returned if there are no enabled campaigns.


        Response Codes


        Code

        Description


        200

        OK


        400

        Bad request (missing required fields or format not understood)


        401

        Authentication failed


        403

        User authenticated but does not have sufficient privileges'
      tags:
      - Campaigns
      responses:
        '200':
          description: Get Campaigns
          content:
            application/json:
              example:
              - name: CupIQ Dynamics Preview
                state: STOPPED
                lists:
                - CupIQ Dynamics Preview.csv
      security:
      - bearerAuth: []
  /configapi/v3/campaign/getCampaign/{campaign_id}:
    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.
    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\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\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:
    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.
    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}:
    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.
    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\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"
      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}:
    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.
    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\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 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}:
    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.
    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\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 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}:
    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.
    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\nNote: 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\nno\nfalse (Default);  \ntrue\n\norder\ninteger, > 0\nno\n1(Default);  \n2,...\n\ndialingRatio\ninteger, > 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}:
    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.
    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\ninstanceId\nstring\nyes (can be found in the Get Campaign response)\n-\n\ninstanceName\nstring\nno\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\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;  \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}:
    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.
    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\nstring\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}:
    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.
    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\nInput 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\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\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}:
    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.
    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\nType\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\nstring\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}:
    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.
    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\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\nstring\nno (mn 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 th

# --- truncated at 32 KB (73 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bright-pattern/refs/heads/main/openapi/bright-pattern-campaigns-api-openapi.yml