WhatsApp Flows
Last update: 4 days ago by Irais Aguirre
Resumen para integración
- Endpoint:
POST https://{{url}}/whatsapp-bsp-api-endpoint-ws/services/v1/messaging- Token: de mensajería, en el encabezado
Authorization: Bearer {{wa-msg-api-token}}(cómo generarlo)- Campos comunes:
from,to(teléfono o BSUID) ytype(detalle)- Valores de
typeen esta página:"interactive"- Respuesta: la misma para todos los mensajes (ver respuesta)
Mensajes que abren un WhatsApp Flow. Para crear y administrar Flows, consulta la sección Flows. Se envían con POST /v1/messaging; los encabezados, los campos comunes y la respuesta están en Conexión HTTP.
WhatsApp Flows
El campo type debe ser "interactive" y el contenido del mensaje se envía en el objeto flow. Consulta la estructura general de los mensajes interactivos.
Cuerpo
Campos de WhatsApp Flows:
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| flow | Objeto con el WhatsApp Flow. Envía solo uno: listMessages, replyButtons o flow (o algún otro tipo de mensaje interactivo). | Objeto | Condicional |
Objeto flow
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| body | El contenido del mensaje | String | Obligatorio |
| action | La acción que deseas que realice el usuario después de leer el mensaje. | Objeto | Obligatorio |
Objeto action
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| name | Nombre de la acción. El servicio siempre envía "flow". | String | Opcional |
| parameters | Parámetros del Flow. | Objeto | Obligatorio |
Objeto action.parameters
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| mode | El flujo puede estar en modo
| String |
|
| flow_message_version | Versión del mensaje de Flow. El servicio siempre envía "3", aunque se mande otro valor. | String |
|
| flow_id | ID único del Flow proporcionado por WhatsApp. | String | Obligatorio. |
| flow_token | Token que genera tu negocio para identificar la sesión del Flow. Se devuelve en la respuesta del Flow. | String | Opcional. |
| flow_cta | Texto del botón de llamada a la acción, por ejemplo, "Registrarse". | String |
|
| flow_action |
| String |
|
| flow_action_payload | Objeto | Obligatorio si el flow_action es de tipo “navigate”. En caso contrario, deberá omitirse. |
Objeto flow_action_payload
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| screen | El ID de la pantalla que se muestra primero. | String | Tiene que ser una pantalla de entrada |
| data | Datos de entrada opcionales para la primera pantalla del Flow. Si se proporciona, debe ser un objeto que no esté vacío. | Map<String, Object> | Opcional |
Ejemplo
Ejemplo completo de WhatsApp Flows (petición HTTP y cuerpo JSON):
Petición HTTP WhatsApp Flows
curl -X POST 'https://{{url}}/whatsapp-bsp-api-endpoint-ws/services/v1/messaging' \-H 'Authorization: Bearer {{wa-msg-api-token}}' \-H 'Content-Type: application/json' \-d '{"from": "5215500000001","to": "5215500000002","type": "interactive","flow": {"body": "Agenda una sesión de asesoría de la API de WhastApp con uno de nuestros agentes de Concepto Móvil para familiarizarte con nuestras soluciones","action": {"name": "flow","parameters": {"mode": "draft","flow_message_version": "3","flow_id": "1","flow_token": "AQAAAAACS5FpgQ_cAAAAAD0QI3s.","flow_cta": "Agendar ahora","flow_action": "navigate","flow_action_payload": {"screen": "screen name","data": {"product_name": "name","product_description": "description","product_price": 100}}}}}}'
Body WhatsApp Flows
{"from": "5215500000001","to": "5215500000002","type": "interactive","flow":{"body": "Agenda una sesión de asesoría de la API de WhastApp con uno de nuestros agentes de Concepto Móvil para familiarizarte con nuestras soluciones","action": {"name": "flow","parameters": {"mode": "draft","flow_message_version": "3","flow_id": "1","flow_token": "AQAAAAACS5FpgQ_cAAAAAD0QI3s.","flow_cta": "Agendar ahora","flow_action": "navigate","flow_action_payload": {"screen": "screen name","data": {"product_name": "name","product_description": "description","product_price": 100}}}}}}
