Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 28

Actions de décision : Brancher selon les conditions

Recommended resources

Bonjour !

Bienvenue dans ce nouveau module dédié à la logique de flux avancée dans Architect. Dans les modules précédents, nous avons construit des flux fonctionnels avec des menus SVI, des plannings horaires et des transferts vers des files d'attente. Nous avons même appris à les déboguer. Ces flux sont puissants, mais ils reposent principalement sur les choix explicites de l'appelant via un menu DTMF.

Et si vous vouliez router un appel différemment en fonction de données que vous connaissez déjà, sans avoir à poser de question à l'appelant ? Par exemple, en fonction de son statut de fidélité, de l'heure exacte, ou d'une information récupérée dans une base de données externe.

C'est précisément l'objectif de cette leçon. Nous allons explorer comment créer des branchements conditionnels intelligents dans vos flux. Pour cela, vous allez maîtriser deux des actions les plus fondamentales d'Architect : Decision et Switch. À la fin de cette session, vous serez capable de construire des flux qui s'adaptent dynamiquement au contexte de l'appel, une compétence essentielle pour concevoir des expériences client personnalisées.

1. L'action Decision : La logique binaire (Si/Alors/Sinon)

L'action Decision est l'équivalent d'une structure if/then/else en programmation. Elle vous permet de poser une question qui ne peut avoir que deux réponses : "Oui" ou "Non" (vrai ou faux).

Le principe est simple :

  1. Vous écrivez une expression qui doit être évaluée.
  2. Si l'expression est vraie, le flux emprunte le chemin de sortie "Yes".
  3. Si l'expression est fausse, le flux emprunte le chemin de sortie "No".

Cette action est parfaite pour les vérifications binaires. Par exemple, "Le temps d'attente estimé est-il supérieur à 5 minutes ?" ou "L'appel provient-il d'un numéro international ?".

Flux d'Appels Entrants Genesys Cloud avec Décision basée sur le Temps d'Attente Estimé
Dans cet exemple de flux, une action "Call Data Action" récupère d'abord le temps d'attente estimé (EWT). Ensuite, une action `Decision` ("Is there a < 5 min EWT?") vérifie si ce temps d'attente est inférieur à 5 minutes pour router l'appel vers deux files d'attente différentes.

Pour voir de plus près comment se configure une action Decision, je vous invite à lire un court extrait d'une documentation.

Architect Flows | Medallia Documentation

Cet extrait, tiré d'un guide d'intégration Medallia, montre la configuration et l'utilisation concrète d'un bloc Decision pour vérifier une condition avant de router un appel.

Lisez le court paragraphe qui commence par 'Finally, add a Decision block...'. Concentrez-vous sur l'objectif de l'action : évaluer une variable booléenne (Task.shouldOffer) pour décider de la suite du parcours.

Comme vous pouvez le voir, l'action Decision est simple mais très puissante. L'expression que vous pouvez y écrire peut être bien plus complexe qu'une simple variable. Vous pouvez y utiliser des fonctions et des opérateurs logiques (AND, OR, NOT) pour créer des conditions sophistiquées, comme par exemple : Call.Ani == "+33123456789" AND IsAfter(Flow.StartDateTime, ToDateTime("2024-10-26T17:00:00")).


2. L'action Switch : Les branchements multiples

Que faire si vous avez plus de deux chemins possibles ? Imaginez que vous vouliez router un appel en fonction d'un statut client qui peut être "Gold", "Silver" ou "Bronze". Vous pourriez utiliser plusieurs actions Decision imbriquées les unes dans les autres, mais cela deviendrait vite illisible.

C'est là qu'intervient l'action Switch. Elle est conçue pour évaluer une seule variable et orienter le flux vers différents chemins (Cases) en fonction de la valeur de cette variable. C'est l'équivalent d'une structure switch/case en programmation.

L'action Switch contient :

  • Une expression à évaluer : Généralement, c'est simplement le nom d'une variable (ex: Flow.CustomerStatus).
  • Plusieurs Cases : Chaque Case correspond à une valeur possible de la variable (ex: "Gold", "Silver").
  • Un chemin Default : Ce chemin est emprunté si la valeur de la variable ne correspond à aucun des Cases définis. C'est une sécurité essentielle.
Configuration de l'action 'Switch' dans Genesys Cloud Architect
Cette image montre la configuration d'une action `Switch`. Elle évalue la variable `Task.valueFromDataTable` et propose des chemins distincts pour les valeurs "task1", "task2", "task3", ainsi qu'un chemin par défaut.

Retournons à notre ressource précédente pour voir un exemple concret de l'action Switch.

Architect Flows | Medallia Documentation

