Flows interactifs
Formulaires multi-écrans de type WhatsApp Flow (inscription, listes d'attente, collecte de données).
Concepts
| Objet | Description |
|---|---|
| Bot | Conteneur (runtime_mode=local ou service partenaire) |
| Flow | Parcours multi-étapes nommé (code, image de carte, CTA) |
| Step | Écran : form, input, select, end, … |
| Invitation | Message hub content_type=flow - ouvre le formulaire |
Inviter un utilisateur à un flow
POST /api/v1/bots/{bot_code}/flows/{flow_code}/invite
{
"phone": "+228XXXXXXXX",
"body": "Rejoignez la liste d’attente SEED."
}
Crée une carte flow autonome dans le hub partenaire (pas une conversation support).
Exemple
curl -X POST "$API/bots/portail/flows/waitlist/invite" \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"phone":"+228XXXXXXXX"}'
Session utilisateur final (apps client)
Les apps client utilisent le JWT utilisateur (pas la clé partenaire) :
| Endpoint | Objectif |
|---|---|
POST /me/flows/start | Démarrer / reprendre la session |
POST /me/bots/sessions/{ref}/input | Soumettre l'étape (form_submit, texte, otp) |
GET /me/flows | Lister les flows disponibles |
Payload de soumission de formulaire
{
"type": "form_submit",
"values": {
"full_name": "Ama Koffi",
"phone": "+22890000000",
"email": "[email protected]"
}
}
Validation
Le serveur valide les types de champs (email, téléphone E.164, nombre, date, select, …).
Voir Validation des champs.
Achèvement
En cas de succès, la même carte flow passe à status=completed avec un résumé en lecture seule des réponses. Les messages de chat des étapes intermédiaires ne sont pas postés.
Définition de flow local
Configurer dans Partner Hub (MorisBox → Bots) ou via données seed / provisioning :
- Bot -
runtime_mode=local - Flow - champs de carte (
code, image, CTA) - Steps -
fields_jsonpour les formulaires multi-champs
