API Documentation

All API updates are backwards compatible. We reserve the right to introduce new JSON keys in existing API responses at any time. We recommend handling responses defensively by disregarding any unrecognized keys to ensure continued functionality.

Endpoints

The API endpoints fall into a one of a few groupings

  • Agent Endpoints - represents individual agent resources
  • User Status Endpoints - represents individual statuses that the agent widget can be in
  • Agent Activity Endpoints - represents whenever an agent widget changes user status, or receives a notification
  • Calls - represents a single call resource
  • Chats - represents a single chat resource
  • Menu Endpoints - represents the queues that agents are assigned to, and end users will access to receive support from an agent
  • Team Endpoints - represents the teams for which an agent belongs
  • Campaign Endpoints - represents a single campaign resource, and the contacts belonging to the given campaign

Basic Authentication

Requests use basic authentication. To create API credentials go to Settings-> Developer Settings-> API Credentials

  • The subdomain is used as the {{username}} variable
  • The token is used as the {{password}} variable

Every installation will have their own subdomain. To find the subdomain, locate the url in your browser, it should look like:

https://customer.rest.of.url.com

Take that subdomain, the most left value, and substitute it into the {{subdomain}} variable. The remainder would be substituted into the {{domain}} variable.

In the above example, {{subdomain}} would be “customer” and {{domain}} would be “rest.of.url.com”

Base URL

The API uses the following base URL for all of its API requests

https://{{subdomain}}.{{domain}}/manager/api/v1

where a mention to “/calls” means https://{{subdomain}}.{{domain}}/manager/api/v1/calls

Rate Limits

The system limits requests to a rate of 1 request per second per customer.

Agent Endpoints 2

Agent Endpoints provide a means to get agent objects. Each agent object represents a single agent inside of our platform. Please review the model below to see which fields may be considered PII

[
  {
    "id": 0,
    "email": "string", //This may be considered PII
    "created_at": "2018-05-30T20:46:31.333Z",
    "last_login_time": "2018-05-30T20:46:31.333Z",
    "first_name": "string", //This may be considered PII
    "middle_name": "string", //This may be considered PII
    "last_name": "string", //This may be considered PII
    "avatar_url": "string",
    "agent_number": "string",
    "status": {
      "id": 0,
      "wfm_id": 0,
      "name": "string",
      "color": "string",
      "setting": {
        "restricted": true,
        "all_roles_restricted": true,
        "breakthrough_enabled": true
      },
      "custom_roles": [1,2,3]
    },
    "status_updated_at": "2018-05-30T20:46:31.333Z",
    "crm_authenticated": true,
    "online": true,
    "wrap_up": true,
    "call_count": 0,
    "chat_count": 0,
    "location": "string",
    "roles": [
      "agent"
    ],
    "availability_preferences": {
      "id": 0,
      "created_at": "2018-05-30T20:46:31.333Z",
      "updated_at": "2018-05-30T20:46:31.333Z",
      "user_count": 0,
      "filter_rules": {
        "voice_call": {
          "ivr": {
            "incoming": true,
            "campaign": true,
            "voicemail": true,
            "scheduled": true,
            "callback": true
          },
          "mobile": {
            "incoming": true,
            "voicemail": true,
            "scheduled": true,
            "callback": true
          },
          "web": {
            "incoming": true,
            "voicemail": true,
            "scheduled": true,
            "callback": true
          },
          "transfer": true
        },
        "chat": {
          "mobile": {
            "incoming": true
          },
          "web": {
            "incoming": true
          },
          "sms": {
            "incoming": true
          },
          "whatsapp": {
            "incoming": true
          },
          "transfer": true
        }
      }
    },
    "teams": [
      {
        "id": 0,
        "name": "string",
        "parent_id": 0,
        "position": 0,
        "deleted": true,
        "agents_count": 0
      }
    ],
    "channels": [
      {
        "channel_type": "chat",
        "menu": {
          "id": 0,
          "name": "string",
          "parent_id": 0,
          "position": 0,
          "deleted": true,
          "hidden": "string",
          "menu_type": "ivr_menu",
          "output_msg": "string"
        }
      }
    ]
  }
]

Description

ParameterRequiredData TypeDefinitionPostman Variable
pageFALSEStringPairs with per to note what page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200.{{page}}
perFALSEStringPairs with page to note how many records would be included in a page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200.{{per}}
id[]FALSEArray[String]Array[Strings]. Id of records to search and return{{id[]}}
agent_number[]FALSEArray[String]Agent numbers as assigned by the admin at the time of creating an agent{{agent_number[]}}
status_id[]FALSEArray[String]Filters by agent status{{status_id[]}}
online[]FALSEBooleanFilter by if agents are online or not{{online[]}}
wrap_up[]FALSEBooleanFilter by if agents are in wrap up status{{wrap_up[]}}
location[]FALSEArray[String]Filters by agent location{{location[]}}
last_login_time[from]FALSETime in UTCcreates a lower bound of the last login time field. All records returned will be after the inputted value.{{last_login_time[from]}}
last_login_time[to]FALSETime in UTCcreates a upper bound of the last login time field. All records returned will be before the inputted value.{{last_login_time[to]}}
status_updated_at[from]FALSETime in UTCcreates a lower bound of the status updated at field. All records returned will be after the inputted value.{{status_updated_at[from]}}
status_updated_at[to]FALSETime in UTCcreates a upper bound of the status updated at field. All records returned will be before the inputted value.{{status_updated_at[to]}}



Description

Agents Current Status returns all logged in agents and their current status, how long they have been in that status, and additional information to indicate if the agent is on hold and for how long.


Agent Activity Logs Endpoints 1

Agent activity logs are records created at any time the widget’s state has changed. It can be from logging into the widget, getting a deltacast call notification, or accepting a call among other statuses. Each activity creates a new new object. Please review the model below to see which fields may be considered PII

[
  {
    "id": 0,
    "agent_id": 0,
    "whodunnit": {
      "id": 0,
      "name": "string", //This may be considered PII
      "last_name": "string", //This may be considered PII
      "first_name": "string", //This may be considered PII
      "agent_number": "string",
      "avatar_url": "string"
    },
    "status": {
      "id": 0,
      "wfm_id": 0,
      "name": "string",
      "color": "string",
      "setting": {
        "restricted": true,
        "all_roles_restricted": true,
        "breakthrough_enabled": true
      },
      "custom_roles": [1,2,3]
    },
    "started_at": "2018-06-06T21:12:24.766Z",
    "ended_at": "2018-06-06T21:12:24.766Z",
    "duration": 0,
    "activity": "login",
    "call_id": 0,
    "chat_id": 0
  }
]

