Job Router の概要
Azure Communication Services の Job Router は、さまざまな通信アプリケーションにわたって顧客との対話の管理を最適化するために設計された堅牢なツールです。 一連の SDK と API を介してアクセスできる Job Router は、事前定義およびラインタイムの規則とポリシーの集まりに基づいて、各顧客との対話 (すなわち "ジョブ") を最適なエージェントまたは自動化されたサービス ("ワーカー") に転送します。 これにより、すべての顧客のニーズに対するタイムリーで効果的な応答が保証され、顧客満足度の向上、生産性の向上、リソースのより効率的な使用につながります。
Job Router は、その中核にある、一体となってシームレスで効率的な通信管理システムを作り出す一連の主要概念に基づいて動作します。 これらには、ジョブ、ワーカー、キュー、チャネル、オファー、配布ポリシーが含まれます。 コンタクト センターで大量の顧客との対話を管理する場合でも、大規模組織で顧客の問い合わせを適切な部門にルーティングする場合でも、小売事業おいて顧客のサービス要求を効率的に処理する場合でも、そのすべてを Job Router で実行できます。 すべての顧客の対話が、最適なエージェントまたは自動化されたサービスによって確実に処理され、ビジネス効率が実現します。
Job Router は、Azure Communication Services チャネル プリミティブに依存しておらず、開発者が包括的なオムニチャネル通信ソリューションを構築するのに役立ちます。 企業は Job Router を使用して、顧客との対話すべてを確実に、適切なタイミングで適切なチャネルにおいて効率的に処理できます。
主要概念
ジョブ
ジョブは、利用可能なワーカー(供給)にルーティングされなければならない仕事の単位(需要)です。 実際のインスタンスは、コール センター、顧客エンゲージメント、またはカスタマー サポートのコンテキストにおける着信通話またはチャットとなります。
ジョブのライフサイクル
- アプリケーションが Job Router SDK を経由してジョブを送信します。
- (省略可) 分類ポリシーを指定した場合、ジョブは分類され、Event Grid を介して JobClassified イベントが送信されます。
- ジョブは、指定されたキュー、または分類ポリシーによって決定されたキューに追加され、JobQueued イベントが Event Grid 経由で送信されます。
- Job Router が、ラベル セレクターと配布ポリシー (キューの場合) に基づいてマッチするワーカーを検索します。
- マッチするワーカーが見つかると、オファーが発行され、OfferIssued イベントが送信されます。
- アプリケーションは SDK を介してオファーを受け入れることができます。ジョブはキューから削除され、
assignmentId
を含む OfferAccepted イベントが送信されます。 - ジョブの完了とクローズは、ワーカー処理の完了後、SDK から
assignmentId
を使用して行うことができます。 こうしてワーカーは解放され、次のジョブを引き受けることができます。
ワーカー
ワーカーとは、ジョブを処理するために利用可能な供給者のことです。 ジョブを受け入れるワーカーを SDK で登録する際に、次の指定を行うことができます。
worker の具体的な例として、顧客との対話またはコンタクト センターのシナリオにおける人間のエージェントが挙げられます。
キュー
キューは、ワーカーによって処理されるのを待っているジョブの順序付きリストです。 ワーカーはキューに登録し、キューから仕事を受け取ります。
キューの概念を説明するため、コンタクト センターのシナリオを使用してみましょう。適切なスキルを備えた担当者が通話に対応できるようになるまで、複数の発信者が保留にされる状況を想像してください。
チャネル
チャネルは、何らかの種類のジョブをグループ化したものです。 ワーカーが作業を受信するように登録するときは、作業を処理できるチャネルと、それぞれが同時に処理できるチャネルの数も指定する必要があります。 チャネルは文字列識別子であり、明示的には作成されません。 チャネルは、voice calls
または chats
の可能性があります。
ジョブを異なるチャネルに割り当てることで、ワークフローを合理化し、各チャネルに関連付けられている特定のニーズや要件に基づいてリソースを効率的に割り当てることが可能になります。
プラン
オファーとは、ジョブ ルータが一致を判断し、特定のジョブを処理するワーカーに対して行うものです。 Job Router SDK でオファーを受け入れるか拒否するかを選択できます。 オファーを無視した場合、配布ポリシーで設定された有効期限に従って期限切れになります。
呼び出しは、ワーカーまで届けられるオファーの実例です。そして、対話が行われようとしていることを示すものであり、速やかに通話に応答し、顧客との会話を行うようエージェントに信号を送ります。
オファーの受け入れフロー
- ジョブ ルーターは、ジョブにマッチするワーカーを見つけると、オファーを作成し、Event Grid を介して OfferIssued イベント を送信します。
- オファーは、Job Router API を使用して受け入れられます。
- ジョブがキューから削除され、ワーカーに割り当てられます。
- ジョブ ルーターは、OfferAccepted Event を送信します。
- この同じジョブの他のワーカーへの既存のオファーはすべて取り消され、OfferRevoked イベントが送信されます。
オファーの拒否フロー
- ジョブ ルーターは、ジョブにマッチするワーカーを見つけると、オファーを作成し、Event Grid を介して OfferIssued イベント を送信します。
- オファーは、Job Router API を使用して拒否されます。
- オファーはワーカーから削除され、異なるジョブへの別のオファー用に容量が開放されます。
- ジョブ ルーターによって OfferDeclined イベントが送信されます。
- ジョブ ルーターは、登録を解除して再登録しない限り、拒否されたオファーをワーカーに再提供しません。
オファーの有効期限フロー
- ジョブ ルーターは、ジョブにマッチするワーカーを見つけると、オファーを作成し、Event Grid を介して OfferIssued イベント を送信します。
- 配布ポリシーで定義された ExpiresAfter 期間内には、オファーの受け入れや拒否は行われません。
- ジョブ ルーターでオファーの有効期限が終了し、OfferExpired イベントが送信されます。
- ワーカーは利用不可と見なされ、自動的に登録解除されます。
- WorkerDeregistered イベントが送信されます。
配布ポリシー
配布ポリシーとは、キュー内のジョブをそのキューに登録されているワーカーにどのように配布するかをコントロールする構成セットです。 この構成には次のものが含まれます。
- オファーの有効期限。
- 分配モードは、複数のワーカーがいる場合に、どの順番でワーカーを選ぶかを定義します。
- ある仕事に対して、いくつの同時オファーを出せるでしょうか。
分散モード
モードの種類は次の 3 つです。
- ラウンド ロビン: ワーカーは
Id
の順に並べられ、オファーを受けた前のワーカーの次のワーカーが選ばれます。 - 最も長いアイドル: 仕事に関して最も長く働いていないワーカー。
- ベストワーカー: まず、その仕事に最も適したワーカーが選ばれます。 ワーカーをランク付けするロジックはカスタマイズ可能で、式や Azure 関数で 2 人のワーカーを比較できます。 例を参照してください
Labels
ワーカー、ジョブ、キューにラベルを添付できます。 ラベルは、string
、number
、boolean
のデータ型を持つキーと値のペアです。
実際の例としては、特定のワーカーのスキルレベル、あるいはチームや地理的な場所などが挙げられます。
ラベル セレクター
ラベル セレクターは、キュー上のワーカーのサブセットをターゲットにするために、ジョブにアタッチできます。
たとえば、チャット チャネルのコンテキストで、着信するチャット メッセージが条件の対象となる現実のシナリオを考えてみましょう。 この条件では、割り当てられるエージェントは、特定の製品に関する最小限の専門性や知識を持っている必要があることを指定します。 この例は、チャット チャネル内で、フィルターと同様にラベル セレクターを使用し、指定された製品において必要な能力を備えているエージェントのサブセットをターゲットにできる方法を示しています。
分類ポリシー
分類ポリシーを使用して、プログラムによってキューを選択したり、ジョブの優先順位を決定したり、ジョブにワーカー ラベル セレクターをアタッチしたりすることができます。
例外ポリシー
例外ポリシーを使用すると、トリガーに基づいてジョブの動作を制御し、目的のアクションを実行することができます。 例外ポリシーはキューにアタッチされているので、キュー内のジョブの動作を制御することができます。