📜 ⬆️ ⬇️

Warned means intellectual callback



Has the customer ordered something and is waiting for it to be brought to him? Is the delivery day agreed in advance? So the courier can leave? Unfortunately no. A courier raid may be pointless and useless, because the customer ... just went to the store, got stuck in a traffic jam, sits in a meeting, falls asleep, goes to the playground with the child - and another 1,000 and one reason why not now. Like a bad football player who was suddenly given a pass. And in order for the transfer to take place, it is necessary to somehow check whether it is convenient for the client, and whether the courier will wander about in vain. In the company SDEK thought about how to do it, and with the help of Voximplant found for themselves the best solution, which - under the cut.

Information about the company:
CDEC is an operator specializing in express delivery of goods and documents. SDEC has about 600 divisions and representative offices in Russia and abroad. The SDEC franchise is among the five most successful franchises according to Forbes.

To the door and back


The courier, within the framework of his official duties, is in the situation of “bring it is known what is known where, but often it is not known when exactly”. CDEC has created a special mobile application to help him, which is used by all couriers. The appendix contains all the information about customers, order invoices and delivery status. And the courier can get his phone number from the client’s card and call him before going to him with a load, so as not to stand in the end without any sense at the door. And everything would be fine, but this process takes time, which the courier could spend on performing his duties. There are no guarantees that the client will respond immediately or that he will respond at all. And if he answers and, for example, wants to postpone the delivery, the courier will also need to call the call center, ask them to contact the customer in order to schedule a delivery for another day.
')
In SDEK decided that you need to somehow simplify the lives of their employees. And now the couriers in the application have an intelligent call button. The courier simply clicks on it, and a robot calls the client instead. The client is satisfied, and the courier works faster and more efficiently on the route.

Operator - the third extra


In addition, it is beneficial for the courier to notify the customer, the service notification is a formal requirement of the SDEK partners whose clients receive the parcels. Live calls by couriers were difficult to audit, and there is no such problem with intellectual calls. Call statuses can be monitored in real time, and every call attempt is recorded.

When the robot calls, the client with the help of IVR reports that he is ready: to accept the order, refuse, postpone the delivery. His answer is displayed in the courier application 30 seconds after the call. If the customer chooses the delivery transfer status, he automatically receives an sms with instructions on how to choose a convenient time on his own. The courier at this time can safely deal with their direct responsibilities - delivery.

The option of a direct call SDEC left to their couriers for special cases. For example, when they need to order a pass to get to the protected area. The whole conversation is recorded for the possibility of quality control.

The courier goes - the call goes


In order to launch an intellectual telephone call, the courier finds in the mobile application cards of customers to whom he plans to call in the next hour, and presses the call button. The Voximplant robot makes up to 3 call attempts and sends the client's response straight to the SDM CRM system. The status selected by the client is loaded from CRM to the courier application.

During the call, the client can select the option to contact the courier if he feels the need. That is why CDEC recommends that couriers launch no more than 5 calls at a time. Then the client will not have to hang on the line.

require(Modules.CallList);
require(Modules.IVR);
var callClient;
var callCourier;
var LANGUAGE = Language.RU_RUSSIAN_FEMALE;
var result = {
answer: " ",
client_phone: "",
courier_phone: "",
id: ""
};
// CallList
VoxEngine.addEventListener(AppEvents.Started, function (e) {
cData = JSON.parse(VoxEngine.customData());
result.client_phone = cData.client_phone;
result.courier_phone = cData.courier_phone;
result.id = cData.id;
callClient = VoxEngine.callPSTN(result.client_phone);
callClient.addEventListener(CallEvents.Connected, clientCallConnected);
callClient.addEventListener(CallEvents.Disconnected, clientCallDisconnected);
callClient.addEventListener(CallEvents.Failed, clientCallFailed);
callClient.detectProgressTone();
callClient.addEventListener(CallEvents.ToneDetected, function(e) {
if (e.VoicemailTone) clientCallFailed();
});
});
function clientCallFailed(event){
CallList.reportError(result, function(arg) {
sendResultCRM();
});
}
function clientCallDisconnected(){
CallList.reportResult(result, function(arg) {
sendResultCRM();
});
}
function clientCallConnected() {
result.answer = " ";
var orderAct = new IVRState("orderAct", {
type: "select",
prompt: {
lang: LANGUAGE,
say: " , 1, - 2, - 3, , 4"
},
nextStates: {
},
timeout: 5000
}, function (input) {
if (input==="1") {
result.answer = "";
thanks();
} else if (input==="2") {
result.answer = "";
thanks();
} else if (input==="3") {
result.answer = " ";
thanks();
} else if (input==="4") {
result.answer = " ";
connectCourier();
} else {
orderAct.enter(callClient);
}
}, function(){
orderAct.enter(callClient);
});
orderAct.enter(callClient);
}
function sendResultCRM() {
setTimeout(function(){
Logger.write(" - ");
Logger.write(": "+result.id);
Logger.write(": "+result.answer);
Logger.write(" : "+result.client_phone);
Logger.write(" : "+result.courier_phone);
VoxEngine.terminate();
}, 1000 * 30)
}
function connectCourier() {
callCourier = VoxEngine.callPSTN(result.courier_phone);
callCourier.addEventListener(CallEvents.Connected, courierCallConnected);
callCourier.addEventListener(CallEvents.Disconnected, courierCallDisconnected);
callCourier.addEventListener(CallEvents.Failed, courierCallFailed);
callCourier.detectProgressTone();
callCourier.addEventListener(CallEvents.ToneDetected, function(e) {
if (e.VoicemailTone) courierCallFailed();
});
}
function thanks(event){
callClient.say(", ", LANGUAGE);
callClient.addEventListener(CallEvents.PlaybackFinished, function(){
callClient.hangup();
});
}
function courierCallFailed(event){
result.answer = " ";
callClient.say(", ", LANGUAGE);
callClient.addEventListener(CallEvents.PlaybackFinished, function(){
callClient.hangup();
});
}
function courierCallConnected(event){
result.answer = " ";
VoxEngine.sendMediaBetween(callClient, callCourier);
}
function courierCallDisconnected(event){
callClient.hangup();
}
view raw gistfile1.txt hosted with ❤ by GitHub

About the benefits of warnings


Intelligent dialing will improve both qualitative and quantitative indicators of delivery. According to forecasts of SDEC, couriers will be able to serve 2 addresses more every day, and the percentage of stupid trips will be minimized.

Now 2,000 couriers from two hundred SDEK units in Russia are connected to the service. Even in test mode, the platform makes about 4 thousand calls every day.

On the friendship of customers and robots


There are lots of scenarios for automating interaction with a client, they are so similar and so different and even very individual. Telephone alerts, automated confirmations, formalized choice using IVR, and so on and so forth. The main thing is to know exactly what the company and the client need. And to implement it quickly and efficiently with Voximplant is not difficult.

Illustration to Kata - Katya Golovatova

Source: https://habr.com/ru/post/335068/


All Articles