Below is a summary of every activity that can result in an an activity log to be created.

ActivityDescription
chat_picked_upEvent that occurs when an agent picks up an agent
chat_pick_up_attemptEvent that occurs when an agent attempts to become the responding agent
chat_notification_offeredEvent that occurs once an end user request a chat session and a notification is sent to agents assigned to that queue.
call_notification_offeredEvent that occurs when an end user calls and a multicast or deltacast call notification is offered to the agent.
call_pick_up_attemptEvent that occurs when an agent attempts to pick up a multicast or deltacast call.
call_picked_upEvent that occurs when an agent answers a multicast or deltacast call.
deltacast_call_notification_offeredEvent that notes that an end user has called into a queue with multicast where a deltacast call is then broadcasted to an agent in that queue.
deltacast_call_pick_up_attemptEvent that occurs when an agent tries to answer a deltacsted call
deltacast_call_picked_upEvent that occurs when an agent successfully answers a deltacasted call.
deltacast_call_missedEvent that occurs when an agent does not answer their deltacasted call
multicast_call_notification_offeredEvent that notes that an end user has called into a queue with multicast where a multicast call is then broadcasted to the agents in that queue
multicast_call_pick_up_attemptEvent that occurs when a multicasted call has been attempted to be answered by an agent
multicast_call_picked_upEvent that occurs when a multicasted call has been answered by an agent
call_outbound_dialingEvent that occurs when an agent uses the dial pad in the widget to call an end user.
user_status_changedEvent that occurs when an agent changes the state their widget is in
loginEvent that occurs when an agent logs out of the widget
logoutEvent that occurs when an agent logs into the widget
loginEvent that occurs when an agent logs out of the widget
status_after_inquiries_appliedThis event logs when the agent’s pending status update is applied in the widget.
Description

ParameterRequiredData TypeDefinitionPostman Variable
sort_columnFALSEStringSorts response based on any field in the response object.{{sort_column}}
sort_directionFALSEASC or DESCNotes the direction of the sort, whether ascending or descending{{sort_direction}}
pageFALSEStringPairs with per to note what page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200.{{page}}
perFALSEStringPairs with page to note how many records would be included in a page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200.{{per}}
started_at[from]FALSETime in UTCcreates a lower bound of the started at field. All records returned will be after the inputted value.{{started_at[from]}}
started_at[to]FALSETime in UTCcreates a upper bound of the started at field. All records returned will be before the inputted value.{{started_at[to]}}
ended_at[from]FALSETime in UTCcreates a lower bound of the ended at field. All records returned will be after the inputted value.{{ended_at[from]}}
ended_at[to]FALSETime in UTCcreates a upper bound of the ended at field. All records returned will be before the inputted value.{{ended_at[to]}}
duration[from]FALSENumbercreates a lower bound of the duration field. All records returned will be after the inputted value.{{duration[from]}}
duration[to]FALSENumbercreates a upper bound of the duration field. All records returned will be before the inputted value.{{duration[to]}}
id[]FALSEArray[String]Array[Strings]. Id of records to search and return{{id[]}}
agent_id[]FALSEArray[String]Filters response by agent id{{agent_id[]}}
activity[]FALSEArray[String]filters records by what task/activity the agent has accomplished. The possible values are: login, logout, call_outbound_dialing, deltacast_call_notification_offered, deltacast_call_pick_up_attempt, deltacast_call_picked_up, deltacast_call_projected, deltacast_call_missed, deltacast_call_bounced, multicast_call_notification_offered, multicast_call_pick_up_attempt, multicast_call_picked_up, user_status_changed, chat_notification_offered, chat_pick_up_attempt, chat_picked_up, status_after_inquiries_applied{{activity[]}}
whodunnit_id[]FALSEArray[String]Filters response by agent id. Whodunnit is a subset of the agent object, and uses the same agent_id as its primary key{{whodunnit_id[]}}
call_id[]FALSEArray[String]Filters records by inputted call id’s{{call_id[]}}
chat_id[]FALSEArray[String]Filters records by inputted chat id’s{{chat_id[]}}



Calls Endpoints 1

