特定のクライアントの特定のタスクの小さなリビジョンをカットすると、その後、タスク(リビジョンではなく、リビジョン)が大規模なものになることがほとんどありません。 それでもなお、顧客間の会話を制御するシンプルなアドオンを作成し、宅配業者を惹きつけました。彼女はそれを取り入れて、外部システムから通話シナリオを管理するツールに成長しました。
問題:コントロールの欠如
私たちのクライアントであるオンラインストアは急速に発展し、すべての注文を時間通りに受取人に届けるのに十分な宅配業者がいない期間が生じ始めました。 ちょうどそのころ、すべてのもののユーバー化にブームがありましたが、彼は配達サービスも迂回しませんでした。
この店は外部の宅配業者を引き付け、栄光に身を任せる準備をしていました。州の人々を雇うことに比べて節約が顕著になりました。 しかし、予想外のことに、配信エラーの割合は下品になりました。
私たち自身の宅配便業者が注文を届けると、すべてがうまくいくことがわかりました。 しかし、関与することで何かが間違っています。 顧客は不満を抱き、注文を受け入れず、Yandex.Marketに否定的なレビューを書きさえします。
宅配便業者が言うことはすべて使用できます...
店はそれを理解したかったのですが、会話を記録しないと不可能な作業でした。もちろん、宅配便業者は携帯電話を使用し、顧客とのコミュニケーションの質を評価する方法はありませんでした。
そして、店舗は、関係する宅配便業者とのやり取りのスキームを変更しました。 それらの番号は別のカテゴリでCRMに取り込まれ、スクリプトを設定して、顧客ではなくストアに電話をかけました。
- http-requestを使用する仮想PBXは、発信者の番号をCRMのストアに送信しました。
- CRMは、その番号が関係する宅配便のものであると判断しました。
- 指示が仮想PBXに送り返され、宅配便の音声プロンプトでデジタル入力の待機が開始されました。
- 宅配便業者が4桁の注文番号をダイヤルしました(11桁の顧客番号の代わりに)。
- 仮想PBXは注文番号をCRMに送信しました。
- 次に、注文番号をクライアントの電話番号と比較し、この番号に到達するように仮想PBX命令を送信しました(またはすぐにクライアントが指定しました)。
- 仮想電話交換機は顧客番号にダイヤルし(店舗番号が表示されました)、宅配便業者に接続しました。
プロトタイプから完成品まで
サーバーシステムのプロトタイピングに適したgetsandbox.comサービスを使用しました。 このサービスのアカウントを使用すると、独自のサブドメインを作成し、それらにhttp要求ハンドラーを登録できます。
JavaScriptを使用してハンドラーを記述します。 サービスボーナス:リクエスト間でデータを保存できる状態システムオブジェクトがあります。 これにより、マルチパスシナリオをシミュレートできます。 さらに、失敗と誤った応答が考えられます。
// req-着信HTTPリクエスト
// res-システム応答
Sandbox.define( '/ crm_integration'、 'GET'、関数(req、res)
{
//応答コードを設定し、エラーを渡すことができます
res.status(200);
//コンテンツのタイプを示します
res.type( 'application / json');
//コンテンツをキャッチします
/ * DispatchIncomingDealは、発信者の番号に応答する方法を尋ねた自己記述関数です。クーリエのカードを取得し、番号の特別な処理を作成しました。これについては記事で説明します* /
res.json(DispatchIncomingDeal(req));
//処理をオフにし、「固定された」答えを出す必要がある場合のスタブ
// res.json( "{\" phone \ ":[\" 79175968108 \ "]}");
});
クライアント要求変数のコンテンツにアクセスするには、reqオブジェクトを使用します。このオブジェクトに対して、名前で値を直接参照します。
行う必要があるのは、宅配便カードを作成するだけで、仮想PBXに接続するときに、numaパラメーターで渡された発信者の番号を探します。
var numa = req.query.numa;
関数FindByNuma(numa)
{
return _.findIndex(state.carriers、function(obj){return(obj.numa === numa);});
}
番号がクーリエカードに記載されている場合は、仮想PBXにクーリエにヒントを与え、彼からのデジタル入力を待つように依頼します。
その結果、ストアは次のスキームを実装しました。
- クライアントと宅配便の交渉が制御されます(通話は仮想PBXを通過し、会話が記録されます)。
- 顧客には携帯電話番号ではなく、店舗番号が表示されます。
- ダイヤル時の宅配便エラーの確率(顧客番号の11桁の代わりに注文の4桁);
- 注文の受取人と宅配便業者は互いの番号を知らないため、両者間の直接接続は不可能です。つまり、関係者は電話やSMSを書いて関係を明確にすることはできません。
スキームが機能していることを確認して、Virtual PBXアドインをInteractive Call Processingと呼ばれる本格的なツールに仕上げました 。 これにより、httpを介した統合をサポートする外部システムからコールスクリプト管理を実装できます。
命令は、uis_test.getsandbox.com / crm_integration?cdr_id = 123&start_time = 1200&input_result = None&numa = 74952345678&numb = 74951234567という形式の呼び出しパラメーターで特定のURIを呼び出すことにより転送されます。
- uis_test.getsandbox.com/crm_integration-仮想PBXからの要求プロセッサーのURI。
- cdr_id-呼び出し識別子;
- start_time-呼び出し開始時間。
- input_result-発信者が入力したDTMFコード。
- numa-発信者の番号。
- numbは、あなたが呼び出している番号です。
外部システムは、仮想PBXのJSON命令が含まれるhttp応答を送信する必要があります。 仮想PBXでのクライアントとサーバーの相互作用にエラーがある場合、フォールバックアクションシナリオを指定する機能を提供しました。
このツールを使用する他のケースと、その助けによって開かれた可能性が興味深い場合は、コメントを共有してください。