Visão geral do Roteador de Trabalho

O Roteador de Trabalho dos Serviços de Comunicação do Azure é uma ferramenta robusta projetada para otimizar o gerenciamento de interações do cliente em vários aplicativos de comunicação. Acessível por meio de um conjunto de SDKs e APIs, o Job Router direciona cada interação do cliente, ou "atividade", para o agente ou serviço automatizado mais adequado, ou "trabalhador", com base em uma combinação de regras e políticas pré-definidas e em tempo de execução. Isso garante uma resposta oportuna e eficaz às necessidades de cada cliente, levando a uma melhor satisfação do cliente, ao aumento da produtividade e ao uso mais eficiente dos recursos.

Em sua essência, o Job Router opera em um conjunto de conceitos-chave que, juntos, criam um sistema de gerenciamento de comunicação contínuo e eficiente. Elas incluem Tarefa, Trabalhador, Fila, Canal, Oferta e Política de Distribuição. Seja gerenciando grandes volumes de interações do cliente em um contact center, roteando consultas de clientes para o departamento certo em uma grande organização ou tratando com eficiência solicitações de atendimento ao cliente em um negócio de varejo, o Job Router pode fazer tudo. Ele garante que toda interação do cliente seja tratada pelo agente mais adequado ou pelo serviço automatizado, levando à eficiência dos negócios.

Diagrama que mostra a arquitetura do roteador de trabalho.

O Job Router é independente de qualquer primitivo do canal dos Serviços de Comunicação do Azure que ajude os desenvolvedores a criar uma solução de comunicação omnichannel abrangente. Com o Job Router, as empresas podem garantir que toda interação do cliente seja tratada com eficiência, no momento certo e no canal certo.

Conceitos-chave

Job

Um trabalho é uma unidade de serviço (demanda) que deve ser roteada para um trabalhador disponível (oferta). Uma instância real seria uma chamada de entrada ou chat no contexto de um call center, envolvimento do cliente ou suporte ao cliente.

Ciclo de vida do trabalho

  1. Seu aplicativo envia um trabalho por meio do SDK do Job Router.
  2. (Opcional) Se você especificou uma Política de Classificação, o trabalho será classificado e um evento JobClassified será enviado por meio da Grade de Eventos.
  3. O Trabalho é adicionado à fila que você especificou ou que foi determinada pela Política de Classificação e um Evento JobQueued é enviado por meio da Grade de Eventos.
  4. O Roteador de Trabalhos procura funções de trabalho correspondentes com base em seletores de etiqueta e na Política de Distribuição da fila.
  5. Quando um trabalhador correspondente é encontrado, uma oferta é emitida e um Evento de Oferta Emitida é enviado.
  6. Seu aplicativo pode aceitar a Oferta por meio do SDK, e o Job será removido da fila, e um OfferAccepted Event será enviado contendo um assignmentId.
  7. Depois que o Trabalhador tiver concluído o Trabalho, o SDK poderá ser usado para completá-lo e fechá-lo, usando o assignmentId. Isso liberará o Trabalhador para assumir o próximo Trabalho.

Diagrama que mostra o ciclo de vida do trabalho.

Trabalhador

Um Trabalhador é o recurso disponível para lidar com um Trabalho. Ao usar o SDK para registrar um Worker para receber trabalhos, você pode especificar:

  • Uma ou mais filas para escutar.
  • O número de trabalhos simultâneos por Canal que o Trabalhador pode gerenciar.
  • Um conjunto de Rótulos que podem ser usado para agrupar e selecionar funções de trabalho.

Um exemplo concreto de um trabalhador seria um agente humano em um cenário de interação do cliente ou de contact center.

Fila

Uma fila é uma lista ordenada de trabalhos que estão aguardando para serem atendidos por uma função de trabalho. Os trabalhadores se registram com uma fila para receber trabalho dela.

Para ilustrar o conceito de uma fila, vamos usar um cenário de contact center, imagine uma situação em que vários chamadores são colocados em espera até que um representante, com as habilidades certas, fique disponível para lidar com suas chamadas.

Canal

Um canal é um agrupamento de trabalhos por algum tipo. Quando um trabalhador se registra para receber trabalho, ele também precisa especificar de quais canais ele pode realizar trabalho e com quanto trabalho de cada um desses canais ele pode lidar simultaneamente. Os canais são apenas um discriminador de cadeia de caracteres e não são criados explicitamente. Um canal pode ser voice calls ou chats.

Ao atribuir trabalhos a canais diferentes, torna-se possível simplificar os fluxos de trabalho e alocar recursos com eficiência com base nas necessidades ou requisitos específicos associados a cada canal.

Offer