A call object is created for every single call that is made into, or out of our platform. Please review the model below to see which fields may be considered PII.

  {
    "id": 0,
    "parent_id": 0,
    "lang": "en",
    "call_type": "Voice Inbound (App)",
    "status": "scheduled",
    "sub_status": "Scheduled: Disconnected by unknown",
    "created_at": "2018-06-07T19:49:52.896Z",
    "queued_at": "2018-06-07T19:49:52.896Z",
    "assigned_at": "2018-06-07T19:49:52.896Z",
    "connected_at": "2018-06-07T19:49:52.896Z",
    "ends_at": "2018-06-07T19:49:52.896Z",
    "scheduled_at": "2018-06-07T19:49:52.896Z",
    "updated_at": "2018-06-07T19:49:52.896Z",
    "wait_duration": 0, //Deprecated, please use queue_duration instead
    "queue_duration": 0,
    "call_duration": 0,
    "hold_duration": 0,
    "rating": 0,
    "has_feedback": true,
    "voip_provider": "voip_provider_twilio",
    "out_ticket_id": "string",
    "out_ticket_url": "string",
    "verified": true,
    "recording_url": "string",
    "recording_permission": "not_asked", 
    "voicemail_reason": "not_voicemail",
    "deflection": "no_deflection",
    "disconnected_by": "disconnected_by_unknown",
    "finish_reason": "no_reason",
    "fail_details": "string",
    "fail_reason": "nothing",
    "adapter_fail_code": null,
    "adapter_fail_message": null,
    "support_number": "string",
    "selected_menu": {
      "id": 0,
      "name": "string",
      "parent_id": 0,
      "position": 0,
      "deleted": true,
      "hidden": "string",
      "menu_type": "ivr_menu",
      "output_msg": "string"
    },
    "menu_path": {
      "items_count": 0,
      "name": "string",
      "materialized_path": "string"
    },
    "agent_info": {
      "id": 0,
      "name": "string", //This may be considered PII
      "last_name": "string", //This may be considered PII
      "first_name": "string", //This may be considered PII
      "agent_number": "string",
      "avatar_url": "string"
    },
    "end_user": {
      "id": 0, //This may be considered PII
      "identifier": "string", //This may be considered PII
      "out_contact_id": "string" //This may be considered PII
    },
    "photos": [
      {
        "id": 0, //This may be considered PII
        "photo_type": "photo", //This may be considered PII
        "url": "string" //This may be considered PII
      }
    ],
    "videos": [
      {
        "id": 0, //This may be considered PII
        "url": "string" //This may be considered PII
      }
    ],
    "transfers": [
      {
        "id": 0,
        "status": "transferring",
        "fail_reason": "nothing",
        "created_at": "2018-06-07T19:49:52.896Z",
        "call_duration": 300,
        "wait_duration": 40,
        "assigned_at": "2018-06-07T19:50:32.896Z",
        "connected_at": "2018-06-07T19:50:35.896Z",
        "updated_at": "2018-06-07T19:55:35.896Z",
        "deflection": 0,
        "from_menu": {
          "items_count": 0,
          "name": "string",
          "materialized_path": "string"
        },
        "to_menu": {
          "items_count": 0,
          "name": "string",
          "materialized_path": "string"
        },
        "from_agent": {
          "id": 0,
          "name": "string", //This may be considered PII
          "last_name": "string", //This may be considered PII
          "first_name": "string", //This may be considered PII
          "agent_number": "string",
          "avatar_url": "string"
        },
        "to_agent": {
          "id": 0,
          "name": "string", //This may be considered PII
          "last_name": "string", //This may be considered PII
          "first_name": "string", //This may be considered PII
          "agent_number": "string",
          "avatar_url": "string"
        }
      }
    ],
    "handle_durations": [
        {
            "agent_id": 0,
            "acw_duration": 0,
            "call_duration" 0,
            "menu_path_id": 0,
            "wait_duration": 0,
            "lang": "en",
            "transfer": false,
            "started_at": "2019-07-17T07:27:14.000Z",
            "ended_at": "2019-07-17T07:27:20.000Z",
            "event": "call_finished"
        }
    ],
    "queue_durations": [
        {
            "agent_id": 0,
            "queue_duration" 0,
            "menu_path_id": 0,
            "lang": "en",
            "transfer": false,
            "started_at": "2019-07-17T07:27:14.000Z",
            "ended_at": "2019-07-17T07:27:20.000Z",
            "service_level_abandon_time_threshold": 10,
            "service_level_event": "not_in_sla",
            "service_level_target_percent": 90,
            "service_level_target_time": 60,
            "event": "answered"
        }
    ]
    "participants": [
      {
        "id": 0,
        "type": "end_user",
        "status": "waiting",
        "call_id": 0,
        "user_id": 0, //This may be considered PII
        "end_user_id": 0, //This may be considered PII
        "call_duration": 0,
        "hold_duration": 0,
        "connected_at": "2018-06-07T19:49:52.896Z",
        "ended_at": "2018-06-07T19:49:52.896Z",
        "fail_reason": "nothing",
        "adapter_fail_code": null,
        "adapter_fail_message": null
      },
    "offer_type": null,
    "offer_events": [],
    "answer_type": "manual",
    "outbound_number": null,
    "wait_time_sms": [],
    "in_call_sms": []
    ]
  }
]

The status field can be in any of the following states

Call StatusDescription
SelectingState that occurs when an end user has called into the contact center, but is still navigating the menu options prior to call request from a leaf node.
QueuedState that occurs after the end user has selected a leaf menu node and initiated a call request to be deltcasted or multicasted to an agent.
AssignedState that occurs when an agent is selected to received the end user call. This occurs when an agent picks up a call.
ConnectingState that occurs after an agent is assigned, and is waiting to be establish a connection between the end user and agent.
ConnectedState that occurs when the call has established a connection and the agent and end user are both placed into a call.
FinishedState that occurs when an agent and end user’s conversation ends a call without any errors.
FailedState that occurs when a call ends because of an error. When this status is rendered, a failed reason will also be provided for more context
SwitchingState that occurs when a call fails while trying to connect and our platform attempts to connect the call with a different VOIP provider.
RecoveredState that occurs when a failed call is called back. This new call is a child to the original call. Recovered notes that the call back is finished without error.
ScheduledState that occurs when an end user has chosen to be called in the future as part of a deflection option or has selected to be called in the future via In-Web or In-App.
Action OnlyState that occurs when a call that is handled by our client’s own telephony provider is connected to our iOS or Android SDK.
Action Only FinishedState that occurs when a call that is handled by our client’s own telephony provider is connected to our iOS or Android SDK and finishes
DeflectedState that occurs based on the configuration for overcapacity queues or after hour calls. Deflection options include voicemail, schedule call among others. Deflection will vary based on channel (In-app, IVR, In-web)
VoicemailState that occurs when an end user is deflected to a voicemail option, and opts to leave a voicemail message to listened to later. This state is present when the end user is leaving the voicemail
Voicemail ReceivedState that occurs after an end user has left a voicemail and an agent has not listened to the voicemail
Voicemail ReadState that occurs when an agent has opened the voicemail to listen to.

The call_type field can only be one of the following values

Call StatusDescription
Voice Inbound (IVR)Incoming PSTN call from an end user’s phone.
Voice Inbound (App)Incoming call made from within a iOS or Android application that uses our Mobile SDK.
Voice Callback (Web)Incoming call request made from within our Web SDK
Voice Scheduled (App)Call made from an agent to an end user that was pre-scheduled using the Mobile SDK scheduling functionality.
Voice Scheduled (Web)Call made from an agent to an end user that was pre-scheduled using our Web SDK scheduling functionality
Voice OutboundCall made from an agent to an end user dialed via the dial pad or other method to call an outside phone line.

The service_level_event field can only be one of the following vales

Service Level EventDescription
in_slaCall was answered within SLA
not_in_slaCall was not answered within defined SLA
excludedCall was not included in SLA calculation (e.g. if call was abandoned)

The adapter_fail_code and adapter_fail_message fields can only be one of the following values if not null

Adapter Fail CodeAdapter Fail Message
10001This call encountered an unexpected error.
11001This call expired while waiting in queue.
20001This call was cancelled by the customer.
20002This call was rejected by the customer.
20003This call was abandoned by the customer.
20004This call was abandoned by the customer during menu selection.
21001The call could not be connected; the customer’s line is busy.
21002The dialed phone number is invalid.
21003This call was was not answered by the customer.
22001The push notification to start this call failed to send.
30001This call was cancelled.
30002This expired call was not attended.
31001Unable to detect microphone. Please check your device settings and try again.
31002Unable to access microphone. Please check your device permissions and try again.
32001The selected outbound number is invalid.
32002Unable to connect call to the dialled phone number.
41001An unexpected error occurred with the call connection.
42001An unexpected error occurred with the call connection.
43001This call has encountered an unexpected error.
44001This call has encountered an unexpected error.
44002This call is terminated because the connection timed out.
44003This call has encountered an unexpected error.
90001This call is terminated because no audio was detected.
90002Unable to start the audio device. Please check your audio device permissions and try again.

