El sistema de Automatización Lurwis interactúa con múltiples APIs para recibir mensajes, enviar respuestas y gestionar buffers temporales.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/KevinhosUTP/Automatizacion-Lurwis/llms.txt
Use this file to discover all available pages before exploring further.
Webhook Principal - Meta (Facebook)
POST /meta-verify
Webhook configurado en n8n que recibe eventos de WhatsApp Business API desde Meta (Facebook).
required
Modo de verificación enviado por Meta.Valor esperado:
subscriberequired
Token de verificación configurado en Meta Developer Console.Valor:
meta-verifyChallenge enviado por Meta durante la configuración inicial del webhook.
Verificación inicial (GET)
Meta envía una petición GET para validar el webhook:El servidor debe responder con el valor exacto de
hub.challenge.Código HTTP 200 para verificación exitosa.
Recepción de mensajes (POST)
Cuando un cliente envía un mensaje por WhatsApp, Meta lo reenvía a este webhook:Array de mensajes recibidos. Puede estar vacío (mensaje de estado).
Número de teléfono del remitente en formato internacional.
Contenido del mensaje de texto enviado por el cliente.
ID del número de WhatsApp Business usado para responder.
Array de actualizaciones de estado (entregado, leído). Cuando está presente,
messages suele estar vacío.Validación y Filtrado
El webhook implementa múltiples capas de validación:1. Verificación de token
1. Verificación de token
2. Identificador de mensajes vacíos
2. Identificador de mensajes vacíos
Filtra ejecuciones donde:
messagesestá vacíotext.bodyestá vacío- Solo hay
statuses(sin mensaje nuevo)
3. Extractor de datos
3. Extractor de datos
Limpia y estructura los datos relevantes:
WhatsApp Business API (Meta)
POST https://graph.facebook.com/v21.0/{phone_number_id}/messages
Endpoint oficial de Meta para enviar mensajes de WhatsApp.
ID del número de WhatsApp Business (obtenido desde el webhook entrante).Ejemplo:
947279508470714Headers
Request Body
Siempre
whatsappNúmero de teléfono del destinatario en formato internacional (sin signos +).
Tipo de mensaje.Valores soportados:
text, image, document, templateContenido del mensaje de texto. Soporta formato básico de WhatsApp:
*negrita*_cursiva_- Emojis
Response
ID único del mensaje enviado (WAMID).
Estado inicial del mensaje.Valores:
accepted, queuedRedis API (Upstash)
El sistema utiliza Redis para gestionar el buffer temporal de mensajes.SET - Guardar buffer
Formato:
buffer_{telefono}Mensajes concatenados separados por saltos de línea (
\n).TTL (Time To Live) en segundos. Por defecto: 30 segundos.
SET - Guardar timestamp
Formato:
ts_{telefono}Timestamp Unix en milisegundos del último mensaje.
SET - Guardar metadata
Formato:
meta_{telefono}ID del número de WhatsApp Business para responder.
TTL: 120 segundos (mayor que buffer y timestamp).
GET - Leer buffer
null si no existe o expiró.
KEYS - Buscar usuarios activos
DEL - Eliminar buffer procesado
Google Gemini API
El sistema utiliza modelos de Google Gemini a través de LangChain para los agentes IA.Modelos utilizados
Modelo de IA utilizado.
- Gemini Flash: Para clasificación rápida y detección de intenciones
- Gemini Pro: Para el agente de pedidos (razonamiento complejo)
Las credenciales de API se gestionan de forma segura en n8n con el nombre “Modelo Lurwis”.
Resumen de Flujo de APIs
Manejo de Errores
Webhook - Error 403 Forbidden
Webhook - Error 403 Forbidden
Se envía cuando:
- Token de verificación incorrecto
hub.modeno es “subscribe”
WhatsApp API - Error 401/403
WhatsApp API - Error 401/403
Token de acceso inválido o expirado.Solución: Regenerar token en Meta Business Manager.
Redis - Key no encontrada
Redis - Key no encontrada
Buffer expiró antes de ser procesado (TTL venció).Solución: Ajustar TTL o reducir intervalo del cron procesador.
PostgreSQL - Connection timeout
PostgreSQL - Connection timeout
Conexión a base de datos falló.Solución: Verificar Session Pooler y credenciales en n8n.