Partage via


Présentation de Job Router

Azure Communication Services Job Router est un outil robuste conçu pour optimiser la gestion des interactions client entre différentes applications de communication. Accessible via une suite de sdk et d’API, Job Router dirige chaque interaction client, ou « job », vers l’agent ou le service automatisé le plus approprié, ou « worker », en fonction d’un mélange de règles et de stratégies prédéfinies et d’exécution. Cela garantit une réponse rapide et efficace aux besoins de chaque client, ce qui entraîne une amélioration de la satisfaction des clients, une productivité accrue et une utilisation plus efficace des ressources.

À son cœur, Job Router fonctionne sur un ensemble de concepts clés qui créent ensemble un système de gestion des communications fluide et efficace. Il s’agit notamment de la stratégie de travail, de travail, de file d’attente, de canal, d’offre et de distribution. Qu’il s’agisse de gérer des volumes élevés d’interactions client dans un centre de contacts, de router les requêtes client vers le service approprié dans une grande organisation ou de gérer efficacement les demandes de service client dans une entreprise de vente au détail, Job Router peut tout faire. Elle garantit que chaque interaction client est gérée par l’agent ou le service automatisé le plus approprié, ce qui entraîne l’efficacité de l’entreprise.

Diagram that shows the Job Router Architecture.

Job Router est indépendant de n’importe quelle primitive de canal Azure Communication Services qui aide les développeurs à créer une solution de communication omnicanale complète. Avec Job Router, les entreprises peuvent s’assurer que chaque interaction client est gérée efficacement, au bon moment et dans le bon canal.

Concepts clés

Travail

Une mission est une unité de travail (demande) à acheminer vers un collaborateur disponible (offre). Une instance réelle serait un appel entrant ou une conversation dans le contexte d’un centre d’appels, d’un engagement client ou d’un support client.

Cycle de vie de tâche

  1. Votre application envoie une mission par le biais du SDK Job Router.
  2. (Facultatif) Si vous avez spécifié une stratégie de classification, le travail est classé et un événement JobClassified est envoyé par le biais d’Event Grid.
  3. Le travail est ajouté à la file d’attente que vous avez spécifiée ou qui a été déterminée par la stratégie de classification, puis un événement JobQueued est envoyé par le biais d’Event Grid.
  4. Job Router recherche les Workers correspondants en fonction des sélecteurs d’étiquettes et de la stratégie de distribution dans la file d’attente.
  5. Quand un Worker correspondant est trouvé, une offre est émise et un événement OfferIssued est envoyé.
  6. Votre application peut accepter l’offre par le biais du SDK, puis le travail est supprimé de la file d’attente et un événement OfferAccepted qui contient un assignmentId est envoyé.
  7. Une fois que le Worker a terminé le travail, le SDK peut être utilisé pour le terminer et le fermer, à l’aide du assignmentId. Cela va libérer le Worker pour qu’il puisse prendre le travail suivant.

Diagram that shows the Job lifecycle.

Worker

Un collaborateur correspond à l’offre disponible pour gérer une mission. Quand vous utilisez le SDK pour inscrire un Worker afin de recevoir des travaux, vous pouvez spécifier :

  • Une ou plusieurs files d’attente à écouter.
  • Le nombre de travaux simultanés par canal que le Worker peut gérer.
  • Un ensemble d’étiquettes qui peuvent être utilisées pour regrouper et sélectionner des Workers.

Un exemple concret d’un travailleur serait un agent humain dans un scénario d’interaction client ou de centre de contacts.

File d’attente

Une file d’attente est une liste ordonnée de travaux, qui attendent d’être servis à un Worker. Les collaborateurs s’inscrivent dans une file d’attente pour recevoir du travail.

Pour illustrer le concept d’une file d’attente, nous allons utiliser un scénario de centre de contacts, imaginez une situation où plusieurs appelants sont placés en attente jusqu’à ce qu’un représentant, avec les bonnes compétences, soit disponible pour gérer leurs appels.

Canal

Un canal est un regroupement de missions selon un type. Quand un collaborateur s’inscrit pour recevoir du travail, il doit également spécifier les canaux pour lesquels il peut prendre du travail, ainsi que la quantité de travail qu’il peut gérer simultanément. Les canaux constituent simplement un discriminateur de chaîne et ne sont pas créés de manière explicite. Un canal peut être voice calls ou chats.

En affectant des travaux à différents canaux, il devient possible de rationaliser les flux de travail et d’allouer efficacement des ressources en fonction des besoins spécifiques ou des exigences associés à chaque canal.

Offre

Une offre est élargie par Job Router à un collaborateur pour gérer une mission particulière quand une correspondance est déterminée. Vous pouvez accepter ou refuser l’offre avec le SDK JobRouter. Si vous ignorez l’offre, elle expire selon la durée de vie configurée dans la stratégie de distribution.