DEPRECATIONS
wait_duration has been deprecated. Please use queue_duration instead.

Description

ParameterRequiredData TypeDefinitionPostman Variable
connected_at[from]FALSETime in UTCcreates a lower bound of the connected at field. All records returned will be before the inputted value.{{connected_at[from]}}
connected_at[to]FALSETime in UTCcreates an upper bound of the connected at field. All records returned will be before the inputted value.{{connected_at[to]}}
updated_at[from]FALSETime in UTCcreates a lower bound of the updated at field. All records returned will be after the inputted value.{{updated_at[from]}}
updated_at[to]FALSETime in UTCcreates an upper bound of the connected at field. All records returned will be before the inputted value.{{updated_at[to]}}
queued_at[from]FALSETime in UTCcreates a lower bound of the queued at field. All records returned will be after the inputted value.{{queued_at[from]}}
queued_at[to]FALSETime in UTCcreates an upper bound of the queued at field. All records returned will be before the inputted value.{{queued_at[to]}}
rating[from]FALSENumber 1-5 or nullcreates a lower bound of the rating field. All records returned will be after the inputted value.{{rating[from]}}
rating[to]FALSENumber 1-5 or nullcreates an upper bound of the rating field. All records returned will be before the inputted value.{{rating[to]}}
call_duration[from]FALSENumbercreates a lower bound of the call duration field. All records returned will be after the inputted value.{{call_duration[from]}}
call_duration[to]FALSENumbercreates an upper bound of the call duration field. All records returned will be before the inputted value.{{call_duration[to]}}
hold_duration[from]FALSENumbercreates a lower bound of the hold duration field. All records returned will be after the inputted value.{{hold_duration[from]}}
hold_duration[to]FALSENumbercreates an upper bound of the hold duration field. All records returned will be before the inputted value.{{hold_duration[to]}}
agent_id[]FALSEArray[String]Filters response by agent id{{agent_id[]}}
end_user_id[]FALSEArray[String]Filters response based on the end user id{{end_user_id[]}}
call_status[]FALSEArray[String]Return records of a given state in the call lifecycle. The possible values are: scheduled, queued, assigned, connecting, switching, connected, finished, failed, recovered, deflected, selecting, action_only, action_only_finished, voicemail, voicemail_received, voicemail_read{{call_status[]}}
call_fail_reason[]FALSEArray[String]Returns records that have failed in a certain way. The possible values are: nothing, unknown, expired, eu_canceled, eu_rejected, eu_abandoned, eu_in_menu_abandoned, eu_busy, eu_wrong_number, eu_no_answer, eu_noti_failed, ag_canceled, ag_ignored, ag_mic_no_device, ag_mic_denied, voip_twilio_error, voip_tokbox_error, voip_invalid_token, voip_conn_general, voip_conn_timeout, voip_conn_signal{{call_fail_reason[]}}
verified[]FALSEBooleanReturns records that either have been verified (True) or have not been verified (False){{verified[]}}
call_type[]FALSEArray[String]Returns records of a given call type. The possible values are: IncomingCallApp, ScheduledCallApp, OutboundCall, AgentScheduledCall, IvrCall, IncomingCallWeb, ScheduledCallWeb, ActionOnlyCall{{call_type[]}}
support_number[]FALSEArray[String]Filter by the phone number end user used to contact (only for IVR call){{support_number[]}}


Headers
KeyValueDescription
Content-Typeapplication/json

Chats Endpoints 1

Below is a model of the chat resource. Please review the fields to see what may be considered PII.

[
    {
        "id": 31354,
        "lang": "en",
        "chat_type": "Messaging Inbound (App Chat)",
        "status": "finished",
        "sub_status": "Disconnected by end user",
        "created_at": "2019-07-17T07:27:14.000Z",
        "assigned_at": "2019-07-17T07:27:20.000Z",
        "ends_at": "2019-07-17T07:29:02.000Z",
        "updated_at": "2019-07-17T07:29:02.000Z",
        "first_msg_sent_at": "2019-07-17T07:27:26.000Z",
        "last_msg_sent_at": "2019-07-17T07:27:28.000Z",
        "wait_duration": 0, //Deprecated, please use queue_duration instead
        "queue_duration": 0,
        "chat_duration": 0,
        "verified": false,
        "rating": 0,
        "has_feedback": false,
        "out_ticket_id": "string",
        "out_ticket_url": "string",
        "finish_reason": "finish_reason_none",
        "fail_reason": null,
        "message_count": 3,
        "average_response_time": 0,
        "longest_response_time": 0,
        "selected_menu": {
              "id": 0,
              "name": "string",
              "parent_id": 0,
              "position": 0,
              "deleted": true,
              "hidden": "string",
              "menu_type": "ivr_menu",
              "output_msg": "string"
            },
        "menu_path": {
            "items_count": 1,
            "name": "Ringo",
            "materialized_path": "3389"
        },
        "agent_info": {
          "id": 0,
          "name": "string", //This may be considered PII
          "last_name": "string", //This may be considered PII
          "first_name": "string", //This may be considered PII
          "agent_number": "string",
          "avatar_url": "string"
        },
        "end_user": {
          "id": 0, //This may be considered PII
          "identifier": "string", //This may be considered PII
          "out_contact_id": "string" //This may be considered PII
        },
        "photos": [
          {
            "id": 0, //This may be considered PII
            "photo_type": "photo", //This may be considered PII
            "url": "string" //This may be considered PII
          }
        ],
        "videos": [
          {
            "id": 0, //This may be considered PII
            "url": "string" //This may be considered PII
          }
        ],
        "transfers": [
          {
            "id": 0,
            "status": "transferring",
            "fail_reason": "nothing",
            "created_at": "2018-06-07T19:49:52.896Z",
            "from_menu": {
              "items_count": 0,
              "name": "string",
              "materialized_path": "string"
            },
            "to_menu": {
              "items_count": 0,
              "name": "string",
              "materialized_path": "string"
            },
            "from_agent": {
              "id": 0,
              "name": "string", //This may be considered PII
              "last_name": "string", //This may be considered PII
              "first_name": "string", //This may be considered PII
              "agent_number": "string",
              "avatar_url": "string"
            },
            "to_agent": {
              "id": 0,
              "name": "string", //This may be considered PII
              "last_name": "string", //This may be considered PII
              "first_name": "string", //This may be considered PII
              "agent_number": "string",
              "avatar_url": "string"
            }
          }
        ],
        "handle_durations": [
            {
                "agent_id": 0,
                "acw_duration": 0,
                "chat_duration" 0,
                "wait_duration": 0,
                "menu_path_id": 0,
                "lang": "en",
                "transfer": false,
                "started_at": "2019-07-17T07:27:14.000Z",
                "ended_at": "2019-07-17T07:27:20.000Z",
                "event": "chat_finished"
            }
        ],
        "queue_durations": [
            {
                "agent_id": 0,
                "queue_duration" 0,
                "menu_path_id": 0,
                "lang": "en",
                "transfer": false,
                "started_at": "2019-07-17T07:27:14.000Z",
                "ended_at": "2019-07-17T07:27:20.000Z",
                "service_level_abandon_time_threshold": 10,
                "service_level_event": "not_in_sla",
                "service_level_target_percent": 90,
                "service_level_target_time": 60,
                "event": "answered"
            }
        ],
        "participants": [
          {
            "id": 0,
            "type": "end_user",
            "status": "waiting",
            "chat_id": 0,
            "user_id": 0, //This may be considered PII
            "end_user_id": 0, //This may be considered PII
            "entry_type": "queue_or_transfer",
            "call_duration": 0,
            "hold_duration": 0,
            "connected_at": "2018-06-07T19:49:52.896Z",
            "ended_at": "2018-06-07T19:49:52.896Z",
            "fail_reason": "nothing"
          }
        ]
      }
        "offer_type": "cascade",
        "offer_events": [
            {
                "casting_time": "2019-07-17T07:27:15.000Z",
                "group": "Group 1"
            }
        ]
    },

