優先ワーカーを対象とする
コール センターのコンテキストでは、顧客にはアカウント マネージャーが割り当てられている、または、顧客が特定の worker と関係がある場合があります。 そのため、可能であれば、特定のジョブを特定の worker にルーティングする必要があります。
前提条件
- アクティブなサブスクリプションが含まれる Azure アカウント。 無料でアカウントを作成できます。
- デプロイ済みの Communication Services リソース。 Communication Services リソースを作成します。
- 省略可能: ジョブ ルーターを開始するためのクイックスタートを完了する
ワーカー セレクターの設定
すべての worker に自動的に Id
ラベルが付きます。 ジョブにワーカー セレクターを適用して、特定の worker を対象にできます。
次の例では、特定の worker を対象とするジョブが作成されます。 その worker が 1 分間のオファー有効期間以内にジョブを受け入れない場合、特定の worker に対する条件は無効となり、ジョブは任意の worker に移動できます。
await client.CreateJobAsync(
new CreateJobOptions(jobId: "job1", channelId: "Xbox_Chat_Channel", queueId: queue.Value.Id)
{
RequestedWorkerSelectors =
{
new RouterWorkerSelector(key: "Id", labelOperator: LabelOperator.Equal, value: new RouterValue("<preferred_worker_id>")) {
Expedite = true,
ExpiresAfter = TimeSpan.FromSeconds(45)
}
}
});
await client.path("/routing/jobs/{jobId}", "job1").patch({
body: {
channelId: "Xbox_Chat_Channel",
queueId: queue.body.id,
requestedWorkerSelectors: [
{
key: "Id",
labelOperator: "equal",
value: "<preferred worker id>",
expiresAfterSeconds: 45
}]
},
contentType: "application/merge-patch+json"
});
client.upsert_job(job_id = "job1",
channel_id = "Xbox_Chat_Channel",
queue_id = queue.id,
requested_worker_selectors = [
RouterWorkerSelector(
key = "Id",
label_operator = LabelOperator.EQUAL,
value = "<preferred worker id>",
expires_after_seconds = 45
)
]
)
client.createJob(new CreateJobOptions("job1", "Xbox_Chat_Channel", queue.getId())
.setRequestedWorkerSelectors(List.of(
new RouterWorkerSelector("Id", LabelOperator.EQUAL, new RouterValue("<preferred_worker_id>"))
.setExpiresAfter(Duration.ofSeconds(45.0))
.setExpedite(true))));
ヒント
また、woker ごとに固有のカスタム ラベルを使用できます。