Crear y actualizar Flows
Crea un WhatsApp Flow y sube o actualiza su definición JSON y sus metadatos.
Resumen para integración
- URL base:
https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services- Token: de administración, en el encabezado
Authorization: Bearer {{admin-token}}(cómo generarlo)- Endpoints en esta página:
POST /v1/flows/{{waba_id}}: Crear FlowPOST /v1/flows/{{waba_id}}/{{flow_id}}/assets: Subir Flow JSONPUT /v1/flows/{{waba_id}}/{{flow_id}}: Actualizar Metadata
Crear Flow
Petición
Petición de Crear Flow:
| URL | https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/flows/{{waba_id}} |
| Método | POST |
| Tipo | application/json |
Encabezados
Encabezados de Crear Flow:
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| Content-Type | application/json | String | Obligatorio |
| Authorization | Token de administración. Consulta Generar Token de Autenticación. | String | Obligatorio |
Parámetros
Parámetros de Crear Flow:
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| waba_id | ID de la cuenta de WhatsApp Business. | String | Obligatorio |
Cuerpo
Campos del cuerpo de Crear Flow:
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| name | Nombre del Flow. | String | Obligatorio |
| categories | Lista de categorías para un Flow, es posible asignar varios valores, pero se requiere al menos uno:
| Array | Obligatorio |
| clone_flow_id | ID del Flow de origen a clonar. Debe tener permiso para acceder al Flow especificado. | String | Opcional |
| endpoint_uri | URL del WA Flow Endpoint. | String | Opcional |
Ejemplo
Ejemplo completo de Crear Flow:
curl --location 'https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/flows/{{waba_id}}' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer {{admin-token}}' \--data '{"name": "New flow name","categories": [ "CUSTOMER_SUPPORT" ],"clone_flow_id": "flow-1","endpoint_uri": "https://example.com"}'
Respuesta
Respuesta de Crear Flow:
| Nombre | Descripción | Tipo |
|---|---|---|
| id | ID del Flow. | String |
{"id": "flow-1"}
Subir Flow JSON
Petición
Petición de Subir Flow JSON:
| URL | https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/flows/{{waba_id}}/{{flow_id}}/assets |
| Método | POST |
| Tipo | multipart/form-data |
Encabezados
Encabezados de Subir Flow JSON:
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| Authorization | Token de administración. Consulta Generar Token de Autenticación. | String | Obligatorio |
Parámetros
Parámetros de Subir Flow JSON:
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| waba_id | ID de la cuenta de WhatsApp Business. | String | Obligatorio |
| flow_id | ID de un Flow devuelto después de llamar a Crear Flow. | String | Obligatorio |
Cuerpo
Campos del cuerpo de Subir Flow JSON:
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| file | Archivo con el contenido del Flow JSON. El archivo debe tener extensión .json.Documentación de los componentes permitidos por Meta para la construcción del JSON: Flow JSON. Se recomienda usar la versión 7.0 en adelante. | File |
|
Ejemplo
Ejemplo completo de Subir Flow JSON:
curl --location 'https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/flows/{{waba_id}}/{{flow_id}}/assets' \--header 'Authorization: Bearer {{admin-token}}' \--form 'file=@"/file/path/flows_body.json"'
Respuesta
Respuesta de Subir Flow JSON:
| Nombre | Descripción | Tipo |
|---|---|---|
| success | Si el Flow JSON no se pudo subir correctamente retorna false, en caso contrario retorna true. | Boolean |
| validation_errors | Objeto que describe los errores del Flow JSON en caso de encontrar alguno, si no encuentra errores se retorna un array vacío. | Lista objetos |
{"success": true,"validation_errors": [{"error": "INVALID_PROPERTY","error_type": "JSON_SCHEMA_ERROR","message": "The property \"initial-text\" cannot be specified at \"$root/screens/0/layout/children/2/children/0\".","line_start": 46,"line_end": 46,"column_start": 17,"column_end": 30}]}
Objeto validation errors
| Nombre | Descripción | Tipo |
|---|---|---|
| error | Nombre del error. | String |
| error_type | Tipo de error. | String |
| message | Descripción del error. | String |
| line_start | Línea en la que empieza el error. | Integer |
| line_end | Línea en la que termina el error. | Integer |
| column_start | Columna en la que empieza el error. | Integer |
| column_end | Columna en la que termina el error. | Integer |
Para más información acerca de los posibles errores que aparezcan al momento de subir un archivo con el Flow JSON y cómo solucionarlos, consulta la documentación de Meta: Static validation errors.
Actualizar Metadata
Petición
Petición de Actualizar Metadata:
| URL | https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/flows/{{waba_id}}/{{flow_id}} |
| Método | PUT |
| Tipo | application/json |
Encabezados
Encabezados de Actualizar Metadata:
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| Content-Type | application/json | String | Obligatorio |
| Authorization | Token de administración. Consulta Generar Token de Autenticación. | String | Obligatorio |
Parámetros
Parámetros de Actualizar Metadata:
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| waba_id | ID de la cuenta de WhatsApp Business. | String | Obligatorio |
| flow_id | ID de un Flow devuelto después de llamar a Crear Flow. | String | Obligatorio |
Cuerpo
Campos del cuerpo de Actualizar Metadata:
| Nombre | Descripción | Tipo | Requerimientos |
|---|---|---|---|
| name | Nombre del Flow. | String | Obligatorio |
| categories | Lista de categorías para un Flow, es posible asignar varios valores, pero se requiere al menos uno:
| Array | Obligatorio |
| endpoint_uri | URL del WA Flow Endpoint. | String | Opcional |
Nota: clone_flow_id es un campo exclusivo de la creación. Si se envía en este endpoint de actualización, la petición se rechaza.
Ejemplo
Ejemplo completo de Actualizar Metadata:
curl --location --request PUT 'https://{{url}}/whatsapp-bsp-admin-ext-endpoint-ws/services/v1/flows/{{waba_id}}/{{flow_id}}' \--header 'Content-Type: application/json' \--header 'Authorization: Bearer {{admin-token}}' \--data '{"name": "New flow name","categories": [ "CUSTOMER_SUPPORT" ],"endpoint_uri": "https://example.com"}'
Respuesta
Respuesta de Actualizar Metadata:
| Nombre | Descripción | Tipo |
|---|---|---|
| success | En caso de actualizar correctamente alguna propiedad, retorna true, en caso contrario retorna false. | Boolean |
{"success": true}
