Flows interactivos

Formularios multipantalla de tipo WhatsApp Flow (registro, listas de espera y recopilación de datos).

Conceptos

ObjetoDescripción
BotContenedor (runtime_mode=local o servicio del socio)
FlowRecorrido de varias etapas con nombre (code, imagen de tarjeta y CTA)
StepPantalla: form, input, select, end, …
InvitaciónMensaje del hub con content_type=flow; abre el formulario

Invitar a un usuario a un flow

POST /api/v1/bots/{bot_code}/flows/{flow_code}/invite

{
  "phone": "+228XXXXXXXX",
  "body": "Rejoignez la liste d’attente SEED."
}

Crea una tarjeta de flow independiente en el hub del socio (no una conversación de soporte).

Ejemplo

curl -X POST "$API/bots/portail/flows/waitlist/invite" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone":"+228XXXXXXXX"}'

Sesión del usuario final (aplicaciones cliente)

Las aplicaciones cliente utilizan el JWT del usuario (no la clave del socio):

EndpointObjetivo
POST /me/flows/startIniciar / reanudar la sesión
POST /me/bots/sessions/{ref}/inputEnviar la etapa (form_submit, texto u otp)
GET /me/flowsEnumerar los flows disponibles

Payload de envío del formulario

{
  "type": "form_submit",
  "values": {
    "full_name": "Ama Koffi",
    "phone": "+22890000000",
    "email": "[email protected]"
  }
}

Validación

El servidor valida los tipos de campo (correo electrónico, teléfono E.164, número, fecha, select, etc.).
Consulte Validación de campos.

Finalización

Si se completa correctamente, la misma tarjeta de flow pasa a status=completed con un resumen de las respuestas en modo de solo lectura. Los mensajes de chat de las etapas intermedias no se publican.

Definición de un flow local

Configúrelo en Partner Hub (MorisBox → Bots) o mediante datos seed / provisioning:

  • Bot: runtime_mode=local
  • Flow: campos de la tarjeta (code, imagen y CTA)
  • Steps: fields_json para los formularios con varios campos