Introducción al enrutador de trabajos

El enrutador de trabajos de Azure Communication Services es una herramienta sólida diseñada para optimizar la administración de las interacciones de los clientes en diversas aplicaciones de comunicación. Accesible a través de un conjunto de SDK y API, el enrutador de trabajos dirige cada interacción del cliente, o "trabajo", al agente más adecuado o al servicio automatizado, o "trabajo", en función de una combinación de reglas y directivas predefinidas y en tiempo de ejecución. Esto garantiza una respuesta oportuna y eficaz a las necesidades de cada cliente, lo que lleva a mejorar la satisfacción del cliente, aumentar la productividad y un uso más eficaz de los recursos.

En su núcleo, el enrutador de trabajos funciona en un conjunto de conceptos clave que crean un sistema de administración de comunicaciones sin problemas y eficiente. Estos incluyen trabajo, trabajo, cola, canal, oferta y directiva de distribución. Ya sea que administre grandes volúmenes de interacciones de clientes en un centro de contactos, enrutando consultas de clientes al departamento adecuado en una organización grande o control eficaz de las solicitudes de servicio al cliente en un negocio minorista, el enrutador de trabajos puede hacerlo todo. Garantiza que cada interacción del cliente se controle mediante el agente más adecuado o el servicio automatizado, lo que conduce a la eficiencia empresarial.

Diagram that shows the Job Router Architecture.

El enrutador de trabajos es independiente de cualquier primitivo de canal de Azure Communication Services que ayude a los desarrolladores a crear una solución de comunicación omnicanal completa. Con el Enrutador de trabajos, las empresas pueden garantizar que cada interacción del cliente se controle de forma eficaz, en el momento adecuado y en el canal correcto.

Conceptos clave

Trabajo

Un trabajo es una unidad de trabajo (demanda), que se debe enrutar a un trabajador disponible (suministro). Una instancia real sería una llamada entrante o chat en el contexto de un centro de llamadas, involucración del cliente o soporte técnico al cliente.

Ciclo de vida de trabajo

  1. La aplicación envía un trabajo a través del SDK del enrutador de trabajos.
  2. (Opcional) Si especificó una directiva de clasificación, el trabajo se clasifica y se envía un evento JobClassified a través de Event Grid.
  3. El trabajo se agrega a la cola especificada o determinada por la directiva de clasificación y se envía un evento JobQueued a través de Event Grid.
  4. El enrutador de trabajos busca roles de trabajos coincidentes en función de los selectores de etiquetas y la directiva de distribución si la cola.
  5. Cuando se encuentra un rol de trabajo coincidente, se emite una oferta y se envía un evento OfferIssued.
  6. La aplicación puede aceptar la oferta a través del SDK y el trabajo se quitará de la cola y se enviará un evento OfferAccepted que contenga un assignmentId.
  7. Una vez completado el rol de trabajo, el SDK se puede usar para completarlo y cerrarlo mediante assignmentId. Esto liberará al rol de trabajo para asumir el siguiente trabajo.

Diagram that shows the Job lifecycle.

Trabajador

Un trabajador es el suministro disponible para controlar un trabajo. Al usar el SDK para registrar un rol de trabajo para recibir trabajos, puede especificar:

  • Una o varias colas en las que escuchar.
  • El número de trabajos simultáneos por canal que el rol de trabajo puede controlar.
  • Un conjunto de etiquetas que se pueden usar para agrupar y seleccionar roles de trabajo.

Un ejemplo concreto de un trabajador sería un agente humano en un escenario de interacción del cliente o centro de contactos.

Cola

Una cola es una lista ordenada de trabajos que están a la espera de ser atendidos por un rol de trabajo. Los trabajadores se registran con una cola para recibir trabajo de ella.

Para ilustrar el concepto de una cola, vamos a usar un escenario del centro de contactos, imagine una situación en la que varios llamadores se ponen en espera hasta que un representante, con las aptitudes adecuadas, está disponible para controlar sus llamadas.

Canal

Un canal es una agrupación de trabajos por algún tipo. Cuando un trabajador se registra para recibir trabajo, también debe especificar para qué canales puede administrar el trabajo, y cuánto de cada uno puede administrar de forma simultánea. Los canales son simplemente un discriminador de cadenas y no se crean explícitamente. Un canal podría ser voice calls o chats.

Al asignar trabajos a diferentes canales, es posible simplificar los flujos de trabajo y asignar recursos de forma eficaz en función de las necesidades o requisitos específicos asociados a cada canal.

Oferta

