1. Agents

  1. Get a List of Agents;
  2. Get information about a particular Agent.

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:

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
{
	"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"
			}
		}
	]
}

4.2. Cancellation of dialing a Member

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"

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/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;

NameTypeDescription 

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



  • No labels
Write a comment…