Bonjour !
Dans la leçon précédente, vous avez brillamment assemblé votre premier flux d'appel : un message d'accueil suivi d'un transfert vers une file d'attente. Ce flux est fonctionnel, mais il est "statique" : les informations, comme le nom de la file d'attente, sont écrites en dur dans les actions.
Aujourd'hui, nous allons injecter de l'intelligence et de la flexibilité dans nos flux. L'objectif est d'apprendre à utiliser les variables de flux (chaîne, booléen, entier) et les expressions de base. C'est une compétence fondamentale qui vous permettra de passer de la création de flux simples à la conception de logiques de routage complexes et adaptatives.
À la fin de cette leçon, vous saurez comment stocker et manipuler des données au sein d'un flux pour prendre des décisions dynamiques, comme identifier un appelant VIP ou simplifier la maintenance de vos logiques.
1. Les Variables : La Mémoire de Votre Flux
Imaginez une variable comme une boîte étiquetée dans laquelle vous pouvez stocker une information. Cette information peut être le numéro de l'appelant, le nom d'une file d'attente, ou simplement un "vrai" ou "faux" pour guider une décision.
Dans Genesys Cloud Architect, il existe deux grandes familles de variables :
- Les variables intégrées (Built-in) : Fournies directement par le système, elles contiennent des informations contextuelles sur l'interaction. Par exemple,
Call.Anicontient le numéro de téléphone de l'appelant (Automatic Number Identification). - Les variables personnalisées (Custom) : Celles que vous créez vous-même pour stocker des informations spécifiques à votre logique. Elles commencent généralement par
Task.(si elles sont locales à une tâche) ouFlow.(si elles sont partagées dans tout le flux). Pour débuter, nous utiliserons principalementTask..
Ces variables peuvent contenir différents types de données. Pour aujourd'hui, nous nous concentrerons sur les trois plus courants :
- String (chaîne de caractères) : Du texte, comme un nom de file d'attente
"Ventes_France"ou un numéro de téléphone"+33123456789". - Integer (entier) : Un nombre entier, comme
10ou-5. - Boolean (booléen) : Une valeur qui ne peut être que
True(vrai) ouFalse(faux).
Pour découvrir quelques-unes des variables intégrées les plus utiles, je vous invite à explorer la documentation de Genesys Cloud.
Cette page est une référence essentielle qui liste les variables intégrées disponibles. Nul besoin de tout mémoriser, mais il est crucial de savoir que cette information existe et où la trouver.
Veuillez consulter la section pour les flux d'appel entrants ('In-bound call'). Repérez des variables clés comme Call.Ani (numéro de l'appelant), Call.ConversationID (identifiant unique de la conversation) et Flow.IsTest (indique si le flux est en mode débogage). Parcourez simplement la liste pour vous familiariser avec le type d'informations disponibles.
2. Les Expressions : Le Cerveau de Votre Flux
Maintenant que nous avons des boîtes pour stocker des données, comment les utiliser ? C'est le rôle des expressions. Une expression est une formule qui permet de lire, de comparer ou de transformer des variables.
Dans Architect, la plupart des champs de configuration peuvent être basculés entre deux modes :
- Literal Mode : Vous entrez une valeur fixe et directe. C'est ce que vous avez fait dans la leçon précédente en choisissant une file d'attente dans une liste déroulante.
- Expression Mode : Vous écrivez une formule pour que la valeur soit calculée dynamiquement.
Literal and expression modes overview
La documentation de Genesys Cloud explique très clairement la différence entre ces deux modes. Comprendre cette dualité est fondamental pour maîtriser Architect.
Lisez cette courte page pour bien comprendre la distinction entre le mode Littéral (valeurs simples, pré-définies) et le mode Expression (calculs, variables, logique).
Pour passer en mode Expression, vous cliquez sur le petit bouton à droite d'un champ, qui bascule entre "abc" (Literal) et "f(x)" (Expression). L'éditeur d'expression vous aide en suggérant des noms de variables et de fonctions au fur et à mesure que vous tapez.

3. Application Pratique n°1 : Rendre un Flux Modulable
Reprenons le flux de la leçon précédente. Le nom de la file d'attente est "en dur" dans l'action Transfer to ACD. Si vous devez le changer, vous devez modifier le flux et le republier. Imaginons un flux complexe avec 10 transferts vers la même file... C'est une source d'erreurs.
Utilisons une variable pour centraliser cette information.
Étape 1 : Créer une variable avec l'action Update Data
L'action Update Data, située dans la boîte à outils sous Data, est le principal outil pour créer et assigner des valeurs à vos variables personnalisées.
- Ouvrez votre flux simple créé précédemment.
- Juste après le
Start, ajoutez une action Update Data. - Dans le panneau de configuration de l'action, cliquez sur Add an update statement.
- Dans Variable Name, tapez
Task.TargetQueue. Genesys créera automatiquement cette variable pour vous. - Dans Value To Assign, en mode Littéral, tapez le nom de votre file d'attente entre guillemets (par exemple,
"Ventes"). La variableTask.TargetQueuecontient maintenant la chaîne de caractères "Ventes".
L'image suivante montre un exemple similaire où plusieurs variables de types différents sont initialisées.

