Freigeben über


Auswählen eines bevorzugten Workers

Im Kontext eines Callcenters wird Kunden möglicherweise ein Kontomanager zugewiesen, oder sie stehen in einer Beziehung zu einem bestimmten Worker. Daher sollten Sie einen bestimmten Auftrag nach Möglichkeit an einen bestimmten Worker routen.

Voraussetzungen

Einrichten von Workerselektoren

Jeder Worker verfügt automatisch über eine Id-Bezeichnung. Sie können Workerselektoren auf den Auftrag anwenden, um einen bestimmten Worker als Ziel festzulegen.

Im folgenden Beispiel wird ein Auftrag für einen bestimmten Worker erstellt. Wenn dieser Arbeitnehmer den Auftrag nicht innerhalb der Ablaufdauer des Angebots von 1 Minute akzeptiert, ist die Bedingung für den jeweiligen Arbeitnehmer nicht mehr gültig, und der Job kann an jeden Arbeitnehmer gehen.

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))));

Tipp

Sie können auch eine beliebige benutzerdefinierte Bezeichnung verwenden, die für jeden Worker eindeutig ist.