# MGN-017: WhatsApp Business Integration ## Descripción del Módulo El módulo de WhatsApp Business Integration permite a los tenants conectar una o más cuentas de WhatsApp Business para automatizar la comunicación con sus clientes. Incluye envío de notificaciones, mensajes de marketing, chatbots automatizados, y integración con agentes de IA. ## Requerimientos Funcionales | ID | Nombre | Prioridad | Story Points | Estado | |----|--------|-----------|--------------|--------| | [RF-MGN-017-001](./RF-MGN-017-001-conexion-whatsapp-business.md) | Conexión WhatsApp Business API | P1 | 13 | Definido | | [RF-MGN-017-002](./RF-MGN-017-002-templates-mensajes.md) | Gestión de Templates de Mensajes | P1 | 8 | Definido | | [RF-MGN-017-003](./RF-MGN-017-003-envio-notificaciones.md) | Envío de Notificaciones Transaccionales | P1 | 8 | Definido | | [RF-MGN-017-004](./RF-MGN-017-004-inbox-conversaciones.md) | Inbox de Conversaciones | P1 | 13 | Definido | | [RF-MGN-017-005](./RF-MGN-017-005-chatbot-automatizado.md) | Chatbot Automatizado (Flujos) | P2 | 13 | Definido | | [RF-MGN-017-006](./RF-MGN-017-006-integracion-crm.md) | Integración con CRM | P2 | 8 | Definido | **Total Story Points:** 63 ## Arquitectura ``` ┌──────────────────────────────────────────────────────────────────┐ │ TENANT │ ├──────────────────────────────────────────────────────────────────┤ │ │ │ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ │ │ WhatsApp │ │ Message │ │ Chatbot │ │ │ │ Account │ │ Templates │ │ Flows │ │ │ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │ │ │ │ │ │ └─────────┼──────────────────┼───────────────────┼──────────────────┘ │ │ │ ▼ ▼ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ WhatsApp Business API │ │ (Cloud API via Meta) │ └─────────────────────────────────────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────────────┐ │ Cliente Final │ │ (WhatsApp Personal) │ └─────────────────────────────────────────────────────────────────┘ ``` ## Dependencias ### Dependencias Internas - **MGN-003 (Catalogs):** Contactos con número de WhatsApp (requiere campo `whatsapp_number`) - **MGN-007 (Sales):** Notificaciones de pedidos (confirmación, envío, entrega) - **MGN-009 (CRM):** Leads y oportunidades desde WhatsApp (auto-crear leads) - **MGN-014 (Mensajería):** Auditoría de mensajes y notificaciones internas - **MGN-015 (Billing):** Feature flags (whatsapp_enabled, whatsapp_chatbot, whatsapp_marketing) ### Dependencias Opcionales - **MGN-018 (AI Agents):** Para RF-005 (Chatbot con IA) - No requerido para RF-001 a RF-004 ### Dependencias Externas - Meta Business Suite - WhatsApp Business API (Cloud API) - Proveedor BSP opcional (Twilio, MessageBird, 360dialog) ### Integraciones Requeridas - **MGN-003:** Agregar campo `whatsapp_number` y `whatsapp_opt_in` a contactos - **MGN-009:** Crear leads automáticamente desde conversaciones nuevas - **MGN-007:** Templates para confirmación de pedido, actualización de envío ### Nota sobre Interdependencia con MGN-018 RF-005 (Chatbot Automatizado) puede funcionar en dos modos: 1. **Flujos simples:** Sin MGN-018, usa reglas y condiciones predefinidas 2. **Flujos con IA:** Con MGN-018, usa AI Agents para respuestas inteligentes Esta separación evita dependencia circular. MGN-017 es la capa de transporte, MGN-018 es la capa de inteligencia. ## Actores del Módulo | Actor | Descripción | RFs Relacionados | |-------|-------------|------------------| | Tenant Admin | Configura integración y templates | RF-001, RF-002 | | Agente de Ventas | Atiende conversaciones | RF-004 | | Sistema | Envía notificaciones automáticas | RF-003 | | Chatbot | Responde automáticamente | RF-005 | | Cliente | Recibe/envía mensajes | Todos | ## Entidades Principales ```sql -- Schema: messaging messaging.whatsapp_accounts -- Cuentas conectadas por tenant messaging.whatsapp_templates -- Templates aprobados por Meta messaging.whatsapp_conversations -- Conversaciones activas messaging.whatsapp_messages -- Mensajes enviados/recibidos messaging.chatbot_flows -- Flujos de chatbot messaging.chatbot_nodes -- Nodos de cada flujo messaging.chatbot_sessions -- Sesiones activas de chatbot ``` ## Tipos de Mensajes WhatsApp ### 1. Mensajes de Template (Outbound) - Requieren aprobación de Meta - Usados para iniciar conversaciones - Categorías: Marketing, Utility, Authentication ### 2. Mensajes de Sesión (Bidireccional) - Ventana de 24 horas después de que cliente escriba - Mensajes libres (texto, imagen, documento) - Sin costo adicional por mensaje ### 3. Mensajes de Respuesta Rápida - Dentro de ventana de 24 horas - Respuestas del agente o chatbot ## Pricing de WhatsApp Business API ### Conversaciones (Modelo Meta 2024) | Categoría | Descripción | Costo Aprox (MX) | |-----------|-------------|------------------| | Marketing | Promociones, ofertas | $0.80 MXN | | Utility | Confirmaciones, actualizaciones | $0.40 MXN | | Authentication | OTPs, verificación | $0.35 MXN | | Service | Iniciadas por cliente | $0.30 MXN | *Primeras 1,000 conversaciones de servicio gratis/mes* ## Casos de Uso Principales ### 1. Notificaciones Transaccionales ``` [Confirmación de Pedido] Hola {{nombre}}, tu pedido #{{numero}} ha sido confirmado. Total: ${{total}} Entrega estimada: {{fecha}} ``` ### 2. Recuperación de Carritos ``` [Carrito Abandonado] ¡Hola {{nombre}}! Vimos que dejaste productos en tu carrito. Completa tu compra con 10% de descuento usando el código: VUELVE10 ``` ### 3. Soporte al Cliente ``` Cliente: "¿Cuál es el estado de mi pedido?" Chatbot: "Tu pedido #12345 está en camino. Llegará el 15 de enero." ``` ## Flujo de Conexión ``` ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ Tenant │────▶│ Meta │────▶│ WhatsApp │ │ Admin │ │ Business │ │ Business │ └─────────────┘ │ Suite │ │ Account │ └─────────────┘ └─────────────┘ │ ▼ ┌─────────────┐ │ Obtener │ │ Access │ │ Token │ └─────────────┘ │ ▼ ┌─────────────┐ │ Configurar │ │ Webhooks │ └─────────────┘ ``` ## Seguridad 1. **Access Tokens:** Encriptados, rotación regular 2. **Webhooks:** Validación de firma de Meta 3. **Rate Limiting:** Respeto de límites de API 4. **Opt-in:** Solo enviar a usuarios con consentimiento 5. **GDPR/LFPDPPP:** Cumplimiento de privacidad ## Feature Flags ```json { "whatsapp_enabled": true, "whatsapp_chatbot": true, "whatsapp_ai_agent": false, "whatsapp_marketing": true, "whatsapp_max_accounts": 3 } ``` ## Notas de Implementación 1. **BSP vs Cloud API:** Se recomienda Cloud API directo para mejor control 2. **Número de Teléfono:** Debe ser número dedicado (no personal) 3. **Verificación:** Proceso de verificación de negocio con Meta 4. **Templates:** Tiempo de aprobación 24-48 horas 5. **Límites:** Inicialmente 250 conversaciones/día, escalable ## Métricas Clave ```typescript interface WhatsAppMetrics { conversations: { total: number; byCategory: Record; }; messages: { sent: number; delivered: number; read: number; failed: number; }; chatbot: { sessions: number; handoffs: number; // Escalados a agente resolutionRate: number; }; costs: { current_month: number; by_category: Record; }; } ```