Uma oferta é estendida pelo Roteador de Trabalho para que um trabalhador lide com um trabalho específico quando ele determina uma correspondência. Você pode aceitar ou recusar a oferta com o SDK do JobRouter. Se você ignorar a oferta, ela expirará de acordo com o tempo de vida configurado na Política de Distribuição.

O toque serve como um exemplo tangível de uma oferta estendida a um trabalhador e é um indicador de que uma interação está prestes a ocorrer, sinalizando ao agente para atender a chamada prontamente e conversar com o cliente.

Fluxo de aceitação da oferta

  1. Quando o Roteador de Trabalho encontra um trabalhador correspondente para um trabalho, ele cria uma oferta e envia um Evento OfferIssued por meio da Grade de Eventos.
  2. A Oferta é aceita por meio da API do Job Router.
  3. O trabalho é removido da fila e atribuído ao trabalhador.
  4. O Job Router envia um OfferAccepted Event.
  5. Todas as ofertas existentes para outros trabalhadores para esse mesmo trabalho serão revogadas e um Evento OfferRevoked será enviado.

Fluxo de declínio da oferta

  1. Quando o Roteador de Trabalho encontra um trabalhador correspondente para um trabalho, ele cria uma oferta e envia um Evento OfferIssued por meio da Grade de Eventos.
  2. A Oferta é recusada por meio da API do Job Router.
  3. A oferta é removida do trabalhador, abrindo capacidade para outra oferta para um trabalho diferente.
  4. O Job Router envia um OfferDeclined Event.
  5. O Roteador de Trabalho não oferecerá novamente a oferta recusada para o trabalhador, a menos que ele se desregistre e se registre novamente.

Fluxo de expiração da oferta

  1. Quando o Roteador de Trabalho encontra um trabalhador correspondente para um trabalho, ele cria uma oferta e envia um Evento OfferIssued por meio da Grade de Eventos.
  2. A Oferta não é aceita nem recusada dentro do período ExpiresAfter estipulado pela Política de Distribuição.
  3. O Job Router expirará a oferta e um Evento de Expiração da Oferta será enviado.
  4. O trabalhador é considerado indisponível e será automaticamente desativado.
  5. Um evento WorkerDeregistered será enviado.

Política de Distribuição

Uma Política de Distribuição é um conjunto de configuração que controla como os trabalhos em uma fila são distribuídos aos trabalhadores registrados com essa fila. Essa configuração inclui:

  • Quanto tempo uma oferta é válida antes de expirar.
  • O modo de distribuição, que define a ordem na qual os trabalhadores são escolhidos quando há vários disponíveis.
  • Quantas ofertas simultâneas podem haver para um determinado trabalho.

Modos de distribuição

Os três tipos de modos são

  • Round Robin: Os trabalhadores são ordenados por Id e o próximo trabalhador após o anterior que recebeu uma oferta é escolhido.
  • Ocioso mais longo: o trabalhador que não trabalha há mais tempo em um trabalho.
  • Melhor Trabalhador: os trabalhadores que são mais capazes de lidar com o trabalho são escolhidos primeiro. A lógica para classificar os Trabalhadores pode ser personalizada, com uma expressão ou função do Azure para comparar dois trabalhos. Confira o exemplo

Rótulos

Você pode anexar rótulos a trabalhadores, trabalhos e filas. Os rótulos são pares de valores chave que podem ser dos tipos de dados string, number ou boolean.

Um exemplo do mundo real é o nível de habilidade de um trabalhador específico, da equipe ou da localização geográfica.

Seletores de rótulo

É possível anexar seletores de rótulo a um trabalho para direcioná-lo a um subconjunto de trabalhadores na fila.

Por exemplo, no contexto de um canal de chat, considere um cenário do mundo real em que uma mensagem de chat de entrada está sujeita a uma condição. Essa condição especifica que o agente atribuído deve ter um nível mínimo de experiência ou conhecimento sobre um produto específico. Este exemplo destaca como seletores de rótulo, semelhantes aos filtros, podem ser empregados para direcionar um subconjunto de agentes dentro do canal de chat que possuem a proficiência necessária no produto designado.

Política de classificação

Uma política de classificação pode ser usada para selecionar programaticamente uma fila, determinar a prioridade do trabalho ou anexar seletores de rótulo de trabalho a um trabalho.

Política de exceção

Uma política de exceção controla o comportamento de um trabalho com base em um gatilho e executa uma ação desejada. A política de exceção é anexada a uma Fila a fim de controlar o comportamento de Tarefas na Fila.

Próximas etapas

Saiba mais sobre esses principais conceitos do Job Router

Confira nossos guias de tutoriais