Référence des blocs
Le rôle, les champs et un exemple d'usage pour chaque type de bloc de l'éditeur de flow.
Cette page décrit chaque bloc proposé dans la Bibliothèque de l'éditeur, dans l'ordre de ses catégories. Pour chaque bloc : son rôle, ses sorties, le tableau de ses champs et un exemple tiré de la relation client. Les réglages communs à plusieurs blocs (fonctions appelables, clavier téléphonique, valeurs dynamiques) sont décrits en fin de page.
Tous les blocs ont en plus un champ Libellé du bloc, en tête du panneau de configuration. Il s'affiche sur le canvas et nomme les transitions automatiques qui mènent à ce bloc.

Vue d'ensemble
| Catégorie | Bloc | Étiquette | En une phrase |
|---|---|---|---|
| Entrée | Déclencheur | TRIGGER | Le premier tour de parole de l'IA, au décroché ou à l'ouverture du chat. |
| Intelligence | Agent LLM | AGENT | Une étape menée par l'IA, avec son prompt et ses fonctions. |
| Intelligence | Outil MCP | TOOL | Exécute un outil à l'entrée du bloc, sans passer par l'IA. |
| Intelligence | Requête HTTP | HTTP | Décrit un appel d'API externe. |
| Intelligence | Datastore | DATA | Recherche, ajoute ou modifie un enregistrement dans une base. |
| Logique | Routage | ROUTER | Décrit un branchement conditionnel à deux cas. |
| Logique | Validation humaine | HITL | Met la conversation en attente de la décision d'un opérateur. |
| Sortie | Message | SAY | Fait dire un message à l'IA. |
| Sortie | MAIL | Envoie un e-mail de notification. | |
| Sortie | SMS | SMS | Envoie un SMS de notification. |
| Sortie | Raccrocher | END | Termine la conversation, avec ou sans transfert. |
Déclencheur
Le Déclencheur est le point de départ du flow. C'est un tour de parole complet de l'IA : il définit qui elle est, ce qu'elle fait au décroché, et les fonctions qu'elle peut appeler dès le premier échange. Un flow créé avec Nouveau flow en contient déjà un.
Sortie : Démarrer, puis une rangée par fonction et par transition automatique.
| Champ | Description | Valeur par défaut |
|---|---|---|
| Canal | Canal prévu pour le flow : Appel voix, Chat ou Webhook. | Appel voix |
| Prompt de rôle | La persona et les instructions de fond, reprises à chaque entrée dans le bloc. Accepte les variables {{…}}. | Vide |
| Prompt de tâche | Ce que l'IA fait au décroché : son premier tour de parole. Accepte les variables {{…}}. | Vide |
| Fonctions appelables | Les fonctions que l'IA peut appeler dès le premier tour. Voir Fonctions appelables. | Aucune |
| Clavier téléphonique (DTMF) | Réglage de la saisie au clavier pour ce bloc. Voir Clavier téléphonique. | Défauts plateforme |
Exemple — Standard d'une mutuelle :
- Prompt de rôle : « Tu es l'assistante d'accueil de la Mutuelle Horizon. Tu vouvoies l'appelant et restes concise. »
- Prompt de tâche : « Accueille l'appelant, précise que l'appel peut être enregistré, puis demande-lui l'objet de son appel. »
Prompt de tâche, prompt système ou bloc Message ? Voir Message d'accueil ou prompt ?.
Agent LLM
Le bloc Agent LLM est une étape conversationnelle : l'IA poursuit l'échange selon le prompt du bloc, peut appeler des fonctions, puis passe au bloc suivant. C'est le bloc le plus utilisé d'un flow.
Sortie : Réponse, puis une rangée par fonction et par transition automatique.
| Champ | Description | Valeur par défaut |
|---|---|---|
| Prompt de rôle | Persona et instructions de fond, reprises à chaque entrée dans le bloc. Accepte les variables {{…}}. | Vide |
| Prompt de tâche | Ce que l'IA doit accomplir dans cette étape. Accepte les variables {{…}}. | Vide |
| Fonctions appelables | Les fonctions que l'IA peut appeler depuis ce bloc. Voir Fonctions appelables. | Aucune |
| Clavier téléphonique (DTMF) | Voir Clavier téléphonique. | Défauts plateforme |
Note
Le modèle et la température ne se règlent pas dans le bloc : ce sont ceux de l'agent qui exécute le flow. Voir Créer un agent.
Exemple — Suivi de commande :
- Prompt de tâche : « Demande le numéro de commande au client, puis appelle
rechercher_commande. Annonce le statut et la date de livraison prévue. » - Fonction
rechercher_commande, avec une écriture d'état qui garde le statut dansparameters.statut_commande.
Outil MCP
Le bloc Outil MCP exécute un outil dès l'entrée dans le bloc, sans passer par l'IA, puis enchaîne sur le bloc relié à sa sortie. Utilisez-le pour une action systématique : créer un ticket dans votre outil de support, enregistrer un rappel, interroger votre CRM.
Sortie : Résultat. Elle doit être reliée, sinon le bloc affiche Sans suite.
| Champ | Description | Valeur par défaut |
|---|---|---|
| Outil | L'outil à exécuter. Choisir un outil… ouvre le catalogue : vos outils (groupe Outils du tenant) puis ceux de chaque serveur MCP connecté, avec une recherche. | Aucun |
| Arguments (JSON) | Les arguments passés à l'outil, au format JSON. Accepte les variables {{…}}. | {} |
Une fois l'outil choisi, une carte Paramètres rappelle ses paramètres (les obligatoires portent la mention requis). Générer les args réécrit le champ Arguments (JSON) avec ces paramètres, prêts à compléter.
Si aucun serveur MCP n'est connecté et que le catalogue est vide, le bloc propose une saisie manuelle des champs Serveur MCP et Outil. Les serveurs MCP se connectent dans Paramètres > Serveurs MCP (voir Serveurs MCP).
Exemple — Après une réclamation, un bloc Outil MCP crée systématiquement un ticket dans votre outil de support, puis enchaîne sur un Message de confirmation.
Requête HTTP
Le bloc Requête HTTP décrit un appel à une API externe.
Sorties : Succès (2xx) et Erreur / timeout.
| Champ | Description | Valeur par défaut |
|---|---|---|
| Méthode | GET, POST, PUT, PATCH ou DELETE. | GET |
| URL | L'adresse appelée, par exemple https://api.exemple.com/v1/commandes/{{orderId}}. | Vide |
| En-têtes (JSON) | Les en-têtes HTTP, au format JSON. | {} |
| Corps (JSON) | Le corps de la requête. Ignoré pour GET et DELETE. | Vide |
| Timeout (ms) | Délai maximal de réponse, en millisecondes. | 10000 |
| Variable de sortie | Le nom sous lequel la réponse JSON est exposée aux blocs suivants. | Vide |
Attention
Les réglages des blocs Requête HTTP et Routage sont conservés avec le flow, mais ne sont pas exécutés pendant une conversation. Pour appeler une API, créez un outil HTTP / API (voir Outils) et appelez-le depuis une fonction ou un bloc Outil MCP.
Datastore
Le bloc Datastore lit ou écrit dans une de vos bases de données dès l'entrée dans le bloc, sans passer par l'IA. Le formulaire s'adapte au schéma de la base choisie.
Sortie : Suite. Elle doit être reliée, sinon le bloc affiche Sans suite.
| Champ | Description | Valeur par défaut |
|---|---|---|
| Base | La base visée. Les bases de contacts sont signalées par « · contacts ». | Aucune |
| Opération | Rechercher, Ajouter ou Modifier. | Rechercher |
| Champ ciblé | (Rechercher) Le champ sur lequel porte la recherche, ou — filtre libre —. Un champ ciblé est l'option la plus fiable. | Filtre libre |
| Valeur cherchée | (Rechercher, avec un champ ciblé) La valeur recherchée, par exemple state.parameters.email. La recherche est de type « contient ». | Vide |
| Filtre | (Rechercher, en filtre libre) Un filtre au format champ,opérateur,valeur, par exemple email,cr,@exemple.fr. Opérateurs : cr, sw, ed, eq, ne, gt, ge, lt, le. | Vide |
| Identifiant de l'enregistrement | (Modifier) L'identifiant de l'enregistrement, renvoyé par une recherche en amont, par exemple state.parameters.record_id. | Vide |
| Champs de l'enregistrement | (Ajouter, Modifier) Une ligne par champ de la base. | Vides |
| Variable de résultat | Le nom sous lequel le résultat est rangé (state.parameters.<nom>), réutilisable dans les prompts et les blocs suivants. | Vide |
Chaque valeur est un texte fixe ou un chemin state.* lu au moment de l'exécution.
Attention
Modifier remplace l'enregistrement entier : un champ laissé vide est perdu. Renseignez tous les champs, modifiés ou non, par exemple à partir du résultat d'une recherche précédente.
L'encadré Comment ce bloc s'exécute indique l'outil utilisé pour l'opération choisie. Si cet outil n'existe pas encore dans votre espace, un avertissement s'affiche avec le bouton Créer le tool maintenant. Le lien Gérer les tools de cette base (page Datastores) ouvre la base. Voir Datastores.
Exemple — Identification d'un client :
- Un Agent LLM demande l'e-mail du client et l'enregistre dans
parameters.email. - Un bloc Datastore : Base « Clients », Opération Rechercher, Champ ciblé
email, Valeur cherchéestate.parameters.email, Variable de résultatclient. - L'Agent LLM suivant salue le client avec
{{state.parameters.client}}dans son prompt.
Routage
Le bloc Routage décrit un branchement conditionnel à deux cas plus un cas par défaut.
Sorties : Cas A, Cas B, Sinon.
| Champ | Description | Valeur par défaut |
|---|---|---|
| Condition (cas A) | La condition du premier cas, par exemple statut == "premium". | Vide |
| Condition (cas B) | La condition du second cas, par exemple statut == "standard". | Vide |
Attention
Comme pour la Requête HTTP, ces conditions ne sont pas évaluées pendant une conversation. Pour aiguiller un parcours, utilisez une fonction en Sortie Conditionnelle (voir Fonctions appelables).
Validation humaine
Le bloc Validation humaine met la conversation en pause jusqu'à la décision d'un opérateur, par exemple pour approuver un geste commercial. La demande apparaît dans la file des validations ; le flow reprend dès la décision, ou à l'expiration du délai.
Sorties : Décision reçue et Timeout.
| Champ | Description | Valeur par défaut |
|---|---|---|
| Titre | Le titre affiché dans la file de validation, par exemple « Valider le remboursement ». | Vide |
| Consigne au validateur | Ce que l'opérateur doit vérifier. | Vide |
| Contexte montré au validateur | Des lignes libellé → valeur affichées à l'opérateur. Chaque valeur est un texte fixe ou un chemin lu dans la conversation (bouton abc / path), par exemple state.parameters.orderId. | Aucune |
| Champs de décision | Le formulaire que remplit l'opérateur. Sans champ, la validation est une simple approbation. | Aucun |
| Délai max (s) | Sans décision dans ce délai, la sortie Timeout est empruntée. Vide : attente sans échéance. | 300 |
Chaque Champ de décision comporte :
| Réglage | Description |
|---|---|
| Nom | Identifiant du champ (lettres, chiffres et _), par exemple decision. submitted_by et submitted_at sont réservés. |
| Type | Texte, Entier, Nombre ou Oui / Non. |
| Libellé | Le texte affiché à l'opérateur. |
| Choix | (Texte) Les valeurs possibles séparées par des virgules, par exemple APPROUVER, REFUSER. Vide : saisie libre. |
| Valeur par défaut | Optionnelle : texte fixe ou chemin (abc / path). |
| requis | Rend le champ obligatoire. |
La décision est ensuite disponible pour les blocs suivants sous result.<nom>.
Distribuer à un agent ViaFlow
Cochez Distribuer à un agent ViaFlow pour confier la validation aux agents d'un service : une tâche d'approbation est créée et distribuée, et le flow attend leur décision ou le délai.
| Champ | Description |
|---|---|
| Service | Obligatoire. Le service dont les agents reçoivent la tâche. Sans service, la validation reste dans Flowtative. |
| Groupe d'agents | Conservé dans le flow mais pas encore transmis : la distribution se fait par service uniquement. |
| Objet de la tâche | L'objet affiché aux agents. Vide : le titre du bloc. |
Une tâche distribuée doit expirer : sans Délai max, 300 secondes sont appliquées. Le numéro de tâche est conservé dans state.parameters.approval_case_id ; sur la sortie Timeout, appelez l'outil expireApproval avec ce numéro pour clore la tâche.
Exemple — Geste commercial : Titre « Avoir de 30 € », Contexte « Client » → state.parameters.client, un champ decision de type Texte avec les choix ACCORDER, REFUSER, Délai max 600. Décision reçue mène à un Agent LLM qui annonce la décision, Timeout à un Message qui promet un rappel.
Voir Validations humaines.
Message
Le bloc Message fait dire un message par l'IA. Par défaut, elle le formule naturellement dans le contexte de la conversation ; elle peut aussi le réciter mot pour mot.
Sortie : Suite.
| Champ | Description | Valeur par défaut |
|---|---|---|
| Message à énoncer | La consigne d'énoncé. Accepte les variables {{…}}. | Vide |
| Réciter mot à mot | Impose le texte exact, sans reformulation ni traduction : mentions légales, information RGPD… | Désactivé |
| Ton / persona | Ajuste le ton sans changer le message. Champ replié derrière + Ton / persona. | Vide |
| Attendre une réponse | Désactivé : message purement informatif, l'IA l'énonce puis enchaîne vers la suite dans le même tour, sans attendre de réponse. | Activé |
| Clavier téléphonique (DTMF) | Voir Clavier téléphonique. | Défauts plateforme |
Exemple — Mention d'enregistrement : « Cet appel peut être enregistré pour améliorer la qualité de nos services. », Réciter mot à mot activé, Attendre une réponse désactivé. Voir aussi Message d'accueil ou prompt ?.
Le bloc E-mail envoie un e-mail de notification dès l'entrée dans le bloc. Le destinataire ne peut pas y répondre dans la conversation.
Sortie : Envoyé. Elle doit être reliée, sinon le bloc affiche Sans suite.
| Champ | Description | Valeur par défaut |
|---|---|---|
| Service e-mail | Obligatoire. Le service d'envoi, à choisir dans la liste (Choisir un service e-mail…) ou à saisir. | Vide |
| Expéditeur | Obligatoire. L'adresse expéditrice, par exemple no-reply@societe.com. | Vide |
| Destinataire | L'adresse du destinataire, fixe ou lue dans la conversation (state.parameters.email). | Vide |
| Objet | L'objet de l'e-mail. | Vide |
| Corps (HTML) | Le contenu, en HTML. Pour un contenu dynamique, indiquez un chemin state.parameters.…. | Vide |
Exemple — Confirmation de rendez-vous : Destinataire state.parameters.email, Objet « Confirmation de votre rendez-vous », puis un bloc Raccrocher.
SMS
Le bloc SMS envoie un SMS de notification dès l'entrée dans le bloc. Le destinataire ne peut pas y répondre dans la conversation.
Sortie : Envoyé. Elle doit être reliée, sinon le bloc affiche Sans suite.
| Champ | Description | Valeur par défaut |
|---|---|---|
| Expéditeur | Obligatoire. Le numéro ou le nom alphanumérique affiché chez le destinataire, par exemple FLOWTATIVE. | Vide |
| Numéro | Le numéro du destinataire, fixe (+33612345678) ou lu dans la conversation (state.parameters.callerNumber). | Vide |
| Texte du message | Le contenu du SMS. Un segment SMS compte 160 caractères. Pour un contenu dynamique, indiquez un chemin state.parameters.…. | Vide |
| Référence | Obligatoire. Un libellé libre conservé pour la traçabilité de l'envoi. | Vide |
Pour les blocs E-mail et SMS, un avertissement s'affiche dans le panneau si l'outil d'envoi correspondant n'est pas déclaré dans votre espace : le flow échouerait au chargement.
Exemple — Après un suivi de commande, un SMS envoie le lien de suivi au numéro de l'appelant, avec la Référence « suivi-commande ».
Raccrocher
Le bloc Raccrocher termine la conversation. Il peut dire un message d'adieu, transférer l'appel vers un conseiller et transmettre des informations de fin.
Sortie : aucune.
| Champ | Description | Valeur par défaut |
|---|---|---|
| Message d'adieu | Dit tel quel à l'entrée du bloc, sans passer par le modèle. Vide : raccrochage silencieux. Pour un adieu formulé par l'IA, placez un Agent LLM avant ce bloc. | Vide |
| Paramètres de fin | Des paires clé → valeur transmises à la fin de la conversation. Voir ci-dessous. | Aucun |
| Motif de clôture | Un motif court, par exemple résolu, affiché sur le bloc dans le canvas. | Vide |
Paramètres de fin
- Transfert d'appel ajoute en un clic les clés Numéro de transfert (
transferNumber) et Mode de transfert (transferMode). En appel vocal, elles transfèrent l'appelant vers ce numéro. - Mode de transfert : BRIDGE (pont : le bot reste en ligne) ou REFER (renvoi SIP : le bot sort de l'appel).
- Paramètre libre (Paramètre dès qu'une ligne existe) ajoute une clé de votre choix ; la clé
endReasons'affiche sous le libellé Motif de fin. Une clé ne contient que des lettres, chiffres et_; une clé en double est signalée. - Chaque valeur est un texte fixe (
abc) ou un chemin lu dans la conversation (path), par exemplestate.parameters.orderId.
En chat, les paramètres de fin sont reçus avec la fin de session. Ils sont aussi enregistrés sur la transcription et exploitables dans les analyses. Une valeur fixée ici n'est jamais écrasée par l'IA. Pour un parcours complet, voir Transférer vers un conseiller et Collecter des informations.
Exemple — Réclamation : Message d'adieu « Je vous passe un conseiller, bonne journée. », Transfert d'appel vers +33123456789 en BRIDGE, et un paramètre endReason = reclamation.
Réglages communs
Fonctions appelables
Les blocs Déclencheur et Agent LLM proposent une liste de fonctions que l'IA peut appeler. Une fonction sert à trois choses, combinables :
- appeler un outil : quand le nom de la fonction correspond à l'identifiant d'un de vos outils, l'outil est exécuté ;
- enregistrer une information grâce aux écritures d'état ;
- changer d'étape grâce à sa sortie.
Cliquez sur + Fonction pour en ajouter une, puis renseignez :
| Réglage | Description |
|---|---|
| Nom | Le nom de la fonction, par exemple rechercher_client. Les identifiants de vos outils sont proposés à la saisie. Un nom en double est signalé. |
| Description | Quand l'appeler ? La description lue par l'IA pour décider d'appeler la fonction. |
| Détail | Le bouton détail (ou N params) déplie les arguments, les écritures d'état et l'envoi HTTP. |
| Sortie | Directe : une seule cible. Conditionnelle : plusieurs branches avec conditions, plus un repli. |
Sortie directe — Tracez un lien depuis le point de sortie de la fonction vers le bloc cible. Sans lien, l'IA reste sur le bloc après l'appel.
Sortie conditionnelle — Chaque Branche porte une condition si <valeur> <opérateur> <valeur attendue> :
- valeur observée : un chemin, par exemple
state.parameters.statut_commande; - opérateurs : = égal à, ≠ différent de, < inférieur à, ≤ inf. ou égal, > supérieur à, ≥ sup. ou égal, ∈ dans la liste, ∉ hors liste (listes sous la forme
a, b, c) ; - la première condition vraie l'emporte : l'ordre des branches est leur priorité (flèches pour monter ou descendre) ;
- le repli sinon est obligatoire : tracez un lien depuis son point de sortie.
Chaque branche et le repli ont leur propre point de sortie sur le bloc.
Détail d'une fonction :
| Section | Description |
|---|---|
| Arguments (fournis par le LLM) | Les arguments que l'IA renseigne, avec leur type et leurs contraintes. Lecture seule. |
| Écritures d'état (après exécution) | Les informations rangées après l'appel, dans l'ordre. Opérations : set (assigne), append (ajoute à une liste), merge (fusionne un objet), delete (supprime la clé). Le chemin commence par parameters. ; la valeur est un texte fixe ou un chemin args.* (argument de l'appel), result.* (retour de l'outil) ou state.*. |
| Envoi HTTP (submit) | L'envoi HTTP associé à la fonction, s'il existe. Lecture seule. |
| JSON | Affiche la définition complète de la fonction. |
Exemple — Fonction verifier_eligibilite, description « Appelle cette fonction quand le client a donné son numéro de contrat », écriture set parameters.eligible ← result.eligible, sortie Conditionnelle : branche 1 state.parameters.eligible = égal à true vers « Proposition de l'offre », repli vers « Explication du refus ».
Clavier téléphonique (DTMF)
Les blocs Déclencheur, Agent LLM et Message permettent de régler la saisie au clavier téléphonique. Le clavier est toujours écouté ; sans réglage, les valeurs par défaut de la plateforme s'appliquent. Réglez un bloc quand il attend une saisie précise : choix de menu, code, numéro de contrat.
Cliquez sur Régler le clavier pour ce nœud, puis choisissez un préréglage ou ajustez les champs. Un encadré résume en direct ce que vivra l'appelant.
| Champ | Description | Valeur par défaut |
|---|---|---|
| Menu 1 chiffre (préréglage) | Livraison immédiate à la première touche ; # n'est pas traité comme terminateur. | — |
| Code 4 chiffres (préréglage) | 4 chiffres attendus, délais et terminateur par défaut. | — |
| Longueur attendue | Nombre de chiffres attendus, par exemple 4 pour un code. Vide : saisie libre. Une saisie plus courte ou plus longue est signalée en erreur à l'IA. | Saisie libre |
| Délai inter-chiffres | Silence après le dernier chiffre avant livraison, de 0,5 à 10 s. | 3 s |
| Délai de fin de séquence | Délai après le dernier chiffre attendu, de 0 à 2 s ; 0 = livraison immédiate. Actif uniquement avec une longueur attendue. | 500 ms |
| Terminateur | Défaut (#), # — dièse, * — étoile ou Désactivé (timers seuls). | # |
| La 1re touche coupe la parole du bot | Activé : appuyer sur une touche interrompt l'IA. Désactivé : la saisie est livrée après sa phrase. | Activé |
L'icône de retour à côté d'un délai rétablit la valeur par défaut ; la croix en haut de l'encadré retire tous les réglages.
Valeurs fixes et chemins
Plusieurs blocs acceptent, pour une même valeur, un texte fixe ou un chemin lu au moment de l'exécution :
| Préfixe | Ce qu'il désigne |
|---|---|
state.parameters.… | Une information enregistrée pendant la conversation (écriture d'état, variable de résultat). |
args.… | Un argument fourni par l'IA lors de l'appel d'une fonction. |
result.… | Le retour de l'outil ou de la décision qui vient d'être exécuté. |
Les blocs Datastore n'acceptent que des chemins state.*. Le détail, champ par champ, est dans Variables et données dynamiques.
Pour aller plus loin
L'éditeur visuel
Construire un flow dans l'éditeur, relier les blocs, configurer chaque étape et utiliser les raccourcis.
Outils
Créer des outils, les tester, les utiliser dans un flow et les lier à un agent.
Datastores
Créez des tables de données structurées, définissez leurs champs, importez vos fichiers CSV et rendez-les accessibles à vos agents et à vos flows.
Le parcours d'un appel
Relier les briques de Flowtative avant, pendant et après un appel, avec un exemple complet de flow de bout en bout.