Webitel REST API Usage Examples
1. Agents
2. Inbound calls
Upon an incoming call, Webitel sends an HTTP request to the Customer's web service, where the GET request (parameter cid-CallerID Number) contains the client's number if defined. In response, we receive JSON with the parameters necessary for routing:
Number found / not found;
The client has a debt / no deb.
When a call is assigned to an employee (Agent), Webitel sends an HTTP request to the Customer's web service, wherein the body of the POST request passes the parameters necessary to display information about the call in the Customer's system:
event - information about the event:
offering - distribution per Agent,
bridged - Agent answer;
direction - direction of the call:
inbound - incoming,
outbound - outgoing or Dialer call;
queue - identifier of the incoming Queue or Dialer;
member - subscriber identifier ( needed for postprocessing);
attempt - identifier of the Dialer's dialing attempt (required for postprocessing);
uuid - call identifier;
agent - identifier of the Agent or his extension number (need to agree on the format);
cid - client's telephone number.
3. Outgoing call
To make an outgoing call from the Customer's system, the Agent must have a registered SIP phone (software or hardware) and a token to fulfill requests.
An example of a POST request to initiate a call:
https://swagger.webitel.com/#/CallService/CallService_CreateCall
Outgoing call
{
"destination": "Destination number", // required
"from": {
"extension": "Agent's Extension" // required
},
"params": {
"audio": true,
"auto_answer": true,
"record": true,
"variables": {
"additionalProp1": "string", // Additional variables for the client can be used for statistics and outgoing call routing.
"additionalProp2": "string",
"additionalProp3": "string"
}
}
}
4. Dialer
4.1. Download Members to the Dialer
Lists of Members are loaded into each Dialer separately.
To download Members to the Dialer, you must have the identifier of the Dialer and the administrator's token key.
POST request examples:
Add only one Member: https://swagger.webitel.com/#/MemberService/CreateMember
Add an array of Members: https://swagger.webitel.com/#/MemberService/CreateMemberBulk
To load Members into the Dialer concerning a particular Agent, you must use the Bucket. A Bucket is created for each Agent for which a Member must be bound. Thus, when downloading a Member, the Bucket of the responsible Agent is indicated. To do this, use the POST request block:
4.1.1. An example of Soft and Precollection Dialers
An example of Soft and Precollection dialers
{
"items": [
{
"communications": [
{
"description": "Description1", //a field to which you can pass data on a particular destination. This description can be sent in hooks when calling.
"destination": "Destination", //number or another edition means of communication
"priority": 0, // the priority of the destination within the Member. Works when there are several numbers within one communications array
"type": {
"id": "1"
}
}
],
"expire_at": "string", // dialer termination time for this Member, timestamp (end of the current day)
"name": "Member1",
"priority": 1, // Member priority within the same Queue.
"variables": {
"additionalProp1": "string", // additional variables for the client, which can be used for statistics and are available for sending to a third-party system by event
"additionalProp2": "string",
"additionalProp3": "string"
}
},
{
"communications": [
{
"description": "Description1",
"destination": "Destination",
"priority": 0,
"type": {
"id": "1"
}
},
{
"description": "Description1",
"destination": "Destination",
"priority": 0,
"type": {
"id": "1"
}
},
{
"description": "Description2",
"destination": "Destination",
"priority": 10,
"type": {
"id": "2"
}
}
],
"expire_at": "string",
"name": "Member2",
"priority": 100,
"variables": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
}
}
]
}
4.1.2. An example of a Dialer with binding to an Agent
An example of a dialer with binding to an Agent:
{
"items": [
{ "bucket": {
"id": "1" // The ID of the Bucket through which the agent and client are linked.
},
"communications": [
{
"description": "Description1", // a field to which you can pass data on a particular destination. This description can be sent in hooks when calling.
"destination": "Destination", //number or another edition means of communication
"priority": 0, // The priority of destination within the Member. It works when there are several numbers within one communications array
"type": {
"id": "1"
}
}
],
"expire_at": "string",
"name": "Member1",
"priority": 1, // Member priority within the same Queue
"variables": {
"additionalProp1": "string", // additional variables for the client, which can be used for statistics and are available for sending to a third-party system by event
"additionalProp2": "string",
"additionalProp3": "string"
}
},
{ "bucket": {
"id": "2"
},
"communications": [
{
"description": "Description1",
"destination": "Destination",
"priority":0,
"type": {
"id": "1"
}
},
{
"description": "Description1",
"destination": "Destination",
"priority": 0,
"type": {
"id": "1"
}
},
{
"description": "Description2",
"destination": "Destination",
"priority": 10,
"type": {
"id": "2"
}
}
],
"expire_at": "string",
"name": "Member2",
"priority": 100,
"variables": {
"additionalProp1": "string",
"additionalProp2": "string",
"additionalProp3": "string"
}
}
]
}
4.1.3. Example for Outbound IVR Dialer
The variables field is passed an array of variable values to be passed, including the parameters that will be voiced in Text-to-speech.
Parameters to pass in variables
Name of Outbound IVR Dialer | Variables |
---|---|
Outbound IVR | Name of the Member |
The amount of the debt | |
Name of audio file 1 | |
Name of audio file 2 | |
Name of audio file 3 |
Example for dialer Outbound IVR
4.2. Cancellation of dialing a Member
To cancel dialing a Member, a PATCH request must be executed: https://swagger.webitel.com/#/MemberService/PatchMember
If you fill stop_cause
with the value cancel
, then the call will not be made to this Member.
For the Member to be included in the call list again, it is necessary to add the value null
or an empty string to stop_cause
.
The rest of the parameters do not need to be filled in.
"stop_cause": "cancel"
4.3. Send a postprocessing result
After the call is completed, the operator must send the call processing status (postprocessing).
Example: https://swagger.webitel.com/#/MemberService/AttemptCallback
Send postprocessing call from Dialer:
The attempt_id field contains the identifier of the dialer's attempt to dial, which is used to send the postprocessing result;
The status field is set to
success
if the call was successful. There will be no re-dialing attempt by the Dialer;The status field is set to
successful
if the call was successful. The Dialer will not try to redial the number. In the min_offering_at field, the timestamp value of the specific time the Dialer called back is passed. The diler's work calendar has the highest priority. If the specified time in the parameter is not included in the working hours of the Dialer, then the call will be made with the highest priority during working hours.
In order to pre-exit the postprocessing of an incoming call, the value success
is passed to the status field.
Description of request parameters;
Name | Type | Description |
---|---|---|
bucket | Bucket in which the Members located | |
id | string | Bucket ID |
name | string | Bucket name |
communications | Type of communication with the Member | |
description | string | Comment |
destination | string | Number or another edition from which the communication was made |
display | string | Display number for Member |
priority | number | Member priority |
resource | The resource through which the attempt occurred | |
id | string | Resource ID |
name | Resource name | |
type | Connection type (e.g. home, mobile) | |
id | string | Connection type ID |
min_offering_at | string | Time of scheduled call |
name | Name | |
priority | Dialing priority | |
queue_id | string | ID of the Queue in which the Member |
skill | Agent skill | |
id | string | Skill ID |
name | string | The name of the skill |
stop_cause | string | Reason for terminating the call |
timezone | Time zone of dialing | |
id | string | Time zone identifier |
name | string | Time zone name |
variables | Variable of the member | |
additionalProp1 | string | Information that is passed in variables |
additionalProp2 | string | Information that is passed in variables |
additionalProp3 | string | Information that is passed in variables |
- 1 1. Agents
- 2 2. Inbound calls
- 3 3. Outgoing call
- 4 4. Dialer
- 4.1 4.1. Download Members to the Dialer
- 4.2 4.2. Cancellation of dialing a Member
- 4.3 4.3. Send a postprocessing result