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:
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:
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" } } } |
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:
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:
{ "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" } } ] } |
{ "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" } } ] } |
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 |
{ "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 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": { // additional variables for the client that can be used for statistics and parameters that will be announced in Text-to-speech and are available for sending to a third-party system by event "client_name": "John Doe", "debt_amount": "54000", "audiofile_1": "Greeting" "audiofile_2": "By your debt" "audiofile_3": "The end" } }, { "communications": [ { "description": "Description1", "destination": "Destination", "priority": 0, "type": { "id": "1" } } ], "expire_at": "string", "name": "Member2", "priority": 100, "variables": { "additionalProp1": "string", "additionalProp2": "string", "additionalProp3": "string" } } ] } |
To cancel dialing a Member, a PATCH request must be executed: https://swagger.webitel.com/#/MemberService/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"
After the call is completed, the operator must send the call processing status (postprocessing).
Example: https://swagger.webitel.com/#/MemberService/MemberService_AttemptCallback
Send postprocessing call from Dialer:
success
if the call was successful. There will be no re-dialing attempt by the Dialer;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 |