Skip to main content
Usa un endpoint de Flow cuando necesites cargar pantallas de forma dinámica o procesar datos enviados por un usuario de WhatsApp. Configura tu URL HTTPS pública como endpointUri al crear un Flow o actualizar sus metadatos. Esta guía describe las solicitudes JSON sin formato que YCloud reenvía a tu endpoint. No describe una conexión directa al endpoint de datos cifrados de Meta. Consulta Gestionar WhatsApp Flows para la creación, vista previa, publicación y gestión del ciclo de vida de Flow.

Antes de comenzar

  • Expón un endpoint HTTPS público que acepte solicitudes POST.
  • Devuelve JSON en menos de 15 segundos.
  • Define las pantallas y sus campos de datos en tu Flow JSON.
  • Genera un flow_token al enviar el mensaje de Flow para poder correlacionar la interacción con la sesión de tu aplicación.
  • Usa validación del lado del servidor antes de aceptar los datos enviados.

Flujo de solicitudes

  1. El usuario abre o interactúa con un Flow en WhatsApp.
  2. YCloud reenvía una solicitud JSON a tu endpoint configurado.
  3. Tu endpoint lee action y procesa la solicitud.
  4. Tu respuesta JSON selecciona una pantalla y proporciona sus datos, o completa el Flow.

Gestionar un health check

Un health check contiene action: ping:
Devuelve:
Mantén esta ruta ligera. No realices una transacción comercial durante un health check.

Gestionar una notificación de error

Las notificaciones de error incluyen data.error y data.error_message. Pueden usar INIT o data_exchange como acción. Comprueba si existen estos datos de error antes de enrutar solicitudes ordinarias por acción.
Registra el error para su investigación y devuelve una confirmación:

Gestionar el intercambio de datos

Gestiona cada acción según las pantallas que hayas definido:
El screen debe existir en tu Flow JSON. Su esquema de datos declarado debe aceptar los campos en data.

Devolver un error de validación

Permanece en la pantalla actual y devuelve un campo de error que tu pantalla muestre:

Completar el Flow

Devuelve screen: SUCCESS con extension_message_response.params. Incluye el flow_token original y cualquier campo de resultado adicional que desees en el mensaje de respuesta del Flow.
Esto cierra el Flow y envía un mensaje de respuesta del Flow al chat. Analiza el resultado desde el webhook de respuesta entrante del Flow.

Ejemplo de implementación

Este ejemplo con Express gestiona las tres categorías de solicitudes. Haz coincidir los IDs de pantalla y los campos de respuesta con tu propio Flow JSON. Monta cualquier control de acceso al endpoint utilizado por tu despliegue antes de este manejador.

Verificar el endpoint

Prueba ping, la confirmación de errores, INIT sin screen ni data, envíos válidos e inválidos, BACK y la finalización con SUCCESS. Comprueba el límite de respuesta de 15 segundos y confirma que el webhook de finalización incluya tu flow_token original. Previsualiza el Flow antes de publicarlo.