Cet article présente des exemples pratiques pour structurer vos étapes, conditions et appels de connecteurs de données dans les procédures Fin.
Structuration des étapes Instruction
L'étape Instruction est l'étape par défaut et la plus puissante.
Combinez des actions liées en une seule étape
Moins d'étapes bien conçues qui combinent de manière cohérente des actions liées valent mieux que de nombreuses petites étapes séparées.
❌ Moins efficace :
Étape 1 : @read Email.
Étape 2 : Demandez l'email s'il n'est pas présent.
Étape 3 : @use get_subscription_details
Étape 4 : Envoyez une réponse listant tous les champs API.
✅ Plus efficace :
@read email. Si elle n'est pas connue, demandez à l'utilisateur son email avant de continuer. Ensuite, @use get_subscription_details et répondez en demandant à l'utilisateur ce dont il a besoin. Incluez le plan actuel de l'utilisateur, le statut du plan et la date de renouvellement suivante dans votre réponse.
Soyez clair et complet
Considérez Fin comme un nouveau coéquipier sans contexte préalable. Si un humain ne comprendrait pas facilement vos instructions, Fin ne le comprendra probablement pas non plus.
❌ Moins efficace :
Collectez le numéro de commande du client et assurez-vous qu'il est valide et n'est pas un numéro de suivi.
✅ Plus efficace :
Collectez le numéro de commande du client. S'il a fourni un numéro mais qu'il dépasse 11 caractères hors le # au début, informez-le que cela peut être un numéro de suivi et demandez-lui à nouveau le numéro de commande. Si le client ne peut pas fournir son numéro de commande, ne continuez pas @Escalate:Support team.
Ajouter des notes pour le contexte des coéquipiers
Utilisez @Add note dans une étape d'instruction pour laisser un contexte interne sur la conversation. Ceci est particulièrement utile avant les escalades ou transferts, donnant aux coéquipiers le contexte dont ils ont besoin.
❌ Moins efficace :
Étape 1 : @use Get_Order_Details et informez le client du statut.
Étape 2 : Si la commande est perdue, @Escalate vers Support team.
✅ Plus efficace :
@use Get_Order_Details et informez le client du statut. Si la commande est indiquée comme perdue ou non livrée après la date de livraison prévue, @Add note avec le numéro de commande, le fournisseur de livraison, la date de livraison prévue et le statut actuel du suivi. Puis @Escalate vers Support team.
Utilisation de l'étape Condition
Les conditions indiquent à Fin comment se comporter dans différentes situations. Vous pouvez les utiliser pour des bifurcations majeures et distinctes dans votre logique.
Exemple : Condition Code pour l'éligibilité au remboursement
Cet exemple utilise une condition Code pour vérifier la sortie d'un connecteur de données.
SI : data["Check refund eligibility"].decision == "eligible"
Informez l'utilisateur que son abonnement est éligible à un remboursement. Présentez la mise en pause comme alternative : « Si vous préférez, vous pouvez mettre votre abonnement en pause au lieu de l'annuler — ainsi, vous n'aurez pas à payer de frais de redémarrage si vous décidez de revenir plus tard. » Confirmez si l'utilisateur souhaite continuer avec le remboursement ou mettre son abonnement en pause.
Si l'utilisateur souhaite continuer avec son remboursement, alors @Use Process refund pour compléter le remboursement. Une fois terminé, informez l'utilisateur que le remboursement a été traité et que les fonds seront généralement sur son compte sous 7 à 14 jours.
SINON :
Informez l'utilisateur que son abonnement n'est pas éligible au remboursement. @Tag Not refund eligible.
Proposez-lui plutôt l'option d'annuler son abonnement, ce qui mettra en pause tout paiement futur.
@Escalate to Support team.
Exemple : Condition Langage Naturel pour le statut de réalisation
Cet exemple utilise le Langage Naturel pour vérifier un attribut.
SI : @Read Fulfillment status est 'fulfilled'
Informez le client que sa commande ne peut pas être annulée, car elle a déjà été réalisée.
@End Fin continue
À partir d'ici, vous pouvez cliquer sur l'icône + pour Ajouter une condition sinon si ou Ajouter sinon.
Travailler avec les connecteurs de données et les attributs
Vous pouvez utiliser les connecteurs de données et les attributs pour obtenir ou mettre à jour des informations.
Appeler un connecteur de données
Vous pouvez demander à Fin d'utiliser un connecteur de données pour obtenir ou mettre à jour des informations depuis un système externe.
Exemple : @Use : Get order status et informez le client du statut de sa commande.
Laisser Fin recueillir les entrées
Vous n'avez pas besoin de dire explicitement à Fin de collecter les données dont un connecteur a besoin. Fin déduit les entrées qu'il doit collecter en fonction de la configuration du connecteur.
❌ Faux (inutilement complexe) :
Demandez d'abord au client son email, puis appelez @get_order_details avec cet email
✅ Simple et clair :
Appelez @get_order_details
Lecture des données d'un connecteur
Lorsque vous utilisez un connecteur de données, les données retournées sont disponibles tout au long de la Procédure. Utilisez @read attribute pour accéder à ces données dans les étapes suivantes au lieu d'appeler à nouveau le même connecteur.
❌ Moins efficace (plus lent) :
Étape 1 : @use Get_Subscription_info et incluez @read plan status dans votre réponse
Étape 2 : @use Get_Subscription_info et incluez @read refund eligibility dans votre réponse
Simple et plus rapide :
Étape 1 : @use Get_Subscription_info incluez @read plan status dans votre réponse
Étape 2 : incluez @read refund eligibility dans votre réponse
Lecture d'un attribut Intercom
Vous pouvez aussi lire des données Intercom comme les attributs People, Company ou Conversation.
Exemple : Dites au client son @Read People.Plan
Utilisation des Sections
Les sections vous permettent d'organiser une Procédure en blocs nommés et logiques. Par défaut, Fin exécute les étapes de haut en bas indépendamment des limites des sections — les sections ne changent pas le comportement d'exécution sauf si vous demandez à Fin de sauter à une section.
Exemple : Organisation d'une procédure de retours avec des sections
Divisez une procédure longue en sections nommées pour améliorer la lisibilité et faciliter la navigation avec Aller à la section.
Section : Vérifier la commande
@use Get_Order_Details. Si la commande n'est pas trouvée, informez le client et @End Fin continue.
Section : Déterminer le type de retour
Demandez au client s'il souhaite un remboursement ou un échange.
SI : le client veut un remboursement
Aller à la section : Traiter le remboursement
SINON :
Aller à la section : Traiter l'échange
Section : Traiter le remboursement
@use Process_Refund et informez le client que le remboursement arrivera sous 7 à 14 jours. @Add note avec le numéro de commande et le montant du remboursement. @End Fin continue.
Section : Traiter l'échange
Demandez au client quel article il souhaite à la place. @use Create_Exchange et confirmez les détails de la nouvelle commande. @End Fin continue.
Quand utiliser les sections vs les sous-procédures
Utilisez les sections pour organiser le flux au sein d'une seule procédure. Utilisez les sous-procédures lorsque la même logique est réutilisée dans plusieurs procédures ou lorsque vous souhaitez encapsuler une logique complexe avec ses propres entrées et sorties.
Utilisation des sous-procédures
Les sous-procédures sont des ensembles réutilisables d'étapes pouvant être appelés depuis une autre Procédure. Cela est recommandé pour une logique complexe ou répétée.
Exemple : Exécuter une sous-procédure dans une condition
Vous pouvez exécuter une sous-procédure dans une branche conditionnelle.
SI : le choix du client est de retourner l'article et d'obtenir un remboursement complet
Envoyez le lien https://... pour télécharger l'étiquette de retour, et expliquez qu'ils recevront un remboursement complet après que les chaussures auront été retournées sous 3 à 5 jours.
SINON :
@Run sub-procedure Envoyer l'étiquette de retour & donner un code de réduction
Nommer les sous-procédures
Utilisez des noms clairs et orientés action qui communiquent ce que fait la sous-procédure.
✅ Bons noms :
CollectPaymentInfo
VerifyUserIdentity
ResolveDeliveryIssue
❌ Mauvais noms :
Step4
PartieB
GérerSectionRemboursementA
Utilisation de l'étape Ask Teammate (Human-in-the-Loop)
L'étape Ask Teammate permet à Fin de faire une pause en cours de procédure et de demander l'avis d'un coéquipier humain — sans transférer toute la conversation. Utilisez cela pour des décisions à haut risque, sensibles ou complexes où vous souhaitez l'automatisation la plupart du temps mais avez encore besoin d'un humain à des moments clés.
Exemple : Approbation de remboursement au-dessus d'un seuil
Étape 1 : @use Check_Refund_Eligibility. Si éligible, @read refund amount.
SI : data["Check_Refund_Eligibility"].refund_amount > 500
Informez le client que sa demande de remboursement est en cours d'examen et qu'il recevra une réponse sous peu.
Ask Teammate : « Le client demande un remboursement de @read refund amount pour la commande @read order number. Raison : @read refund reason. Veuillez approuver ou refuser. »
SINON :
@use Process_Refund et informez le client que le remboursement a été traité. Les fonds arriveront sous 7 à 14 jours.
Comment fonctionne Ask Teammate
Lorsque Fin atteint l'étape Ask Teammate :
Fin fait une pause et envoie une note au coéquipier assigné avec le contexte que vous avez configuré.
Le coéquipier voit la conversation dans une vue dédiée Besoin d'une réponse du coéquipier dans l'inbox.
Le coéquipier peut soit soumettre une réponse (Fin reprend la procédure en utilisant sa réponse) soit prendre le contrôle de la conversation entièrement (Fin s'arrête).
Si personne ne répond dans le délai configuré, Fin envoie un message d'escalade au client et assigne la conversation à votre équipe d'escalade.
Conseils pour Ask Teammate
✅ Fournissez un contexte clair dans la note — Incluez les points de données spécifiques dont le coéquipier a besoin pour prendre une décision (par exemple, montant du remboursement, détails de la commande, historique du client).
❌ Ne pas utiliser Ask Teammate pour des décisions routinières — Si la logique peut être exprimée comme une condition ou une vérification de code, utilisez celles-ci à la place. Réservez Ask Teammate pour des situations vraiment ambiguës ou à enjeux élevés.
Changement entre procédures
Vous pouvez diriger Fin pour passer d'une procédure à une autre lorsque les besoins du client changent en cours de conversation.
Utilisation de @Switch pour un changement déterministe
Utilisez la commande @Switch dans une étape d'instruction pour passer explicitement à une autre procédure.
Exemple :
Si le client dit qu'il souhaite annuler son abonnement au lieu de mettre à jour son mode de paiement, @Switch vers la procédure d'annulation.
Utilisation de Agentic Switch pour un changement automatique
Lorsque Agentic Switch est activé, Fin peut passer de manière autonome de la procédure en cours à une autre procédure active s'il détermine que l'intention du client a changé. Fin prend cette décision en se basant sur la conversation et les descriptions des déclencheurs de procédure, et peut poser des questions clarificatrices pour lever toute ambiguïté.
Agentic Switch est optionnel et peut être activé depuis les paramètres de la procédure. Vous pouvez toujours utiliser @Switch pour un contrôle déterministe en parallèle d'Agentic Switch.
Utilisation d'autres étapes et directives
Utilisez Guidance pour les règles globales et les étapes End pour indiquer à Fin ce qu'il faut faire ensuite.
Directives de procédure
Utilisez la section Guidance pour les règles globales sur la façon dont Fin doit interagir pendant cette procédure.
Exemple : « Ne jamais évoquer un remboursement à moins qu'un client ne le mentionne d'abord. »
Étapes End
Les étapes End indiquent à Fin que la procédure est terminée et ce qu'il faut faire ensuite.
Exemple (Passer à un workflow réutilisable) : Si le client ne fournit toujours pas le numéro de commande, alors @Pass to reusable workflow Agent Handover.
Exemple (End et escalade) : @End - Escalate à l'équipe Support
Exemple (End et laisser Fin continuer) : @End - Let Fin continue
Conseils pour créer de meilleures procédures
Utilisez la revue alimentée par AI avant la mise en production
Après avoir créé votre procédure, utilisez la revue de procédure alimentée par AI pour vérifier les problèmes potentiels dans vos instructions. La revue analyse vos étapes et signale les problèmes qui pourraient empêcher Fin de les suivre de manière fiable. C'est un moyen rapide de détecter les problèmes avant que vos clients ne les rencontrent.
Utilisez les notes de version et les retours en arrière
Lors de la publication de modifications sur une procédure en direct, ajoutez une note de version décrivant ce que vous avez changé. En cas de problème, vous pouvez consulter votre historique des versions et revenir à n'importe quelle version précédemment en ligne directement depuis la page de la procédure.
Exemple (End avec un message) : @End avec le message « Merci de nous avoir contactés ! Si vous avez besoin de quelque chose d'autre, envoyez-nous un message à nouveau. » Cela envoie un message de clôture au client avant la fin de la procédure.
Exemple (End et fermeture de la conversation) : @End - Close conversation. Cela termine la procédure et ferme automatiquement la conversation.
Exemple (End et création d'un ticket) : @End - Create a ticket en utilisant le type de ticket « Bug Report ». Cela termine la procédure et invite le client à créer un ticket, puis transmet la conversation à un coéquipier.