クライアントは何かを注文し、それが彼に運ばれるのを待っていますか? 配達日は事前に合意しましたか? それで、宅配便は出発できますか? ああ、いや。 宅配便の襲撃は無意味で役に立たない可能性があります。なぜなら、クライアントがただ店に行き、交通渋滞で立ち往生し、会議に座って、眠りに落ち、子供と一緒に遊び場に行ったからです。 突然パスを与えられた悪いサッカー選手のように。 そして、転送が行われるためには、クライアントにとって都合がよいかどうか、また、宅配便業者が無駄にぶら下がるかどうかを何らかの方法で確認する必要があります。 SDEK社はこれを行う方法について考え、Voximplantの助けを借りて、彼ら自身に最適なソリューションを見つけました。
会社情報:
SDEKは、商品や書類の速達を専門とするオペレーターです。 SDEKには、ロシアおよび海外に約600の部門と駐在員事務所があります。 Forbesによると、SDEKフランチャイズは最も成功した5つのフランチャイズの1つです。
ドアと後ろへ
宅配便業者は、彼の職務の枠組みの中で、「知られているものを持ち込むが、多くの場合-正確な時期はわからない」という状況にあります。 SDECは、すべての宅配便業者が使用する特別なモバイルアプリケーションの作成を支援しました。 このアプリケーションには、顧客に関するすべての情報、注文の請求書、および配送ステータスが含まれています。 そして、宅配便業者は、顧客のカードから電話番号を取得し、荷物を持って行く前に電話をかけることができます。これにより、ドアの下で役に立たないようになります。 そして、すべてがうまくいくでしょう、このプロセスだけが、宅配便業者が彼の直接の義務を果たすことに費やすことができる時間をとります。 顧客がすぐに応答するという保証も、まったく応答しないという保証もありません。 そして、彼が応答し、例えば配達を延期したい場合、宅配便業者はコールセンターに電話をかけ、翌日に配達をスケジュールするためにクライアントに連絡するよう依頼する必要があります。
SDECは、従業員の生活を何らかの形で簡素化する必要があると判断しました。 そして今、アプリケーションの宅配便業者はスマートコールボタンを持っています。 宅配便業者はそれをクリックするだけで、代わりにロボットがクライアントを呼び出します。 顧客は満足しており、宅配便業者はより迅速かつ効率的にルートで作業しています。
演算子は3番目の余分です
さらに、宅配業者がクライアントに警告することは有益です。サービス通知は、顧客が小包を受け取ったSDECパートナーの正式な要件です。 宅配便からのライブコールは監査が困難でしたが、インテリジェントダイヤルではこのような問題はありませんでした。 コールステータスはリアルタイムで監視でき、すべてのコール試行が記録されます。
ロボットが鳴ると、クライアントはIVRの助けを借りて、注文を受け入れる、拒否する、配達を転送する準備ができたことを通知します。 彼の回答は、電話の30秒後に宅配便アプリケーションに表示されます。 クライアントが配信転送のステータスを選択すると、クライアントは自分で都合のよい時間を選択する方法を示すSMSを自動的に受け取ります。 この時点での宅配便業者は、彼の直接的な義務である配達を冷静に処理できます。
SDECは、特別な場合のために、直通電話オプションを宅配便業者に任せました。 たとえば、保護区域に入るためにパスを注文する必要がある場合。 会話全体が品質管理のために記録されます。
Courier rides-電話が来ています
インテリジェントコールを開始するために、宅配便業者は、次の1時間以内に電話をかける予定の顧客のモバイルアプリケーションカードを見つけ、通話ボタンを押します。 Voximplantは最大3回の呼び出しを試行し、クライアントの応答をSDEK CRMシステムに直接送信します。 クライアントが選択したステータスは、CRMから宅配便アプリケーションにダウンロードされます。
通話中、クライアントは必要に応じて宅配便業者に連絡するオプションを選択できます。 そのため、SDECは、宅配便業者が一度に5つ以下の通話を開始することを推奨しています。 そうすれば、クライアントは回線にハングアップする必要がなくなります。
|
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(); |
|
} |
アラートの利点について
インテリジェントダイヤルにより、定性的および定量的な配信インジケータが改善されます。 SDECの予測によると、宅配便業者は1日に2つの住所にサービスを提供でき、愚かな出発の割合は最小限に抑えられます。
現在、ロシアの200のSDEK部門の2000人の宅配業者がサービスに接続されています。 テストモードでも、プラットフォームは毎日約4000回の呼び出しを行います。
クライアントとロボットの友情について
クライアントとの対話の自動化には多くのシナリオがあり、それらは非常に類似しており、非常に異なっており、非常に個性的です。 電話アラート、自動確認、IVRを使用した正式な選択など。 主なことは、会社とクライアントが必要とするものを正確に知ることです。 Voximplantでこれを迅速かつ効果的に実現することは難しくありません。
イラストからカタ
-Katya Golovatova