openapi: 3.0.3 info: title: Outbound API description: "Outbound API allows you to manage outbound call campaigns, records, agents, skills, and Do Not Call lists.\n\ \n ## Authentication\n All requests require an Bearer Token.\n\n ## Pagination\n Many list endpoints return paginated\ \ results with a limit of 200 records per page. When more records are available, the response includes `\"more_records\"\ : \"1\"`. To retrieve subsequent pages, include a `page` parameter in your request.\n" version: 1.0.0 servers: - url: '{protocol}://{server}{basePath}' description: Open API variables: protocol: enum: - https default: https server: default: HOST-REGION.api.avayacloud.com basePath: default: /api/outbound - url: '{protocol}://{server}:{port}' description: Internal API variables: protocol: enum: - http - https default: https server: default: outbound-service port: enum: - '80' - '443' default: '443' security: - {} - BearerAuth: [] components: securitySchemes: BearerAuth: type: http scheme: bearer description: This API uses Bearer Token Authorization Flow bearerFormat: JWT schemas: PaginationInfo: type: object properties: per_page: type: string example: '200' count: type: string example: '10' page: type: string example: '1' more_records: type: string example: '0' description: Set to '1' if more records are available. Increment the `page` parameter to retrieve the next page. tags: - name: Records description: Manage outbound campaign records - name: Data Sets description: Manage data sets within campaigns - name: Campaigns description: Manage outbound campaigns - name: Agents description: Monitor and manage agent status and activity - name: Users description: Manage system users - name: Skills description: Manage skills and agent/campaigns assignments - name: Calls description: Trigger and complete calls - name: DNC description: Do Not Call list management paths: /SetValue: put: tags: - Records summary: Set a field value description: 'This function allows you to set the value of a field using the Call ID as an identifier. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: setValue requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - callid - modulefieldupdate properties: module: type: string default: data description: Set the update target as master data. Default is 'data' callid: type: string description: The ID of a call associated with that record example: '22078' modulefieldupdate: type: string description: The field name and value to update e.g. {"fieldname":"value"} example: '{"Surname":"Jackie"}' responses: '200': description: Success content: application/json: schema: type: object properties: success: type: string example: Value Has Been Set '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /GetData: post: tags: - Records summary: Extract initiative data description: 'This function allows you to extract data from an initiative, where the data is the current state of the records as per the date range supplied. **IMPORTANT:** There is a request restriction of once every 5 minutes. If you are designing a polling system, use the `GetCallIDs` and `GetRecord` functions together instead. **Pagination:** Results are paginated with a limit of 200 records per page. If more records are available, the response includes `"more_records": "1"`. Send a `page` parameter incremented by 1 in subsequent requests. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: getData requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: module: type: string default: data description: Set the request target as master data. Default is 'data' moduleid: type: string description: The Initiative ID for the initiative you would like to extract data from fromdate: type: string description: 'The start date for the extract. Format: ''yyyy-mm-dd'' or ''yyyy-mm-dd hh:mm:ss''' example: '2021-03-23 00:00:00' todate: type: string description: 'The end date for the extract. Format: ''yyyy-mm-dd'' or ''yyyy-mm-dd hh:mm:ss''' example: '2021-03-24 23:59:59' page: type: integer description: Page number for pagination default: 1 responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' records: type: array items: type: object additionalProperties: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /GetDataWithAgent: post: tags: - Records summary: Extract initiative data with agent names description: 'This function allows you to extract all the attempted record information, together with agent names, from the initiative using the specified date range. **IMPORTANT:** There is a request restriction of once every 5 minutes. If you are designing a polling system, use the `GetCLIs` and `GetRecord` functions together instead. **Pagination:** Results are paginated with a limit of 200 records per page. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: getDataWithAgent requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object properties: module: type: string default: data moduleid: type: string description: The Initiative ID fromdate: type: string description: 'Start date. Format: ''yyyy-mm-dd'' or ''yyyy-mm-dd hh:mm:ss''' todate: type: string description: 'End date. Format: ''yyyy-mm-dd'' or ''yyyy-mm-dd hh:mm:ss''' page: type: integer default: 1 responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' records: type: array items: type: object properties: AgentId: type: string AgentName: type: string Attempts: type: string EmailId: type: string Id: type: string IsAgentCallback: type: string IsComplete: type: string IsContact: type: string Outcome: type: string OutcomeId: type: string OutcomeUpdateDateTime: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /GetRecord: post: tags: - Records summary: Get a record by Call ID description: 'This function retrieves a single record from the system using the Call ID as an identifier. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: getRecord requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - callid properties: module: type: string default: data callid: type: string description: The Call ID associated with the specific record. example: '22078' responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' records: type: array items: type: object additionalProperties: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /SearchRecord: post: tags: - Records summary: Search for records description: 'This function searches for a record within an Initiative and returns the records that match the search criteria. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: searchRecord requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - initiativeid - jsondata properties: datasetid: type: string description: 'Optional: The Data Set ID you would like to search.' initiativeid: type: string description: The Initiative ID you would like to search. jsondata: type: string description: The Field Name and Value you wish to search for e.g. {"fieldname":"value"} example: '{"Home Phone":"61435398744"}' activeonly: type: string enum: - '0' - '1' description: 'Optional: Set to 1 to return only active records.' responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' records: type: array items: type: object additionalProperties: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /InsertRecord: post: tags: - Records summary: Insert a record into a data set description: 'This function allows you to insert data into an existing data set. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: insertRecord requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - datasetid - jsondata properties: datasetid: type: string description: The Data Set ID to insert the record into. jsondata: type: string description: The data for the record e.g. {"fieldname1":"value1","fieldname2":"value2"} example: '{"Home Phone":"61435398744","First Name":"John","Surname":"Smith"}' initiativetype: type: string description: Optional. e.g. zoho, hubspot responses: '200': description: Success content: application/json: schema: type: object properties: success: type: string example: New Record Has Been Inserted info: type: object properties: RecordId: type: string DatasetId: type: string InitiativeId: type: string '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /InsertNextRecord: post: tags: - Records summary: Insert a record as the next record for an agent description: 'This function allows you to insert data into an existing data set and make that record the next record for an agent. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: insertNextRecord requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - datasetid - jsondata - userid properties: datasetid: type: string description: The Data Set ID to insert the record into. jsondata: type: string description: The data for the record e.g. {"fieldname1":"value1"} userid: type: string description: The User ID to assign the record to. responses: '200': description: Success content: application/json: schema: type: object properties: success: type: string example: New Record Has Been Inserted info: type: object properties: RecordId: type: string DatasetId: type: string InitiativeId: type: string '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /InsertRecordWithCallback: post: tags: - Records summary: Insert a record with an agent callback description: 'This function allows you to insert data into an existing data set and set that record as an agent callback for a specific date and time. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: insertRecordWithCallback requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - datasetid - jsondata - userid - callbackdatetime properties: datasetid: type: string description: The Data Set ID to insert the record into. jsondata: type: string description: The data for the record e.g. {"fieldname1":"value1"} userid: type: string description: The User ID to assign the record to. callbackdatetime: type: string description: 'The callback date and time. Format: ''yyyy-mm-dd hh:mm:ss''' example: '2023-10-25 13:45:00' responses: '200': description: Success content: application/json: schema: type: object properties: success: type: string example: New Record Has Been Inserted info: type: object properties: RecordId: type: string DatasetId: type: string InitiativeId: type: string '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /UpdateRecord: put: tags: - Records summary: Update fields of a record description: 'This function updates specified fields of a specified record in a specified initiative. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: updateRecord requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - initiativeid - jsondata - recordid properties: initiativeid: type: string description: The Initiative ID of the record you are going to update. jsondata: type: string description: The fields you wish to update e.g. {"fieldname1":"value1","fieldname2":"value2"} recordid: type: string description: The Record ID of the record you would like to update. responses: '200': description: Success content: application/json: schema: type: object properties: success: type: string example: Record Has Been Updated info: type: object properties: RecordId: type: string InitiativeId: type: string '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /UpdateOutcome: put: tags: - Records summary: Update the outcome for a record description: 'This function updates the outcome for a specified record inside a specified Initiative. **IMPORTANT:** This function will log a Call Record against the Initiative and will clear out any Callbacks associated with the record. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: updateOutcome requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - initiativeid - recordid - outcomeid properties: initiativeid: type: string description: The Initiative ID for the initiative you would like to update the record in. recordid: type: string description: The Record ID of the record you wish to change the outcome for. outcomeid: type: string description: The Outcome ID. A list of Outcome IDs can be derived from the `GetOutcome` function. responses: '200': description: Success content: application/json: schema: type: object properties: success: type: string example: Outcome Has Been Updated info: type: object properties: RecordId: type: string InitiativeId: type: string '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /GetOutcome: post: tags: - Records summary: Get outcome list for an initiative description: 'This function retrieves a list of outcome details, including ID, outcome name, outcome group name, and outcome group ID for a specified initiative. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: getOutcome requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - initiativeid properties: module: type: string default: data initiativeid: type: string description: The Initiative ID you wish to extract the Outcome List for. responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' outcomes: type: array items: type: object properties: Id: type: string Name: type: string OutcomeGroupId: type: string OutcomeGroupName: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /GetCallIDs: post: tags: - Records summary: Get Call IDs for an initiative description: 'This function extracts the Call IDs for a specific, or all, initiatives for a specific date and time range. Recommended polling timeframe is every 5 minutes. **Pagination:** Results are paginated with a limit of 200 records per page. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: getCallIDs requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - initiativeid - fromdate - todate properties: initiativeid: type: string description: The Initiative ID to extract the calls for. Set to 0 for all initiatives. fromdate: type: string description: 'Start date and time. Format: ''yyyy-mm-dd hh:mm:ss''' todate: type: string description: 'End date and time. Format: ''yyyy-mm-dd hh:mm:ss''' predictive: type: string enum: - '0' - '1' description: 'Optional: Include predictive dialer Call IDs (1) or only Agent Call IDs (0).' page: type: integer default: 1 responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' records: type: array items: type: object properties: Id: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /GetLastCall: post: tags: - Records summary: Get the last call for a record description: 'This function returns the last Call Outcome ID, User ID, Call ID, and Date/Time for a specific record. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: getLastCall requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - initiativeid - recordid properties: module: type: string default: data initiativeid: type: string description: The Initiative ID to search. recordid: type: string description: The Record ID of the record to search. responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' calls: type: array items: type: object properties: CallId: type: string CompletedDateTime: type: string OutcomeId: type: string UserId: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /GetAvailableRecords: post: tags: - Records summary: Get available records for a data set or initiative description: 'Retrieve the records available for a specified data set or initiative. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: getAvailableRecords requestBody: required: false content: application/x-www-form-urlencoded: schema: type: object properties: datasetid: type: string description: 'Optional: The Data Set ID to check.' initiativeid: type: string description: 'Optional: The Initiative ID to check. Set to 0 for all initiatives.' responses: '200': description: Success content: application/json: schema: type: object properties: info: type: object properties: count: type: string details: type: array items: type: object properties: datasetid: type: string available: type: string today: type: string now: type: string fresh: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /Updatemasterbyfieldname: post: tags: - Records summary: Update master data by field name description: 'This function updates master data records by a specific field name and condition. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: updateMasterByFieldName requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - initiativeid - updatefieldname - updatefieldvalue - whereconditionField - whereconditionValue properties: initiativeid: type: string description: The Initiative ID. updatefieldname: type: string description: Field name to update. updatefieldvalue: type: string description: New value for the field. fieldtypeisnumeric: type: string description: Set to 1 if the field is a numeric value. whereconditionField: type: string description: Field name for the WHERE condition. whereconditionValue: type: string description: Field value for the WHERE condition. responses: '200': description: Success '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /CreateDataSet: post: tags: - Data Sets summary: Create a data set description: 'This function allows you to create a Data Set for a specified Initiative. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: createDataSet requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - initiativeid - datasetname properties: initiativeid: type: string description: The Initiative ID to create the dataset for. datasetname: type: string description: The name for the data set. active: type: string enum: - '0' - '1' description: 'Optional: Set the dataset to active (1) or inactive (0).' responses: '200': description: Success content: application/json: schema: type: object properties: success: type: string example: Dataset Has Been Created info: type: object properties: DatasetName: type: string DatasetId: type: string InitiativeId: type: string '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /UpdateDataSetStatus: post: tags: - Data Sets summary: Update data set status description: Update the active and hidden status of a data set. operationId: updateDataSetStatus requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - datasetid properties: datasetid: type: string description: The Data Set ID to update. active: type: string enum: - '0' - '1' description: Set the dataset to active (1) or inactive (0). hide: type: string enum: - '0' - '1' description: Set the dataset as hidden (1) or visible (0). responses: '200': description: Success content: application/json: schema: type: object properties: success: type: string example: Dataset Has Been Updated info: type: object properties: DatasetId: type: string Active: type: string Hidden: type: string '400': description: Bad Request '401': description: Unauthorized /GetInitiatives: post: tags: - Campaigns summary: Get initiatives description: 'This function provides a list of the Initiatives configured in the system. **Pagination:** Results are paginated with a limit of 200 records per page. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: getInitiatives requestBody: required: false content: application/x-www-form-urlencoded: schema: type: object properties: page: type: integer default: 1 responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' initiatives: type: array items: type: object properties: ContactTypeId: type: string CreatedBy: type: string CreatedDate: type: string Description: type: string HideDisplay: type: string Id: type: string IsMasterInitiative: type: string MasterInitiativeId: type: string Name: type: string OutboundCID: type: string ShortName: type: string StatusId: type: string description: 1=Running, 2=Stopped TimeZoneId: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /GetCLIs: post: tags: - Campaigns summary: Get available caller IDs description: 'This function provides a list of available Caller IDs and their IDs. **Pagination:** Results are paginated with a limit of 200 records per page. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: getCLIs requestBody: required: false content: application/x-www-form-urlencoded: schema: type: object properties: page: type: integer default: 1 responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' clis: type: array items: type: object properties: CallerId: type: string Id: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /UpdateCLI: put: tags: - Campaigns summary: Update caller ID for an initiative description: 'This function allows the caller ID for a specific initiative to be set using the ID derived from the `GetCLIs` function. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: updateCLI requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - initiativeid - cliid properties: initiativeid: type: string description: The Initiative ID to update the CLI for. cliid: type: string description: The ID of the caller ID to set. Derived from the `GetCLIs` function. responses: '200': description: Success content: application/json: schema: type: object properties: success: type: string example: CLI Has Been Updated '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /AgentStatusHistory: post: tags: - Agents summary: Get agent status history description: 'This function allows you to extract the agent status history for a specific status for an agent. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: agentStatusHistory requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - userid - date properties: userid: type: string description: The User ID of the agent. date: type: string description: 'The date to extract history for. Format: ''yyyy-mm-dd''' example: '2023-10-23' statusid: type: string description: 'The Status ID to filter by: 0=Never Logged In, 1=Logged In, 2=Waiting, 3=Paused, 4=On Call, 5=Logged Out, 6=System Assigning Record, 7=Previewing Record, 8=Preview Dialling Record, 9=Manual Dialling Record, 10=Transferring Record, 11=In Conference, 12=Wrapping ' responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' activities: type: array items: type: object properties: CallId: type: string StartTime: type: string EndTime: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /AgentStatusTime: post: tags: - Agents summary: Get total time per agent status description: 'This function retrieves the total time, in seconds, for each status that the agent was in for a specific date. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: agentStatusTime requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - date - userid properties: date: type: string description: 'The date to extract status time for. Format: ''yyyy-mm-dd''' userid: type: string description: The User ID of the agent. responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' activities: type: array items: type: object properties: Name: type: string UserId: type: string Waiting: type: string description: Total seconds in Waiting status Paused: type: string description: Total seconds in Paused status Previewing: type: string description: Total seconds in Previewing status PreviewDialing: type: string description: Total seconds in Preview Dialing status Talking: type: string description: Total seconds in Talking (On Call) status Wrapping: type: string description: Total seconds in Wrapping status '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /GetAgentStatusIDs: post: tags: - Agents summary: Get agent status IDs description: 'This function extracts the Agent Status IDs and Agent Status Names for all or a specific status. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: getAgentStatusIDs requestBody: required: false content: application/x-www-form-urlencoded: schema: type: object properties: name: type: string description: The name of the status to search (e.g. 'Wait' returns Waiting). Send empty string to return all. responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' entries: type: array items: type: object properties: Id: type: string Name: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /AgentFirstLastActivity: post: tags: - Agents summary: Get agent first and last activity description: 'This function provides the first and last activity for an agent for a specific day. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: agentFirstLastActivity requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - date - userid properties: date: type: string description: 'The date to extract. Format: ''yyyy-mm-dd''' userid: type: string description: The User ID of the agent. responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' activities: type: array items: type: object properties: StartTime: type: string EndTime: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /GetAgentStatus: post: tags: - Agents summary: Get current agent status description: 'This function retrieves the current status of an agent from the system. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: getAgentStatus requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - userid properties: userid: type: string description: User ID of the agent. responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' agents: type: array items: type: object properties: Id: type: string Name: type: string Status: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /UpdateAgentStatus: put: tags: - Agents summary: Update agent status description: 'This function changes the status of a specified user. Should only be used with API Users created via `CreateApiUser`. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: updateAgentStatus requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - statusid - agentid properties: statusid: type: string description: 'The Status ID to set: 0=Never Logged In, 1=Logged In, 2=Waiting, 3=Paused, 4=On Call, 5=Logged Out, 6=System Assigning Record, 7=Previewing Record, 8=Preview Dialling Record, 9=Manual Dialling Record, 10=Transferring Record, 11=In Conference, 12=Wrapping ' agentid: type: string description: The User ID of the agent. responses: '200': description: Success content: application/json: schema: type: object properties: success: type: string example: Agent Status Has Been Updated info: type: object properties: AgtStatHistId: type: string '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /GetUsers: post: tags: - Users summary: Get all users description: 'This function retrieves a list of all users configured in the system. **Pagination:** Results are paginated with a limit of 200 records per page. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: getUsers requestBody: required: false content: application/x-www-form-urlencoded: schema: type: object properties: page: type: integer default: 1 responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' users: type: array items: type: object properties: CRM_ID: type: string Email: type: string FirstName: type: string Id: type: string Surname: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /CreateApiUser: post: tags: - Users summary: Create an API-only user description: 'This function creates an API-only user in the platform (cannot log into the outbound interface directly). | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: createApiUser requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - username - firstname - surname properties: username: type: string description: The username in the form of an email address. firstname: type: string description: The first name of the user. surname: type: string description: The surname of the user. responses: '200': description: Success content: application/json: schema: type: object properties: success: type: string example: API User Has Been Created info: type: object properties: FirstName: type: string Surname: type: string UserId: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /DeleteUsers: put: tags: - Users summary: Delete a user description: 'This function deletes a specified user from the system. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: deleteUsers requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - userid properties: userid: type: string description: The User ID to delete. responses: '200': description: Success content: application/json: schema: type: object properties: success: type: string example: Users Have Been Trashed info: type: object properties: UserId: type: string '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /SetCRMID: put: tags: - Users summary: Set CRM ID for a user description: 'This function sets the CRM ID of a specified user for integrations and callback URL purposes. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: setCRMID requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - userid - crmid properties: userid: type: string description: The User ID to update the CRM ID for. crmid: type: string description: The CRM ID to set for the user. responses: '200': description: Success content: application/json: schema: type: object properties: success: type: string example: CRM Id has been set up info: type: object properties: CRMID: type: string UserId: type: string '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /SetExtension: put: tags: - Users summary: Set agent extension description: 'This function sets the extension of an agent for connecting calls via an external voice platform. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: setExtension requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - userid - extension properties: userid: type: string description: The User ID to set the extension for. extension: type: string description: The SIP extension number, dial-in phone number, or WebRTC endpoint. responses: '200': description: Success content: application/json: schema: type: object properties: success: type: string example: Extension has been set up info: type: object properties: UserId: type: string Extension: type: string '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /GetUserId: post: tags: - Users summary: Get user ID by key-value pair description: 'This function retrieves a User ID based on a key-value pair stored in the user''s CRM ID field. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: getUserId requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - searchkey - searchval properties: searchkey: type: string description: The key of the pair to search for. searchval: type: string description: The value of the pair to search for. responses: '200': description: Success content: application/json: schema: type: object properties: UserId: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /GetSkillIDs: post: tags: - Skills summary: Get skill IDs description: 'This function returns a collection of skills based on the details you request (by Initiative ID, skill name, or Agent ID). **Pagination:** Results are paginated with a limit of 200 records per page. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: getSkillIDs requestBody: required: false content: application/x-www-form-urlencoded: schema: type: object properties: initiativeid: type: string description: 'Optional: The Initiative ID to query the skills for.' skillname: type: string description: 'Optional: The name of the skill to query.' agentid: type: string description: 'Optional: The Agent ID to query the skills for.' responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' skills: type: array items: type: object properties: Id: type: string Name: type: string Description: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /GetSkillsInfo: post: tags: - Skills summary: Get detailed skill information description: 'Retrieve detailed information about a specific Skill, including assigned agents, groups, and initiatives. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 404 | Not Found | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: getSkillsInfo requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - skillid properties: skillid: type: string description: The Skill ID to retrieve information for. responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' skills: type: array items: type: object properties: Id: type: string Name: type: string Description: type: string Agents: type: array items: type: object properties: Id: type: string Name: type: string SkillLevel: type: string Groups: type: array items: type: object properties: Id: type: string Name: type: string SkillLevel: type: string Type: type: string Initiatives: type: array items: type: object properties: Id: type: string Name: type: string Weight: type: string FilterId: type: string '400': description: Bad Request '401': description: Unauthorized '404': description: Not Found '405': description: Method Not Allowed '429': description: Too Many Requests /AddEditInitiativeToSkill: put: tags: - Skills summary: Add or edit an initiative in a skill description: 'This function connects an initiative with an existing skill. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: addEditInitiativeToSkill requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - skillid - initiativeid - weight properties: skillid: type: string description: Skill ID to add the Initiative to. initiativeid: type: string description: Initiative ID to add to the skill. weight: type: string description: 'Weight of skill: 100–10 in steps of 10 (100=High, 10=Low). Default and recommended value is 100.' filterid: type: string description: 'Optional: ID of the filter to use for records assigned to this skill.' responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' skills: type: array items: type: object '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /AddEditUserToSkill: put: tags: - Skills summary: Add or edit a user in a skill description: 'This function is used to add a User to a specific Skill. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: addEditUserToSkill requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - skillid - userid - skilllevel properties: skillid: type: string description: ID of the skill to assign the user to. userid: type: string description: User ID of the user to assign to the skill. skilllevel: type: string description: 'Skill level: 10–1 (10=High, 1=Low). Default and recommended setting is 10.' responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' skills: type: array items: type: object '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /RemoveInitiativeFromSkill: put: tags: - Skills summary: Remove an initiative from a skill description: 'This function removes an Initiative from a Skill. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: removeInitiativeFromSkill requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - skillid - initiativeid properties: skillid: type: string description: Skill ID from which the Initiative will be removed. initiativeid: type: string description: The Initiative ID to remove from the skill. responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' skills: type: array items: type: object '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /RemoveUserFromSkill: put: tags: - Skills summary: Remove a user from a skill description: 'This function removes a user from a specific skill. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: removeUserFromSkill requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - skillid - userid properties: skillid: type: string description: The Skill ID to remove the user from. Set to 0 to remove the user from ALL skills. userid: type: string description: The User ID of the user to remove. responses: '200': description: Success content: application/json: schema: type: object properties: info: $ref: '#/components/schemas/PaginationInfo' skills: type: array items: type: object '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /CompleteCall: put: tags: - Calls summary: Complete a call description: 'This function completes a specified call. Outcomes can be derived from the `GetOutcome` function. Optionally set an agent callback by supplying a User ID and callback date/time. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: completeCall requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - callid - outcomeid properties: callid: type: string description: Call ID of the call to complete. outcomeid: type: string description: Outcome ID to set on the call. callbackdatetime: type: string description: 'Optional: Callback date and time. Format: ''yyyy-mm-dd hh:mm:ss''' userid: type: string description: 'Optional: User ID to assign the callback to.' responses: '200': description: Success content: application/json: schema: type: object properties: success: type: string example: Call Has Been Completed info: type: object properties: RecordId: type: string InitiativeId: type: string '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /MakeCall: post: tags: - Calls summary: Trigger a phone call description: 'This function allows you to trigger a phone call using the Call ID and Phone Number ID. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: makeCall requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - callid - phonenumberid properties: callid: type: string description: The Call ID of the record to call. phonenumberid: type: string description: The ID of the phone number to dial for that record. responses: '200': description: Success content: application/json: schema: type: object properties: success: type: string example: Call Has Been Placed info: type: object properties: targetno: type: string outboundcallid: type: string '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /CheckDNC: post: tags: - DNC summary: Check if a number is on the DNC list description: 'This function checks if a phone number is on the Do Not Call list for an Initiative. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: checkDNC requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - initiativeid - phonenumber properties: initiativeid: type: string description: The ID of the Initiative to check the DNC for. phonenumber: type: string description: The phone number to check. responses: '200': description: Success content: application/json: schema: type: object properties: OnDNC: type: string enum: - 'true' - 'false' '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /AddToDNC: post: tags: - DNC summary: Add a number to the DNC list description: 'This function adds a phone number to the Do Not Call list for a specified Initiative. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: addToDNC requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - initiativeid - phonenumber properties: initiativeid: type: string description: The ID of the Initiative to add the DNC record to. phonenumber: type: string description: The phone number to add to the DNC. responses: '200': description: Success content: application/json: schema: type: object properties: Added to DNC: type: string '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests /RemoveFromDNC: post: tags: - DNC summary: Remove a number from the DNC list description: 'This function removes a phone number from the Do Not Call list for a specified Initiative. | Response Code | Description | | --- | --- | | 200 | Success | | 400 | Bad Request | | 401 | Unauthorized | | 405 | Method Not Allowed | | 429 | Too Many Requests | ' operationId: removeFromDNC requestBody: required: true content: application/x-www-form-urlencoded: schema: type: object required: - initiativeid - phonenumber properties: initiativeid: type: string description: The ID of the Initiative to remove the phone number from the DNC for. phonenumber: type: string description: The phone number to remove from the DNC. responses: '200': description: Success content: application/json: schema: type: object properties: Removed from DNC: type: string '400': description: Bad Request '401': description: Unauthorized '405': description: Method Not Allowed '429': description: Too Many Requests