Target a Preferred Worker

In the context of a call center, customers might be assigned an account manager or have a relationship with a specific worker. As such, You'd want to route a specific job to a specific worker if possible.


Setup worker selectors

Every worker automatically has an Id label. You can apply worker selectors to the job, to target a specific worker.

In the following example, a job is created that targets a specific worker. If that worker does not accept the job within the offer expiry duration of 1 minute, the condition for the specific worker is no longer be valid and the job could go to any 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",
        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 =,
    requested_worker_selectors = [
            key = "Id",
            label_operator = LabelOperator.EQUAL,
            value = "<preferred worker id>",
            expires_after_seconds = 45
client.createJob(new CreateJobOptions("job1", "Xbox_Chat_Channel", queue.getId())
        new RouterWorkerSelector("Id", LabelOperator.EQUAL, new RouterValue("<preferred_worker_id>"))


You could also use any custom label that is unique to each worker.