Canal WhatsApp #
Configura un bot con Meta Cloud API o Twilio y consulta su estado.
Prepara tu terminal una vez
Variables para bash o zsh
export FLOWORDR_BASE_URL="https://app.flowordr.com"
export FLOWORDR_API_KEY="<tu-api-key>"
export FLOWORDR_TENANT_ID="<tu-tenant-id>"Ejecuta este bloque antes de los cURL. Sustituye los valores entre ángulos por tus credenciales; ningún ejemplo contiene claves reales.
Los endpoints de administración aceptan API key mediante el esquema predeterminado FlowordrAuth. Los webhooks son para Meta/Twilio y no se invocan con una API key de cliente. Actualizar un bot usa PATCH, no PUT.
GET /api/whatsapp/bots
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa del tenant | — | Autenticación. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado | Tenant de la clave | Necesario si la clave permite varios tenants. |
cURL
curl "$FLOWORDR_BASE_URL/api/whatsapp/bots" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID"Respuesta: 200 lista de bots.
POST /api/whatsapp/bots
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa del tenant | — | Autenticación. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado | Tenant de la clave | Necesario si la clave permite varios tenants. |
| providerType | body integer enum | Sí | 0 = Cloud, 1 = Twilio | — | El JSON del backend recibe el valor numérico. |
| displayName | body string | Sí | Hasta 100 caracteres | — | Nombre visible. |
| phoneNumberOrSender | body string | Sí | Phone Number ID de Meta o número E.164 de Twilio | — | Remitente. |
| accessTokenOrSid | body string | Sí | Token Meta o Account SID Twilio | — | Credencial del proveedor. |
| secretOrAuthToken | body string | No | App Secret Meta o Auth Token Twilio | — | Validación del proveedor. |
| webhookVerifyToken | body string | No | Token de verificación | — | Webhook Meta. |
| welcomeMessage | body string | No | Texto | — | Bienvenida. |
| defaultRagOptions / defaultDocumentIds | body object / integer[] | No | Opciones RAG / IDs del tenant | Defaults de WhatsApp | Configuración del asistente. |
| rateLimitPerMinute | body integer | null | No | 0 o más; 0 sin límite | 20 | Límite por número. |
cURL
curl -X POST "$FLOWORDR_BASE_URL/api/whatsapp/bots" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID" -H "Content-Type: application/json" -d '{"providerType":0,"displayName":"Soporte","phoneNumberOrSender":"<phone-number-id>","accessTokenOrSid":"<token-de-meta>","secretOrAuthToken":"<app-secret>","webhookVerifyToken":"<verify-token>"}'Respuesta: 201 bot; 400 configuración inválida; 409 conflicto.
GET /api/whatsapp/bots/{botId}
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa del tenant | — | Autenticación. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado | Tenant de la clave | Necesario si la clave permite varios tenants. |
| botId | path UUID | Sí | ID de un bot del tenant | — | Bot por consultar o cambiar. |
cURL
curl "$FLOWORDR_BASE_URL/api/whatsapp/bots/<bot-id>" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID"Respuesta: 200 bot; 404 si no existe.
GET /api/whatsapp/bots/{botId}/detail
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa del tenant | — | Autenticación. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado | Tenant de la clave | Necesario si la clave permite varios tenants. |
| botId | path UUID | Sí | ID de un bot del tenant | — | Bot por consultar o cambiar. |
cURL
curl "$FLOWORDR_BASE_URL/api/whatsapp/bots/<bot-id>/detail" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID"Respuesta: 200 detalle sin secretos; 404 si no existe.
PATCH /api/whatsapp/bots/{botId}
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa del tenant | — | Autenticación. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado | Tenant de la clave | Necesario si la clave permite varios tenants. |
| botId | path UUID | Sí | ID de un bot del tenant | — | Bot por consultar o cambiar. |
| Campos de CreateWhatsAppBotRequest | body object | No | Campos presentes se actualizan; isActive: boolean | Sin cambios | Actualización parcial. |
cURL
curl -X PATCH "$FLOWORDR_BASE_URL/api/whatsapp/bots/<bot-id>" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID" -H "Content-Type: application/json" -d '{"displayName":"Soporte actualizado"}'Respuesta: 200 bot actualizado; 400 o 404.
DELETE /api/whatsapp/bots/{botId}
| Nombre | Tipo | Obligatorio | Valores aceptados / rango | Default | Descripción |
|---|---|---|---|---|---|
| X-Api-Key (header) | string | Sí | Clave activa del tenant | — | Autenticación. |
| X-Tenant-Id (header) | UUID | Condicional | Tenant autorizado | Tenant de la clave | Necesario si la clave permite varios tenants. |
| botId | path UUID | Sí | ID de un bot del tenant | — | Bot por consultar o cambiar. |
cURL
curl -X DELETE "$FLOWORDR_BASE_URL/api/whatsapp/bots/<bot-id>" -H "X-Api-Key: $FLOWORDR_API_KEY" -H "X-Tenant-Id: $FLOWORDR_TENANT_ID"Respuesta: 204 sin contenido; 404 si no existe.