CapiBobbaBot

CapiBobbaBot 🧋

Un chatbot de WhatsApp para la tienda de bubble tea “CapiBobba”, diseñado para automatizar la toma de pedidos y responder preguntas de los clientes de forma inteligente.

Este proyecto utiliza la API Cloud de WhatsApp y la API de Google Gemini para ofrecer una experiencia de conversación fluida y eficiente.

✨ Características

🛠️ Tecnologías Utilizadas

🚀 Puesta en Marcha

Para ejecutar este proyecto localmente, sigue estos pasos:

1. Prerrequisitos

2. Configuración Local

  1. Clona el repositorio:
    git clone https://github.com/FeyoMx/CapiBobbaBot.git # Reemplaza con la URL de tu repositorio
    cd CapiBobbaBot
    
  2. Instala las dependencias:
    npm install
    
  3. Crea el archivo de variables de entorno: Copia el archivo .env.example a un nuevo archivo llamado .env y rellena los valores correspondientes.

    # Credenciales de la API de WhatsApp de Meta
    VERIFY_TOKEN="tu_token_de_verificacion_secreto"
    WHATSAPP_TOKEN="tu_token_de_acceso_permanente_secreto"
    PHONE_NUMBER_ID="tu_id_de_numero_de_telefono"
    
    # Clave de API de Google Gemini
    GEMINI_API_KEY="tu_api_key_de_gemini_secreta"
    
    # Números de WhatsApp de los administradores (separados por coma, sin espacios)
    # Ejemplo: 521XXXXXXXXXX,521YYYYYYYYYY
    ADMIN_WHATSAPP_NUMBERS="tu_numero_de_admin1,tu_numero_de_admin2"
    
    # URL del Webhook de n8n para recibir los eventos del bot
    N8N_WEBHOOK_URL="https://tu-instancia.n8n.com/webhook/tu-id-de-webhook"
    
    # URL de conexión a tu base de datos Redis
    # Ejemplo local (Docker): REDIS_URL="redis://localhost:6379"
    REDIS_URL="redis://user:password@host:port"
    
  4. Ejecuta el bot:
    npm start
    

    El servidor se iniciará, por lo general en el puerto 3000 o el que esté definido en tu entorno.

📂 Estructura del Proyecto

.
├── chatbot.js          # Lógica principal del bot, servidor Express y manejo de webhooks.
├── business_data.js    # Centraliza toda la información del negocio (menú, promos, etc.).
├── .env.example        # Archivo de ejemplo para las variables de entorno.
├── .env                # (Local) Archivo para guardar las claves de API y tokens.
├── PRIVACY_POLICY.md   # Política de privacidad para Meta.
├── package.json        # Dependencias y scripts del proyecto.
├── .gitignore          # Archivos y carpetas a ignorar por Git.
└── README.md           # Este archivo.

📄 Política de Privacidad

La política de privacidad que cumple con los requisitos de Meta se puede encontrar aquí.

✍️ Autor

📜 Licencia

Este proyecto está bajo la Licencia ISC.