Share via


Visão geral do Roteador de Trabalho

O Azure Communication Services Job Router é uma ferramenta robusta projetada para otimizar o gerenciamento de interações com clientes 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 com o cliente, ou "trabalho", para o agente ou serviço automatizado mais adequado, ou "trabalhador", com base em uma combinação de regras e políticas predefinidas e de tempo de execução. Isso garante uma resposta oportuna e eficaz às necessidades de cada cliente, levando à melhoria da satisfação do cliente, aumento da produtividade e 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. Isso inclui Trabalho, Trabalhador, Fila, Canal, Oferta e Política de Distribuição. Seja gerenciando grandes volumes de interações com clientes em um contact center, roteando consultas de clientes para o departamento certo em uma grande organização ou lidando com eficiência com solicitações de atendimento ao cliente em uma empresa de varejo, o Job Router pode fazer tudo. Ele garante que cada interação com o cliente seja tratada pelo agente ou serviço automatizado mais adequado, levando à eficiência dos negócios.

Diagram that shows the Job Router Architecture.

O Job Router é independente de qualquer primitiva de canal dos Serviços de Comunicação do Azure, ajudando os desenvolvedores a criar uma solução de comunicação omnichannel abrangente. Com o Job Router, as empresas podem garantir que cada interação com o cliente seja tratada de forma eficiente, no momento certo e no canal certo.

Conceitos Principais

Trabalho

Um trabalho é uma unidade de trabalho (demanda), que precisa ser roteada para um trabalhador disponível (oferta). Uma instância real seria uma chamada ou bate-papo de entrada 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 Roteador de Trabalho.
  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 uma função de trabalho correspondente é encontrada, uma Oferta é emitida e um Evento OfferIssued é enviado.
  6. Seu aplicativo pode aceitar a Oferta por meio do SDK e o Trabalho será removido da fila e será enviado um Evento OfferAccepted que contendo um assignmentId.
  7. Depois que a Função de Trabalho tiver concluído o Trabalho, o SDK poderá ser usado para concluí-lo e fechá-lo usando o assignmentId. Isso liberará a Função de Trabalho para assumir o próximo Trabalho.

Diagram that shows the Job lifecycle.

Trabalho

Um trabalhador é a oferta disponível para lidar com um trabalho. Ao usar o SDK para registrar uma Função de Trabalho para receber trabalhos, você pode especificar:

  • Uma ou mais filas para escutar.
  • O número de trabalhos simultâneos por Canal com que a Função de Trabalho pode lidar.
  • 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 com o cliente ou 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 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 diferentes canais, torna-se possível simplificar os fluxos de trabalho e alocar recursos de forma eficiente com base nas necessidades ou requisitos específicos associados a cada canal.

Oferta

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 se envolver em uma conversa 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 Roteador de Trabalho.
  3. O trabalho é removido da fila e atribuído ao trabalhador.
  4. O Roteador de Trabalho envia um Evento OfferAccepted.
  5. Todas as ofertas existentes para outros trabalhadores para esse mesmo trabalho serão revogadas e um Evento OfferRevoked será enviado.

Fluxo de recusa 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 Roteador de Trabalho.
  3. A oferta é removida do trabalhador, abrindo capacidade para outra oferta para um trabalho diferente.
  4. O Roteador de Trabalho envia um Evento OfferDeclined.
  5. O Roteador de Trabalho não fará novamente a oferta recusada para o trabalhador, a menos que ele cancele o próprio registro 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 ou recusada dentro do período de expiração definido pela Política de Distribuição.
  3. O Roteador de Trabalho expirará a Oferta e um Evento OfferExpired será enviado.
  4. O trabalho é considerado indisponível e o registro dele será automaticamente cancelado.
  5. Um evento WorkerDeregistered será enviado.

Política de Distribuição

Uma política de distribuição é um conjunto de configurações que controla como os trabalhos em uma fila são distribuídos para os trabalhadores registrados nessa fila. Essa configuração inclui:

  • Por 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 existir 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 último que recebeu uma oferta é escolhido.
  • Ocioso por mais tempo: o trabalhador está há mais tempo sem trabalhar em nenhum trabalho.
  • Melhor Trabalhador: os trabalhadores com a maior capacidade 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 trabalhadores. Confira o exemplo

Rótulos

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

Um exemplo do mundo real é o nível de habilidade de um trabalhador específico ou da equipe ou 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.

Como exemplo, no contexto de um canal de bate-papo, considere um cenário do mundo real em que uma mensagem de bate-papo recebida está sujeita a uma condição. Esta condição especifica que o agente designado deve ter um nível mínimo de especialização ou conhecimento relativo a um determinado produto. Este exemplo destaca como os seletores de rótulos, semelhantes aos filtros, podem ser empregados para direcionar um subconjunto de agentes dentro do canal de bate-papo 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 trabalhador 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 para que ela possa controlar o comportamento de Trabalhos na Fila.

Próximas etapas

Saiba mais sobre estes principais conceitos do Job Router

Confira nossos guias de tutoriais