Étape 2 : Utiliser la variable dans l'action Transfer to ACD
- Allez sur votre action
Transfer to ACD. - Dans le champ Queue, qui est actuellement en mode Littéral, cliquez sur le bouton "abc" pour passer en mode Expression "f(x)".
- Dans le champ, tapez
Task.TargetQueue. - Validez.
Votre action de transfert n'utilise plus une valeur fixe, mais lit le contenu de la variable Task.TargetQueue. Désormais, si vous devez changer de file d'attente, il vous suffit de modifier la valeur dans l'action Update Data au début du flux. C'est plus propre, plus rapide et plus sûr.
4. Application Pratique n°2 : Routage Conditionnel avec une Expression
Allons plus loin. Utilisons une variable intégrée (Call.Ani) et une expression pour créer une logique de routage conditionnelle. Par exemple, identifions un appelant VIP pour lui donner la priorité.
Pour cela, nous avons besoin d'une nouvelle action : Decision, située sous Logical. Elle évalue une expression qui doit retourner True ou False et propose deux chemins : "Yes" et "No".
La vidéo suivante montre précisément comment mettre en œuvre ce scénario.
Using Basic Expressions with Genesys Cloud
Cette vidéo est une excellente démonstration pratique de l'utilisation d'une expression pour prendre une décision de routage. Elle illustre parfaitement comment combiner une variable intégrée (Call.Ani), un opérateur de comparaison (==) et une action Decision.
Regardez la vidéo de 02:27 à 11:17. Concentrez-vous sur les points suivants : L'ajout de l'action Decision au début du flux. Le passage en mode Expression pour la condition. La saisie de l'expression Call.Ani == "+1..." pour comparer le numéro de l'appelant à une valeur spécifique. Notez l'utilisation du double signe égal == pour la comparaison. La configuration d'un chemin différent sur la sortie "Yes" (par exemple, augmenter la priorité dans l'action Transfer to ACD).
Comme vous l'avez vu, avec une simple action Decision et une expression, vous pouvez créer des logiques puissantes :
- Routage VIP : Si le numéro correspond, augmentez la priorité de l'appel.
- Blocage de spam : Si le numéro correspond à un spammeur connu, jouez un message et déconnectez l'appel via l'action
Disconnect. - Routage par indicatif régional : Vous pourriez même analyser une partie du numéro pour router l'appel vers une agence régionale.
5. Un Aperçu des Possibilités
Les variables peuvent aussi stocker des informations saisies par l'appelant. Bien que nous étudierons cela en détail plus tard, il est intéressant d'en avoir un aperçu.
Using Basic Expressions with Genesys Cloud
Cette partie de la même vidéo montre comment l'action Collect Input (que nous verrons dans le module sur les SVI) demande à l'appelant un numéro et le stocke dans une nouvelle variable personnalisée, Task.callbackNumber.
Regardez de 14:29 à 19:47. Votre objectif n'est pas de maîtriser l'action Collect Input aujourd'hui, mais d'observer deux choses : Comment une variable (Task.callbackNumber) est créée pour stocker une donnée fournie par l'utilisateur. Comment cette même variable est ensuite utilisée dans l'action Create Callback pour dynamiser son comportement.
Cela vous donne une idée de la manière dont les concepts de variables et d'expressions sont au cœur de toutes les interactions dynamiques dans Architect.
Conclusion
Aujourd'hui, vous avez ajouté une couche d'abstraction et d'intelligence fondamentale à vos compétences sur Architect. Vous ne vous contentez plus d'assembler des briques, vous leur donnez des instructions dynamiques.
Points clés à retenir :
- Les variables (intégrées ou personnalisées) sont des conteneurs pour stocker des données (String, Integer, Boolean, etc.).
- Le passage du mode Littéral au mode Expression permet de passer de valeurs fixes à des valeurs calculées.
- L'action Update Data est l'outil principal pour créer et assigner des valeurs à des variables personnalisées.
- L'action Decision utilise des expressions booléennes (
True/False) pour orienter le flux d'appel. - La combinaison de variables comme
Call.Aniet d'expressions simples (==) permet de créer des logiques de routage personnalisées et puissantes.
Prochaine leçon :
Maintenant que nos flux deviennent plus élaborés, il est essentiel de les gérer correctement. Dans la prochaine leçon, nous verrons comment publier, versionner et gérer le cycle de vie d'un flux. Cela vous assurera de pouvoir travailler de manière organisée et de déployer des modifications en toute sécurité.