The service_level_event field can only be one of the following vales

Service Level EventDescription
in_slaCall was answered within SLA
not_in_slaCall was not answered within defined SLA
excludedCall was not included in SLA calculation (e.g. if call was abandoned)

DEPRECATIONS

wait_duration has been deprecated. Please use queue_duration instead

Description

ParameterRequiredData TypeDefinitionPostman Variable
sort_columnFALSEStringSorts response based on any field in the response object.{{sort_column}}
sort_directionFALSEASC or DESCNotes the direction of the sort, whether ascending or descending{{sort_direction}}
pageFALSEStringPairs with per to note what page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200.{{page}}
perFALSEStringPairs with page to note how many records would be included in a page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200.{{per}}
assigned_at[from]FALSETime in UTCcreates a lower bound of the assigned at field. All records returned will be after the inputted value.{{assigned_at[from]}}
assigned_at[to]FALSETime in UTCcreates an upper bound of the assigned at field. All records returned will be before the inputted value.{{assigned_at[to]}}
ends_at[from]FALSETime in UTCcreates a lower bound of the ends at field. All records returned will be after the inputted value.{{ends_at[from]}}
ends_at[to]FALSETime in UTCcreates an upper bound of the ends at field. All records returned will be before the inputted value.{{ends_at[to]}}
updated_at[from]FALSETime in UTCcreates a lower bound of the updated at field. All records returned will be after the inputted value.{{updated_at[from]}}
updated_at[to]FALSETime in UTCcreates an upper bound of the updated at field. All records returned will be before the inputted value.{{updated_at[to]}}
created_at[from]FALSETime in UTCcreates a lower bound of the created at field. All records returned will be after the inputted value.{{created_at[from]}}
created_at[to]FALSETime in UTCcreates an upper bound of the created at field. All records returned will be before the inputted value.{{created_at[to]}}
rating[from]FALSENumber 1-5 or nullcreates a lower bound of the rating field. All records returned will be after the inputted value.{{rating[from]}}
rating[to]FALSENumber 1-5 or nullcreates an upper bound of the rating field. All records returned will be before the inputted value.{{rating[to]}}
first_msg_sent_at[from]FALSETime in UTCcreates a lower bound of the first msg sent at field. All records returned will be after the inputted value.{{first_msg_sent_at[from]}}
first_msg_sent_at[to]FALSETime in UTCcreates an upper bound of the first msg sent at field. All records returned will be before the inputted value.{{first_msg_sent_at[to]}}
last_msg_sent_at[from]FALSETime in UTCcreates a lower bound of the last msg sent at field. All records returned will be after the inputted value.{{last_msg_sent_at[from]}}
last_msg_sent_at[to]FALSETime in UTCcreates an upper bound of the last msg sent at field. All records returned will be before the inputted value.{{last_msg_sent_at[to]}}
chat_duration[from]FALSENumbercreates a lower bound of the chat duration field. All records returned will be after the inputted value.{{chat_duration[from]}}
chat_duration[to]FALSENumbercreates an upper bound of the chat duration field. All records returned will be before the inputted value.{{chat_duration[to]}}
message_count[from]FALSENumbercreates a lower bound of the message count field. All records returned will be after the inputted value.{{message_count[from]}}
message_count[to]FALSENumbercreates an upper bound of the message count field. All records returned will be before the inputted value.{{message_count[to]}}
average_response_time[from]FALSENumbercreates a lower bound of the average response time field. All records returned will be after the inputted value.{{average_response_time[from]}}
average_response_time[to]FALSENumbercreates an upper bound of the average response time field. All records returned will be before the inputted value.{{average_response_time[to]}}
longest_response_time[from]FALSENumbercreates a lower bound of the longest response time field. All records returned will be after the inputted value.{{longest_response_time[from]}}
longest_response_time[to]FALSENumbercreates an upper bound of the longest response time field. All records returned will be before the inputted value.{{longest_response_time[to]}}
wait_duration[from]FALSENumbercreates a lower bound of the wait duration field. All records returned will be after the inputted value.{{wait_duration[from]}}
wait_duration[to]FALSENumbercreates an upper bound of the wait duration field. All records returned will be before the inputted value.{{wait_duration[to]}}
id[]FALSEArray[String]Array[Strings]. Id of records to search and return{{id[]}}
agent_id[]FALSEArray[String]Filters response by agent id{{agent_id[]}}
end_user_id[]FALSEArray[String]Filters response based on the end user id{{end_user_id[]}}
chat_type[]FALSEArray[String]Returns records based on how chat was accessed by the end user. Possible values: Messaging Inbound (App Chat), Messaging Inbound (Web Chat), Messaging (SMS){{chat_type[]}}
chat_status[]FALSEArray[String]Returns records based on where the user is in the chat lifecycle. Possible values: queued, assigned, finished, canceled, failed, no_response{{chat_status[]}}
verified[]FALSEBooleanReturns records that either have been verified (True) or have not been verified (False){{verified[]}}
chat_fail_reason[]FALSEArray[String]Returns records based on why a chat may have failed. Possible values: nothing, unknown, no_response, expired{{chat_fail_reason[]}}