L’anneau sert d’exemple tangible d’une offre étendue à un travailleur, et il s’agit d’un indicateur qu’une interaction est sur le point de se produire, signalant à l’agent de répondre rapidement à l’appel et d’engager une conversation avec le client.

Flux d’acceptation de l’offre

  1. Quand Job Router trouve un collaborateur correspondant pour une mission, une offre est créée et un événement OfferIssued est envoyé par le biais d’Event Grid.
  2. L’offre est acceptée par l’intermédiaire de l’API Job Router.
  3. Le travail est supprimé de la file d’attente et attribué au collaborateur.
  4. Job Router envoie un événement OfferAccepted.
  5. Toutes les offres existantes proposées à d’autres collaborateurs pour ce même travail sont révoquées et un événement OfferRevoked est envoyé.

Flux de refus de l’offre

  1. Quand Job Router trouve un collaborateur correspondant pour une mission, une offre est créée et un événement OfferIssued est envoyé par le biais d’Event Grid.
  2. L’offre est refusée par l’intermédiaire de l’API Job Router.
  3. L’offre est retirée au collaborateur, ce qui ouvre la possibilité d’une autre offre pour un autre travail.
  4. Job Router envoie un événement OfferDeclined.
  5. Job Router ne repropose pas l’offre refusée au collaborateur, sauf s’il se désinscrit et se réinscrit.

Flux d’expiration de l’offre

  1. Quand Job Router trouve un collaborateur correspondant pour une mission, une offre est créée et un événement OfferIssued est envoyé par le biais d’Event Grid.
  2. L’offre n’est pas acceptée ou refusée dans la période ExpiresAfter définie par la stratégie de distribution.
  3. Job Router fait expirer l’offre et un événement OfferExpired est envoyé.
  4. Le collaborateur est considéré comme étant indisponible et est automatiquement désinscrit.
  5. Un événement WorkerDeregistered est envoyé.

Stratégie de distribution

Une stratégie de distribution est une configuration qui contrôle la façon dont les missions situées dans une file d’attente sont distribuées aux collaborateurs inscrits auprès de cette file d’attente. Cette configuration comprend :

  • Durée de validité d’une offre avant son expiration.
  • Mode de distribution, qui définit l’ordre dans lequel les collaborateurs sont sélectionnés quand plusieurs d’entre eux sont disponibles.
  • Nombre d’offres simultanées pouvant exister pour une mission donnée.

Modes de distribution

Les trois types de modes sont :

  • Tourniquet (Round Robin) : Les collaborateurs sont classés par Id et le collaborateur suivant situé après celui qui vient d’avoir une offre est choisi.
  • Inactif le plus longtemps : Le collaborateur qui n’a pas travaillé depuis le plus longtemps est choisi.
  • Meilleur collaborateur : Les collaborateurs les plus compétents pour gérer la mission sont sélectionnés en premier. Il est possible de personnaliser la logique de classement des collaborateurs, avec une expression ou une fonction Azure permettant d’en comparer deux. Consultez l’exemple

Étiquettes

Vous pouvez joindre des étiquettes aux collaborateurs, aux missions et aux files d’attente. Les étiquettes sont des paires clé-valeur pouvant correspondre à des types de données string, number ou boolean.

Le niveau de compétence d’un collaborateur particulier, l’équipe ou l’emplacement géographique en sont des exemples concrets.

Sélecteurs d’étiquettes

Des sélecteurs d’étiquettes peuvent être joints à une mission afin de cibler un sous-ensemble de collaborateurs sur la file d’attente.

Par exemple, dans le contexte d’un canal de conversation, envisagez un scénario réel dans lequel un message de conversation entrant est soumis à une condition. Cette condition spécifie que l’agent affecté doit avoir un niveau minimal d’expertise ou de connaissances concernant un produit particulier. Cet exemple montre comment les sélecteurs d’étiquettes, similaires aux filtres, peuvent être utilisés pour cibler un sous-ensemble d’agents au sein du canal de conversation qui possèdent la compétence requise dans le produit désigné.

Stratégie de classification

Une stratégie de classification peut être utilisée pour sélectionner par programmation une file d’attente, déterminer la priorité d’une mission ou joindre des sélecteurs d’étiquettes de collaborateurs à une mission.

Stratégie d’exception

Une stratégie d’exception contrôle le comportement d’une mission en fonction d’un déclencheur et exécute une action souhaitée. La stratégie d’exception est attachée à une file d’attente afin qu’elle puisse contrôler le comportement des missions dans la file d’attente.

Étapes suivantes

En savoir plus sur ces concepts clés du routeur de travaux

Consultez nos guides pratiques