Ce que contient un fichier Flow JSON
Un Flow JSON a deux propriétés obligatoires : version et screens. Chaque écran possède un id, un title facultatif affiché dans la barre supérieure et un layout de type SingleColumnLayout dont les children sont des composants : textes, champs de saisie, listes de choix, sélecteurs de date, consentements et un bouton Footer.
La navigation passe par les actions. Un Footer avec navigate ouvre l'écran suivant ; sur le dernier écran, marqué terminal, un Footer avec complete ferme le Flow et envoie le payload à l'entreprise avec le flow token. Depuis Flow JSON 4.0, un écran peut lire les champs d'un écran précédent avec ${screen.SCREEN_ID.form.field} : les modèles gardent donc des payloads navigate vides et regroupent toutes les réponses dans le payload complete final.
- version : la version de Flow JSON, « 7.3 » dans tous les modèles.
- screens : la liste ordonnée des écrans ; le premier sans route entrante est l'écran d'entrée.
- routing_model et data_api_version : uniquement pour les Flows qui appellent votre point de terminaison de données.
- terminal et success : marquent le dernier écran et indiquent si y terminer compte comme un succès.
Flows avec ou sans point de terminaison de données
Les douze modèles fonctionnent sans point de terminaison. Aucun serveur n'est nécessaire : les options sont écrites dans le JSON, Meta génère le modèle de routage et vous recevez les réponses sur votre webhook quand le client termine le Flow. Meta recommande ces Flows sans endpoint dès que des données en direct ne sont pas nécessaires, car ils s'ouvrent plus vite et se créent plus rapidement.
Ajoutez un point de terminaison quand l'écran dépend de données en direct : créneaux disponibles, prix variable, stock ou vérification du compte client. Les écrans utilisent alors data_exchange, le Flow a besoin de data_api_version et d'un routing_model, et votre endpoint doit déchiffrer chaque requête et répondre dans le délai imposé par Meta. C'est la partie que nous développons et hébergeons pour nos clients.
Limites de caractères et règles des composants
La plupart des Flows refusés butent sur de petites règles. Les libellés sont courts : 20 caractères pour un champ texte, une zone de texte ou une liste déroulante, 30 pour un groupe de boutons radio ou de cases, 40 pour un sélecteur de date et 35 pour le bouton du Footer. Les titres d'option sont limités à 30 caractères et les descriptions à 300. Un titre accepte 80 caractères et un texte courant 4 096.
Par écran, vous pouvez utiliser jusqu'à 50 composants, un Footer, deux liens intégrés, trois images et cinq consentements. Les id d'écran ne contiennent que des lettres et des tirets bas, et SUCCESS est réservé. Les libellés arabes se comptent en caractères, pas en octets. Le validateur contrôle tout cela et indique l'écran à corriger.
Flows en arabe et de droite à gauche pour les clients du Golfe
Chaque modèle existe en version arabe native, avec les mêmes écrans et les mêmes noms de champs : votre code webhook gère les deux langues sans modification. WhatsApp affiche les Flows arabes de droite à gauche sur le téléphone du client, et l'aperçu fait de même.
La bibliothèque couvre des cas d'usage importants dans le Golfe : inscription aux offres du Ramadan et de l'Aïd avec un envoi après l'iftar, réservation de table, demande de visite immobilière et liste de pièces KYC qui demande au client de ne pas envoyer de photo de pièce d'identité dans la conversation.
Comment envoyer un Flow à vos clients
Une fois le Flow publié, envoyez-le sous forme de message interactif de type flow avec son Flow ID, un flow token que vous générez, un texte de bouton court et le premier écran. La bibliothèque fournit le payload du message pour chaque modèle. Les messages interactifs ne fonctionnent que dans la fenêtre de service client de 24 heures ; pour contacter le client en premier, associez le Flow à un modèle de message approuvé doté d'un bouton Flow.
Quand le client termine, WhatsApp lui affiche un résumé de ses réponses et vous recevez le payload complete sur votre webhook. Répondez par un message de confirmation qui explique la suite et comment modifier ou annuler.