The service_level_event value can have the following values. |Service Level Event|Description| |:——-|:————–| |in_sla |Call was answered within SLA| |not_in_sla|Call was not answered within defined SLA| |excluded|Call was not included in SLA calculation (e.g. if call was abandoned) |


Emails Endpoints 1

Below is a model of the email support resource. Please review the fields to see what may be considered PII.

[
    {
        "id": 1442,
        "lang": "en",
        "email_status": "paused",
        "created_at": "2024-01-30T07:09:48.813Z",
        "assigned_at": "2024-01-30T07:09:49.000Z",
        "finished_at": "2024-02-29T10:00:11.000Z",
        "updated_at": "2024-02-29T10:00:11.948Z",
        "queue_duration": 0,
        "email_duration": 10207,
        "out_ticket_id": null,
        "out_ticket_url": null,
        "total_thread_numbers": 2,
        "selected_menu": {
          "id": 0,
          "name": "string",
          "parent_id": 0,
          "position": 0,
          "deleted": true,
          "hidden": "string",
          "menu_type": "email_menu",
          "output_msg": "string"
        },
        "menu_path": {
          "items_count": 0,
          "name": "string",
          "materialized_path": "string"
        },
        "agent_info": {
          "id": 0,
          "name": "string", //This may be considered PII
          "last_name": "string", //This may be considered PII
          "first_name": "string", //This may be considered PII
          "agent_number": "string", //This may be considered PII
          "avatar_url": "string"
        },
        "end_user": {
          "id": 0, 
          "identifier": "string", //This may be considered PII
          "out_contact_id": "string"
        },
        "email_attachments": [
          {
            "id": 0, 
            "file_type": "email_content",
            "url": "string" //This may be considered PII
          }
        ],
        "email_threads": [
          {
              "id": 0,
              "subject": "string", //This may be considered PII
              "attachment_count": 0,
              "direction": "string",
              "is_read": true,
              "is_draft": false,
              "created_at": "2023-12-27T09:55:05.546Z",
              "updated_at": "2023-12-27T09:55:50.701Z"
          },
        ],
        "transfers": [
          {
            "id": 0,
            "status": "transferring",
            "created_at": "2024-01-12T19:49:52.896Z",
            "updated_at": "2024-01-12T19:55:35.896Z",
            "from_menu": {
              "items_count": 0,
              "name": "string",
              "materialized_path": "string"
            },
            "to_menu": {
              "items_count": 0,
              "name": "string",
              "materialized_path": "string"
            },
            "from_agent": {
              "id": 0,
              "name": "string", //This may be considered PII
              "last_name": "string", //This may be considered PII
              "first_name": "string", //This may be considered PII
              "agent_number": "string", //This may be considered PI
              "avatar_url": "string"
            },
            "to_agent": {
              "id": 0,
              "name": "string", //This may be considered PII
              "last_name": "string", //This may be considered PII
              "first_name": "string", //This may be considered PII
              "agent_number": "string", //This may be considered PI
              "avatar_url": "string"
            }
          }
        ],
        "handle_durations": [
            {
                "agent_id": 0,
                "email_duration": 0,
                "menu_path_id": 0,
                "menu_path": "string",
                "lang": "en",
                "transfer": false,
                "transfer_id": 1,
                "assignment_type": "string",
                "started_at": "2024-01-10T07:27:14.000Z",
                "ended_at": "2024-01-10T07:27:20.000Z",
            }
        ],
        "queue_durations": [
            {
                "agent_id": 0,
                "queue_duration": 0,
                "menu_path_id": 0,
                "menu_path": "string",
                "lang": "en",
                "started_at": "2024-01-10T07:27:14.000Z",
                "ended_at": "2024-01-10T07:27:20.000Z",
                "assignment_type": "string",
            }
        ],
        "consumer_handle_durations": [
            {
                "id": 100,
                "email_duration": 314,
                "attachments_count": 10,
                "started_at": "2016-02-19T18:50:08.000Z",
                "ended_at": "2016-02-19T18:55:22.000Z"
            }
        ]
    },
Description

ParameterRequiredData TypeDefinitionPostman Variable
sort_columnFALSEStringSorts response based on any field in the response object.{{sort_column}}
sort_directionFALSEASC or DESCNotes the direction of the sort, whether ascending or descending.{{sort_direction}}
pageFALSEStringPairs with per to note what page of records. For instance, if per is made to be 200 and page is 2, the response would contain record 201-400.{{page}}
perFALSEStringPairs with page to note how many records would be included in a page of records. For instance, if per is made to be 200 and page is 2, the response would contain record 201-400.{{per}}
assigned_at[from]FALSETime in UTCCreates a lower bound of the assigned at field. All records returned will be after the inputted value.{{assigned_at[from]}}
assigned_at[to]FALSETime in UTCCreates an upper bound of the assigned at field. All records returned will be before the inputted value.{{assigned_at[to]}}
finished_at[from]FALSETime in UTCCreates a lower bound of the finished at field. All records returned will be after the inputted value.{{finished_at[from]}}
finished_at[to]FALSETime in UTCCreates an upper bound of the finished at field. All records returned will be before the inputted value.{{finished_at[to]}}
updated_at[from]FALSETime in UTCCreates a lower bound of the updated at field. All records returned will be after the inputted value.{{updated_at[from]}}
updated_at[to]FALSETime in UTCCreates an upper bound of the updated at field. All records returned will be before the inputted value.{{updated_at[to]}}
created_at[from]FALSETime in UTCCreates a lower bound of the created at field. All records returned will be after the inputted value.{{created_at[from]}}
created_at[to]FALSETime in UTCCreates an upper bound of the created at field. All records returned will be before the inputted value.{{created_at[to]}}
id[]FALSEArray[String]Array of strings. Id of records to search and return.{{id[]}}
agent_id[]FALSEArray[String]Filters response by agent id.{{agent_id[]}}
end_user_id[]FALSEArray[String]Filters response based on the end user id.{{end_user_id[]}}
email_status[]FALSEArray[String]Returns records based on where the email is in the email lifecycle. Possible values: unopened, active, paused, resolved, closed, reopened{{email_status[]}}
total_thread_numbers[from]FALSENumberCreates a lower bound of the total thread numbers field. All records returned will be after the inputted value.{{total_thread_numbers[from]}}
total_thread_numbers[to]FALSENumberCreates an upper bound of the total thread numbers field. All records returned will be before the inputted value.{{total_thread_numbers[to]}}



Menus represent a queue that an agent may be assigned to, and options that an end user may select when reaching out to an agent. Each object represents a single menu.

There are three menu endpoints

  1. /menus - pulls a list of menus
  2. /menus/tree - pulls menus in a tree structure, which mimics the path an end user would use to get in touch with an agent
  3. /menus/{:id} - pulls a single menu resource
  4. /menus/current_status - Returns current queue status for menus with consumers waiting in queue.
  5. /menus/sla - Returns SLA for all menu paths from now through the previous specified number of minutes.
  6. /menus/sla_by_queue_group - Returns SLA for all queue groups from now through the previous specified number of minutes.
  7. /menus/operation_hours - Returns the menu operation hour definitions.

Please review the model below to see which fields may be considered PII.

   {
    "id": 0,
    "name": "string",
    "parent_id": 0,
    "position": 0,
    "deleted": true,
    "hidden": "string",
    "menu_type": "ivr_menu",
    "output_msg": "string",
    "agent_assignments": [
      {
        "lang": "en",
        "queue_level": "primary",
        "channel_type": "chat",
        "assignee": {
          "id": 0,
          "name": "string", // This may be considered PII
          "last_name": "string", // This may be considered PII
          "first_name": "string", // This may be considered PII
          "agent_number": "string",
          "avatar_url": "string"
        }
      }
    ],
    "team_assignments": [
      {
        "lang": "en",
        "queue_level": "primary",
        "channel_type": "chat",
        "team": {
          "id": 0,
          "name": "string",
          "parent_id": 0,
          "position": 0,
          "deleted": true,
          "agents_count": 0,
          "assignees": {
            "id": 0,
            "name": "string", // This may be considered PII
            "last_name": "string", // This may be considered PII
            "first_name": "string", // This may be considered PII
            "agent_number": "string",
            "avatar_url": "string"
          }
        }
      }
    ]
  }

Description

ParameterRequiredData TypeDefinitionPostman Variable
sort_columnFALSEStringSorts response based on any field in the response object.{{sort_column}}
sort_directionFALSEASC or DESCNotes the direction of the sort, whether ascending or descending{{sort_direction}}
pageFALSEStringPairs with per to note what page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200.{{page}}
perFALSEStringPairs with page to note how many records would be included in a page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200.{{per}}
id[]FALSEArray[String]Array[Strings]. Id of records to search and return{{id[]}}
name[]FALSEArray[String]Returns records based on name of resource.{{name[]}}
parent_id[]FALSEArray[String]Returns records based on the parent id of the given records{{parent_id[]}}
position[]FALSEArray[String]Returns records based on what position a menu is in{{position[]}}
menu_type[]FALSEArray[String]Returns records based on the type of menu. Possible values: ivr_menu, mobile_menu, web_menu{{menu_type[]}}
hidden[]FALSEBooleanReturns records that have been hidden (True) or not including records that have been hidden (False){{hidden[]}}
with_deletedFALSEBooleanReturns records that have been deleted (True) or not including records that have been deleted (False){{with_deleted}}



Description

ParameterRequiredData TypeDefinitionPostman Variable
menu_typeFALSEStringReturns records based on the type of menu. Possible values: ivr_menu, mobile_menu, web_menu{{menu_type}}
langFALSEStringReturns records that have a specific language property. Possible Values: en, es, fr, de{{lang}}



Description

ParameterRequiredData TypeDefinitionPostman Variable
record_idFALSEStringReturns specific record based on id{{record_id}}
with_deletedFALSEBooleanReturns records that have been deleted (True) or not including records that have been deleted (False){{with_deleted}}



Description

Menus Current Status returns all menus with currently queued calls or chats with additional data on durations of those queued items.


Description

ParameterRequiredData TypeDefinitionPostman Variable
channelTRUEStringString. Values accepted: call, chat{{channel}}
minutesTRUEStringString. The number of minutes to look back from now when calculating SLA. Example, a value of 15 would be requesting SLA for the last 15 minutes for each menu path{{minutes}}


Query
KeyValueDescription
channel{{channel}}

String. Values accepted: call, chat

minutes{{minutes}}

String. The number of minutes to look back from now when calculating SLA. Example, a value of 15 would be requesting SLA for the last 15 minutes for each menu path


Description

ParameterRequiredData TypeDefinitionPostman Variable
channelTRUEStringString. Values accepted: call, chat{{channel}}
minutesTRUEStringString. The number of minutes to look back from now when calculating SLA. Example, a value of 15 would be requesting SLA for the last 15 minutes for each menu path{{minutes}}


Query
KeyValueDescription
channel{{channel}}

String. Values accepted: call, chat

minutes{{minutes}}

String. The number of minutes to look back from now when calculating SLA. Example, a value of 15 would be requesting SLA for the last 15 minutes for each menu path


Description

Returns all menu operation hour definitions


User Status Endpoints 1

User status represents a state that an agent can be in at any time. Each status (either out of the box or a newly configured status) is represented in a single object

[
  {
    "id": 0,
    "wfm_id": 0,
    "name": "string",
    "color": "string",
    "setting": {
      "restricted": true,
      "all_roles_restricted": true,
      "breakthrough_enabled": true
     },
     "custom_roles": [1,2,3]
  }
]


Teams 3

Teams represent a grouping that an agent may be assigned to, which can then be assigned to a queue. Each object represents a single team.

There are three team endpoints

  1. /team - pulls a list of team
  2. /team/tree - pulls teams in a tree structure
  3. /team/{:id} - pulls a single team resource

Please review the model below to see which fields may be considered PII.

[
  {
    "id": 0,
    "name": "string",
    "parent_id": 0,
    "position": 0,
    "deleted": true,
    "agents_count": 0,
    "assignees": {
      "id": 0,
      "name": "string", // This may be considered PII
      "last_name": "string", // This may be considered PII
      "first_name": "string", // This may be considered PII
      "agent_number": "string", // This may be considered PII
      "avatar_url": "string"
    }
  }
]
Description

ParameterRequiredData TypeDefinitionPostman Variable
sort_columnFALSEStringSorts response based on any field in the response object.{{sort_column}}
sort_directionFALSEASC or DESCNotes the direction of the sort, whether ascending or descending{{sort_direction}}
pageFALSEStringPairs with per to note what page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200.{{page}}
perFALSEStringPairs with page to note how many records would be included in a page of records. For instance if per is made to be 200 and page is 2, the response would contain record 201-400, as page 1 would contain 1-200.{{per}}
agents_count[from]FALSENumbercreates a lower bound of the agents count field. All records returned will be after the inputted value.{{agents_count[from]}}
agents_count[to]FALSENumbercreates a upper bound of the agents count field. All records returned will be before the inputted value.{{agents_count[to]}}
id[]FALSEArray[String]Array[Strings]. Id of records to search and return{{id[]}}
name[]FALSEArray[String]Returns records based on name of resource.{{name[]}}
parent_id[]FALSEArray[String]Returns records based on the parent id of the given records{{parent_id[]}}
position[]FALSEArray[String]Returns records based on what position a menu is in{{position[]}}
with_deletedFALSEBooleanReturns records that have been deleted (True) or not including records that have been deleted (False){{with_deleted}}



Description

ParameterRequiredData TypeDefinitionPostman Variable
record_idFALSEStringReturns specific record based on id{{record_id}}
with_deletedFALSEBooleanReturns records that have been deleted (True) or not including records that have been deleted (False){{with_deleted}}




Campaign Endpoints 3

A campaign refers to an outbound auto-dialer feature that sequentially reaches out to a list of contacts, initiates outbound calls, and connects each contact to an available agent. Campaign endpoints provide access to campaign-related data, allowing retrieval of campaign and contact objects.

  • Campaign object: represents a single campaign within the platform.
  • Contact object: represents individual campaign contacts within a specific campaign.

Please review the model below to see which fields may be considered PII.

[
   {
      "campaign_type" : "default",
      "id" : 67,
      "external_campaign_id" : null,
      "max_abandonment_percent" : 3,
      "max_redial_count" : 3,
      "mode" : "preview",
      "name" : "string",
      "overdial_adjustment_multiplier" : 1,
      "queue" : {
         "deleted" : false,
         "hidden" : false,
         "id" : 60,
         "menu_type" : "ivr_menu",
         "name" : "string",
         "output_msg" : null,
         "parent_id" : 59,
         "position" : 4
      },
      "redial_interval_minutes" : 120,
      "status" : "dialing",
      "target_number_to_process" : 1000,
      "created_at" : "2023-04-01T23:23:43.000Z",
      "starts_at" : "2023-04-01T23:28:08.000Z",
      "ends_at" : null,
      "updated_at" : "2023-04-01T23:28:08.000Z",
      "contact_stats" : {
         "Abandoned by Contact" : 0,
         "Abandoned by Dialer" : 0,
         "Average Redials per Number" : 0,
         "Carrier Error" : 0,
         "Completed" : 50,
         "Connected" : 0,
         "Contacts" : 1000,
         "Dialer General Error" : 0,
         "Dialing" : 0,
         "Do Not Call" : 0,
         "Finished" : 40,
         "Invalid Number or Name" : 0,
         "Invalid outbound number" : 0,
         "Not Picked Up" : 0,
         "Not Reached to Contact" : 0,
         "Not reached" : 10,
         "Not yet reached" : 960,
         "Queued" : 0,
         "Reached" : 0,
         "Redial Scheduled" : 0,
         "Redials" : 0,
         "Remaining" : 950,
         "Running" : 0,
         "Skipped" : 0,
         "Skipped & Closed" : 10,
         "Transferred" : 0,
         "Transferred and Finished" : 0,
         "Upcoming" : 950,
         "Voicemail Hung Up" : 0
      }
   }
]

The status field can be in any of the following states

Campaign StatusDescription
createdState that occurs when a campaign is created but not started to do outbound calls.
startedState that occurs when a campaign has just started to do outbound calls but the first dialing out is not yet happening.
dialingState that occurs when a campaign is in middle of dialing outbound calls.
pauseState that occurs after a campaign has been paused by agent or manager.
finishedState that occurs after a campaign has completed all the calls.

The mode field can be in any of the following values

Campaign ModeDescription
previewFor Preview Campaign, an agent is going to connect to the end-user or choose what action to take for a given contact because generally the contact or end-user is known.
predictiveFor Predictive Campaign, an agent is connected to a reservation call and with that call we turn on machine detection, which tells us the response to an outbound call is a human or a machine (ie. voice mail), and only connect the agent to a hunman.
progressiveFor Progressive Campaign, the dialer would first connect to the first available agent. Upon connection, the dialer would call and deliver the first available (a contact that has not been called yet for a given campaign) contact to the agent.

The campaing_type field can be in any of the following values

Campaign TypeDescription
defaultCampaign contacts are from user uploaded CSV files
external_listCampaign contacts are from external/third-party services



Available Variables 88

KeyValueType
subdomain
username
password
page
per
id[]
agent_number[]
status_id[]
online[]
wrap_up[]
location[]
last_login_time[from]
last_login_time[to]
status_updated_at[from]
status_updated_at[to]
sort_column
sort_direction
started_at[from]
started_at[to]
ended_at[from]
ended_at[to]
call_count[from]
call_count[to]
chat_count[from]
chat_count[to]
whodunnit_id[]
agent_id[]
changed_columns
assigned_at[from]
assigned_at[to]
ends_at[from]
ends_at[to]
scheduled_at[from]
scheduled_at[to]
created_at[from]
created_at[to]
connected_at[from]
connected_at[to]
queued_at[from]
queued_at[to]
rating[from]
rating[to]
call_duration[from]
call_duration[to]
hold_duration[from]
hold_duration[to]
end_user_id[]
call_status[]
call_fail_reason[]
verified[]
call_type[]
support_number[]
first_msg_sent_at[from]
first_msg_sent_at[to]
last_msg_sent_at[from]
last_msg_sent_at[to]
chat_duration[from]
chat_duration[to]
message_count[from]
message_count[to]
average_response_time[from]
average_response_time[to]
longest_response_time[from]
longest_response_time[to]
wait_duration[from]
wait_duration[to]
chat_type[]
chat_status[]
chat_fail_reason[]
name[]
parent_id[]
position[]
menu_typestring
menu_type[]
hidden[]
with_deleted
agents_count[from]
agents_count[to]
duration[from]
duration[to]
call_id[]
chat_id[]
activity[]
record_id
langstring
lang[]
updated_at[from]
updated_at[to]