Ce second extrait du même guide montre comment l'action Switch est utilisée pour gérer plusieurs scénarios en fonction de la valeur numérique du temps d'attente (EWT).

Lisez la section intitulée 'Switch (check EWT value)'. Observez comment les 'Cases' sont définis avec des expressions de comparaison (<, >) et comment le chemin 'Default' gère tous les autres scénarios.


3. Mise en pratique : Routage par statut client

Maintenant, mettons ces concepts en application. Étant donné votre expérience avec les centres de contact, un scénario de routage basé sur la segmentation client vous sera familier.

Objectif : Créer un segment de flux qui route les appelants différemment selon un statut "VIP", "Standard" ou "Inconnu".

  1. Créez un nouveau flux d'appel entrant pour cet exercice. Nommez-le "Routage Conditionnel".
  2. Initialisez une variable de test. Juste après le point de départ (Start), ajoutez une action Update Data (dans la catégorie Data).
    • Créez une nouvelle variable de type String (chaîne de caractères) nommée Flow.CustomerStatus.
    • Dans le champ Value to Assign, entrez la valeur littérale "VIP". Pour l'instant, nous fixons la valeur manuellement. Plus tard dans le cours, nous verrons comment cette valeur pourrait provenir d'une recherche en base de données via une Data Action.
  3. Utilisez une action Switch pour le routage.
    • Ajoutez une action Switch (catégorie Logical).
    • Dans le champ Expression, entrez le nom de notre variable : Flow.CustomerStatus.
    • Configurez les Cases :
      • Cliquez sur + Add Case. Pour la valeur (Value), tapez "VIP".
      • Cliquez de nouveau sur + Add Case. Pour la valeur, tapez "Standard".
    • Vous avez maintenant trois chemins de sortie : "VIP", "Standard" et "Default".
  4. Connectez les sorties à des actions de transfert.
    • Sur le chemin de sortie "VIP", ajoutez une action Transfer to ACD et sélectionnez votre file d'attente prioritaire (si vous n'en avez pas, sélectionnez n'importe quelle file d'attente pour l'exercice).
    • Sur le chemin de sortie "Standard", ajoutez une autre action Transfer to ACD vers votre file d'attente standard.
    • Sur le chemin "Default", ajoutez d'abord une action Play Audio avec un message comme "Nous n'avons pas pu vous identifier, nous vous mettons en relation avec un conseiller", puis connectez cette action à la même action Transfer to ACD que le chemin "Standard".
  5. Testez votre logique.
    • Modifiez la valeur initiale de Flow.CustomerStatus en "Standard" et observez le chemin pris.
    • Modifiez-la en "Nouveau" et vérifiez que le chemin Default est bien emprunté.

Cet exercice simple mais concret démontre à quel point l'action Switch rend la logique de routage multi-chemins propre et facile à lire.


4. Quand utiliser Decision vs Switch ?

Voici une règle simple pour choisir entre les deux :

  • Utilisez Decision lorsque votre condition est binaire (vrai/faux). C'est idéal pour évaluer des expressions complexes qui aboutissent à une seule réponse oui/non.

    • Exemple : Flow.EWT > 300 AND Flow.Language == "en-us"
    • Exemple : IsSet(Flow.CustomerID) (La variable a-t-elle été définie ?)
  • Utilisez Switch lorsque vous avez plusieurs chemins possibles basés sur les différentes valeurs possibles d'une seule variable. C'est beaucoup plus propre et évolutif que d'enchaîner plusieurs Decision.

    • Exemple : Router en fonction du choix de menu SVI (Task.Choice).
    • Exemple : Router en fonction du statut client (Flow.CustomerStatus).

Conclusion

Félicitations ! Vous venez d'ajouter deux des outils les plus puissants d'Architect à votre arsenal. La capacité de créer des branchements conditionnels est la clé pour passer de flux statiques à des expériences client intelligentes et dynamiques.

Points clés à retenir :

  • L'action Decision est votre outil pour la logique binaire if/then/else, idéale pour évaluer des expressions complexes qui renvoient Vrai ou Faux.
  • L'action Switch est votre solution pour les branchements multiples basés sur les différentes valeurs d'une seule variable, offrant clarté et maintenabilité.
  • Le chemin Default dans une action Switch est crucial pour gérer les cas inattendus et garantir que votre flux ne se bloque jamais.

Prochaine leçon :

Maintenant que nous savons comment créer des chemins différents, comment pourrions-nous gérer une liste de données ? Par exemple, comment lire une liste des dernières commandes d'un client pour lui en proposer un résumé ? Dans la prochaine leçon, nous allons découvrir comment manipuler les variables de type collection (des listes) et comment utiliser l'action Loop pour itérer sur leurs éléments, ouvrant la porte à des traitements de données encore plus avancés au sein de vos flux.