# 🤖 Sistema de WhatsApp Bot Manager Un sistema completo de gestión de chatbot para WhatsApp Business API con interfaz web moderna, menús parametrizables y gestión avanzada de conversaciones. ## ✨ Características ### 🔧 Funcionalidades Principales - **Bot Inteligente** con menús parametrizables por números - **Interfaz Web Moderna** para gestión completa - **API REST** para integración con sistemas externos - **Respuestas Automáticas** configurables - **Envío de Mensajes** individuales y masivos - **Gestión de Usuarios** con estados y seguimiento - **Dashboard Analytics** con gráficos en tiempo real - **Logs Detallados** de todas las interacciones - **Sistema de Plantillas** para mensajes predefinidos ### 🎯 Sistema de Menús - Menús jerárquicos con navegación por números (1, 2, 3, etc.) - Acciones configurables: navegar, mensaje, API call, finalizar - Soporte para servicios, pagos, soporte técnico - Completamente parametrizable desde la interfaz ### 📱 Compatibilidad WhatsApp - Integración completa con WhatsApp Business API - Soporte para mensajes de texto, imágenes, audio, video - Plantillas de WhatsApp Business - Estados de entrega y lectura - Webhook seguro con verificación ## 🚀 Instalación ### 1. Prerrequisitos ```bash - PHP 8.0 o superior - MySQL 5.7 o superior - Servidor web (Apache/Nginx) - WhatsApp Business API Token - Dominio con SSL (para webhook) ``` ### 2. Configuración de Base de Datos ```bash # Importar el esquema de la base de datos mysql -u pym -p'Nicolas2796*+' -h 46.202.93.92 whatsapp < database/schema.sql ``` ### 3. Configuración del Proyecto ```bash # Subir archivos al servidor # Ajustar permisos chmod 755 -R bot/ chmod 666 config/config.php ``` ### 4. Configurar WhatsApp Business API 1. **Acceder a Facebook Developers** - Crear una aplicación en developers.facebook.com - Agregar el producto "WhatsApp Business API" 2. **Configurar Webhook** - URL del Webhook: `https://tudominio.com/migrador/api/webhook.php` - Token de Verificación: `mi_token_secreto_123` - Suscribirse a: `messages` 3. **Obtener Tokens** - Token de Acceso (ya proporcionado) - Phone Number ID: `938177732702718` ### 5. Configuración en la Interfaz 1. Abrir: `https://tudominio.com/migrador/` 2. Ir a **Configuración** 3. Completar: - Token de WhatsApp - Phone Number ID - Token de Verificación - Nombre de la empresa - Mensaje de bienvenida ## 📖 Uso del Sistema ### 🎮 Interfaz Web - **Dashboard**: Estadísticas y actividad en tiempo real - **Conversaciones**: Ver y gestionar todas las conversaciones - **Usuarios**: Administrar usuarios y estados - **Menús**: Configurar y editar el flujo del bot - **Mensajes**: Enviar mensajes individuales o masivos - **Configuración**: Ajustar parámetros del sistema ### 🤖 Bot de WhatsApp #### Comandos Disponibles - `menu` - Mostrar menú principal - `ayuda` - Mostrar ayuda - `salir` - Salir del menú actual #### Flujo de Menús (Ejemplo) ``` 📋 Menú Principal Selecciona una opción: 1. 💼 Ver servicios disponibles 2. 💳 Realizar pago 3. 🆘 Contactar soporte 0. ❌ Salir 💬 Responde con el número de la opción que deseas ``` ### 🔧 API Endpoints #### Webhook ```bash POST /api/webhook.php # Recibe mensajes de WhatsApp ``` #### Enviar Mensaje ```bash POST /api/send_message.php Content-Type: application/json { "recipient": "573168950803", "type": "text", "message": "Hola, este es un mensaje de prueba" } ``` #### Obtener Estadísticas ```bash GET /api/get_stats.php ``` ## 🏗️ Estructura del Proyecto ``` migrador/ ├── api/ # Endpoints de la API │ ├── webhook.php # Webhook principal │ ├── send_message.php # Envío de mensajes │ ├── get_stats.php # Estadísticas │ └── ... # Otras APIs ├── assets/ # Recursos estáticos │ ├── css/ # Estilos CSS │ └── js/ # JavaScript ├── classes/ # Clases principales │ └── Database.php # Conexión a BD ├── config/ # Configuración │ └── config.php # Configuración principal ├── database/ # Base de datos │ └── schema.sql # Esquema de BD ├── services/ # Servicios del sistema │ ├── WhatsAppService.php # Servicio WhatsApp │ └── BotService.php # Lógica del bot └── index.php # Página principal ``` ## 📊 Base de Datos ### Tablas Principales - `users` - Usuarios del sistema - `conversations` - Historial de mensajes - `menus` - Configuración de menús - `menu_options` - Opciones de cada menú - `auto_responses` - Respuestas automáticas - `system_config` - Configuración del sistema - `webhook_logs` - Logs de webhooks ## 🔧 Configuración Avanzada ### Menús Personalizados ```sql -- Crear menú personalizado INSERT INTO menus (name, title, description, is_root) VALUES ('mi_menu', '🏪 Mi Tienda', 'Menú de productos', TRUE); -- Agregar opciones INSERT INTO menu_options (menu_id, option_number, text, action_type, action_value) VALUES (1, 1, '📱 Ver catálogo', 'message', 'Aquí tienes nuestro catálogo: www.mitienda.com'), (1, 2, '🛒 Hacer pedido', 'message', 'Para hacer un pedido, envía el código del producto'), (1, 0, '🔙 Volver', 'menu', 'main_menu'); ``` ### Respuestas Automáticas ```sql -- Agregar respuesta automática INSERT INTO auto_responses (trigger_type, trigger_value, response_text) VALUES ('keyword', 'precio', 'Para consultar precios, escribe *catalogo* o visita www.mitienda.com'), ('keyword', 'horarios', 'Atendemos de Lunes a Viernes de 8am a 6pm'); ``` ## 🔐 Seguridad - Validación de tokens en webhook - Escape de datos SQL - Headers de seguridad HTTP - Logs de todas las transacciones - Autenticación de API ## 🐛 Solución de Problemas ### Error de Conexión a BD ```bash # Verificar credenciales en config/config.php # Verificar que el servidor MySQL esté activo # Comprobar permisos del usuario de BD ``` ### Webhook No Funciona ```bash # Verificar que la URL sea accesible públicamente # Comprobar que tenga SSL (HTTPS) # Revisar logs en /api/get_logs.php ``` ### Bot No Responde ```bash # Verificar token de WhatsApp en configuración # Comprobar que el webhook esté configurado # Revisar logs de errores PHP ``` ## 📞 Ejemplo de Uso Completo ### 1. Configuración Inicial ```bash # Bot configurado para empresa de servicios # Menús: Servicios, Pagos, Soporte # Respuestas automáticas para palabras clave ``` ### 2. Flujo de Usuario ``` Usuario: "Hola" Bot: "¡Hola! 👋 Bienvenido a nuestro servicio automatizado. Escribe *menu* para ver las opciones disponibles." Usuario: "menu" Bot: "📋 Menú Principal 1. 💼 Ver servicios disponibles 2. 💳 Realizar pago 3. 🆘 Contactar soporte 0. ❌ Salir" Usuario: "1" Bot: "💼 Servicios 1. 📋 Consulta de información 2. 📞 Agendar cita 3. 💰 Cotizar servicio 0. 🔙 Volver al menú principal" Usuario: "2" Bot: "Para agendar una cita, por favor proporciona tu nombre completo y tu disponibilidad horaria." ``` ## 🎨 Personalización ### Colores y Estilos ```css /* Modificar en assets/css/styles.css */ :root { --primary-color: #25d366; /* Verde WhatsApp */ --secondary-color: #128c7e; --tertiary-color: #075e54; } ``` ### Mensajes del Bot ```sql -- Modificar mensaje de bienvenida UPDATE system_config SET config_value = 'Tu mensaje personalizado' WHERE config_key = 'welcome_message'; ``` ## 📈 Monitoreo - Dashboard en tiempo real con métricas - Gráficos de actividad por día - Estados de entrega de mensajes - Logs detallados de todas las operaciones ## 🤝 Soporte Para soporte técnico o consultas: - Email: soporte@tuempresa.com - WhatsApp: +57 1 234 5678 - Web: www.tuempresa.com --- **Desarrollado con ❤️ para facilitar la comunicación empresarial a través de WhatsApp** © 2025 - Sistema WhatsApp Bot Manager v1.0.0