We need a backend programmer to refine the script for API requests, processing, and sending the required information.
On VPS CentOS Stream 8, according to the attached technical specification, a service has been built that receives data on the work of call center employees from the PBX via API, processes it, and sends the data on EWT to the Client via API.
Expected Waiting Time (EWT) — is the expected indicator of how long subscribers need to wait to connect to an operator.
The service is set up in a similar direction; it needs to be copied and configured for the new project.
What needs to be done:
Regarding the API for operation, three parameters are needed:
1) Number of operators online
2) EWT of the queue or average waiting time for the last 10 minutes
3) Number of calls in the queue at the moment
Description of the modifications needed.
Two endpoints are required on our side to which the Client will send requests
1) GET To transmit data regarding the indicators on your platform
Should return json in the following format example
{
"OperatorOnlineCnt" : 5,
"EWT: 35,
"queue_cnt" : 2
}
where
OperatorOnlineCnt(int) - Number of operators online at the moment
EWT (int, seconds) - EWT of the queue or average waiting time for the last 10 minutes, in seconds
queue (int) - Number of calls in the queue at the moment
2) GET/POST
to save and transmit history to us, we need a point that will accept a date as input and return three parameters - received, accepted, missed for the date provided in the request.
As a result:
1. The Client needs to see 3 indicators wrapped in a link and sent to them. + so that they can view them themselves.
OperatorOnlineCnt(int) - Number of operators online at the moment
EWT (int, seconds) - EWT of the queue or average waiting time for the last 10 minutes, in seconds
queue (int) - Number of calls in the queue at the moment
2. We currently have 4 similar projects, but for a different project. One can be copied to create the 5th. Then change the logic.
3. OperatorOnlineCnt(int) - Number of operators online at the moment
there is also such an indicator. We will transmit all that are not offline based on a certain parameter from the corresponding department, which is pulled via API from the PBX.
4. EWT (int, seconds) - EWT of the queue or average waiting time for the last 10 minutes, in seconds
The logic here needs to be refined.
If there is at least one online, free, not in CRM status and not on break - EWT - 1 second or 0. If possible
If there are no free ones, then the calculation for EWT. Data for the last 10 minutes is pulled from the PBX and the average waiting time for a response is calculated based on them. Such an indicator exists there. It is preferable that this statistic is not cumulative, so it does not clutter up space.
5. queue (int) - Number of calls in the queue at the moment
Here too, we need to pull from the Binotel API and provide the number
6. If at least one indicator shows an error due to a timeout from Binotel, then we return the previous indicator.
7. We wrap this data in a link and provide it to the client. There will be a chat with them.
8. And regarding history: to save and transmit history to us, we need a point that will accept a date as input and return three parameters - received, accepted, missed for the date provided in the request.