Un enrutador de trabajos extiende una oferta a un trabajador para administrar un trabajo en particular cuando determina una coincidencia. Puede aceptar o rechazar la oferta con el SDK de JobRouter. Si omite la oferta, expira según el período de vida configurado en la directiva de distribución.

El timbre sirve como ejemplo tangible de una oferta extendida a un trabajador, y es un indicador de que una interacción está a punto de tener lugar, lo que indica al agente que responda a la llamada rápidamente y participe en una conversación con el cliente.

Flujo de aceptación de la oferta

  1. Cuando el enrutador de trabajos encuentra un trabajador coincidente para un trabajo, crea una oferta y envía un evento OfferIssued a través de Event Grid.
  2. La oferta se acepta a través de la API de enrutador de trabajos.
  3. El trabajo se quita de la cola y se asigna al rol de trabajo.
  4. El enrutador de trabajos envía un evento OfferAccepted.
  5. Se revocarán todas las ofertas existentes para otros roles de trabajo para este mismo trabajo y se enviará un evento OfferRevoked.

Flujo de rechazo de la oferta

  1. Cuando el enrutador de trabajos encuentra un trabajador coincidente para un trabajo, crea una oferta y envía un evento OfferIssued a través de Event Grid.
  2. La oferta se rechaza mediante la API del enrutador de trabajos.
  3. La oferta se quita del rol de trabajo, lo que deja capacidad para otra oferta para otro trabajo.
  4. El enrutador de trabajos envía un evento OfferDeclined.
  5. El enrutador de trabajos no vuelve a ofrecer la oferta rechazada al rol de trabajo a menos que se anule el registro y se vuelva a registrar.

Flujo de expiración de la oferta

  1. Cuando el enrutador de trabajos encuentra un trabajador coincidente para un trabajo, crea una oferta y envía un evento OfferIssued a través de Event Grid.
  2. La oferta no se acepta ni rechaza dentro del período ExpiresAfter definido por la directiva de distribución.
  3. El enrutador de trabajos dará como expirada la oferta y se enviará un evento OfferExpired.
  4. El rol de trabajo se considera no disponible y se anulará automáticamente el registro.
  5. Se enviará un evento WorkerDeregistered.

Directiva de distribución

Una directiva de distribución es un conjunto de configuraciones que controla cómo se distribuyen los trabajos de una cola a los trabajadores registrados en ella. Esta configuración incluye:

  • El tiempo que una oferta es válida antes de que expire.
  • El modo de distribución, que define el orden en el que se seleccionan los trabajadores cuando hay varios disponibles.
  • El número de ofertas simultáneas que puede haber para un trabajo determinado.

Modos de distribución

Los tres tipos de modos son:

  • Round Robin: los trabajadores se ordenan por Id y se selecciona el siguiente trabajador después del anterior que obtuvo una oferta.
  • Máxima inactividad: el trabajador que más tiempo ha estado sin trabajar en un trabajo.
  • Best Worker (Mejor trabajador): los trabajadores que mejor pueden controlar el trabajo se seleccionan primero. La lógica para clasificar los trabajadores se puede personalizar, con una expresión o una función de Azure para comparar dos trabajadores. Ver ejemplo

Etiquetas

Puede asociar etiquetas a trabajadores, trabajos y colas. Las etiquetas son pares clave-valor que pueden ser de tipos de datos string, number o boolean.

Un ejemplo real es el nivel de aptitud de un trabajador determinado o el equipo o la ubicación geográfica.

Selectores de etiquetas

Los selectores de etiquetas se pueden asociar a un trabajo para identificar un subconjunto de trabajadores en la cola.

Por ejemplo, en el contexto de un canal de chat, considere un escenario real en el que un mensaje de chat entrante está sujeto a una condición. Esta condición especifica que el agente asignado debe tener un nivel mínimo de conocimientos o conocimientos sobre un producto determinado. En este ejemplo se resalta cómo los selectores de etiquetas, similares a los filtros, se pueden emplear para dirigirse a un subconjunto de agentes dentro del canal de chat que poseen la competencia necesaria en el producto designado.

Directiva de clasificación

Se puede usar una directiva de clasificación para seleccionar una cola, determinar la prioridad del trabajo o asociar selectores de etiquetas de trabajador a un trabajo mediante programación.

Directiva de excepciones

Una directiva de excepciones controla el comportamiento de un trabajo en función de un desencadenador y ejecuta una acción deseada. La directiva de excepciones se asocia a una cola para que pueda controlar el comportamiento de los trabajos de esa cola.

Pasos siguientes

Más información sobre estos conceptos clave del enrutador de trabajos

Consulta nuestras guías de procedimientos