Files
sales-bot-stacks/docs/INSTALACION.md
consultoria-as 5d9cbd4812 Commit inicial: Sales Bot - Sistema de Automatización de Ventas
- Stack completo con Mattermost, NocoDB y Sales Bot
- Procesamiento OCR de tickets con Tesseract
- Sistema de comisiones por tubos de tinte
- Comandos slash /metas y /ranking
- Documentación completa del proyecto

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-18 02:41:53 +00:00

5.3 KiB

Guía de Instalación

Requisitos del Sistema

Hardware Mínimo

  • CPU: 2 cores
  • RAM: 4 GB
  • Disco: 20 GB

Software

  • Docker 20.10+
  • Docker Compose 2.0+
  • Git

Red

  • Puerto 5000 (Sales Bot)
  • Puerto 8065 (Mattermost)
  • Puerto 8080 (NocoDB)

Instalación Paso a Paso

1. Clonar el Repositorio

git clone https://git.consultoria-as.com/<usuario>/stacks.git
cd stacks

2. Configurar Variables de Entorno

Copiar el archivo de ejemplo y editar:

cd sales-bot
cp .env.example .env
nano .env

Configurar las siguientes variables:

# Mattermost
MATTERMOST_URL=http://<IP>:8065
MATTERMOST_BOT_TOKEN=<tu_token>
MATTERMOST_TEAM_NAME=sales
MATTERMOST_WEBHOOK_SECRET=<tu_secret>
MATTERMOST_WEBHOOK_URL=http://<IP>:8065/hooks/<hook_id>

# NocoDB
NOCODB_URL=http://<IP>:8080
NOCODB_TOKEN=<tu_token>
NOCODB_TABLE_VENDEDORES=<table_id>
NOCODB_TABLE_VENTAS=<table_id>
NOCODB_TABLE_VENTAS_DETALLE=<table_id>
NOCODB_TABLE_METAS=<table_id>

# Flask
FLASK_PORT=5000
LOG_LEVEL=INFO
TZ_OFFSET=-6

3. Iniciar Mattermost

cd ../mattermost
docker compose up -d

Esperar a que inicie completamente:

docker compose logs -f
# Esperar mensaje "Server is listening"

Acceder a http://:8065 y completar la configuración inicial:

  1. Crear cuenta de administrador
  2. Crear team "sales"
  3. Crear canales necesarios

4. Configurar Bot en Mattermost

  1. Ir a Integraciones > Bot Accounts

  2. Crear nuevo bot:

    • Username: salesbot
    • Copiar el token generado
  3. Ir a Integraciones > Outgoing Webhooks

  4. Crear webhook:

    • Canal: canal de ventas
    • URL: http://<IP>:5000/webhook/mattermost
    • Copiar el token
  5. Ir a Integraciones > Slash Commands

  6. Crear comandos:

    • /metashttp://<IP>:5000/comando/metas
    • /rankinghttp://<IP>:5000/comando/ranking

5. Iniciar NocoDB

cd ../nocodb
docker compose up -d

Acceder a http://:8080 y:

  1. Crear cuenta
  2. Crear base de datos
  3. Crear tablas (ver estructura en docs/ARQUITECTURA.md)
  4. Obtener API token en Settings

6. Configurar Tablas en NocoDB

Crear las siguientes tablas:

Vendedores:

- Id (Auto)
- username (Text, Required)
- nombre_completo (Text)
- email (Email)
- meta_diaria_tubos (Number, Default: 3)
- activo (Checkbox, Default: true)
- fecha_registro (DateTime)

Ventas:

- Id (Auto)
- vendedor_username (Text, Required)
- monto (Currency)
- cliente (Text)
- fecha_venta (DateTime)
- estado (SingleSelect: pendiente, completada, cancelada)
- canal (Text)
- mensaje_id (Text)
- imagen_ticket (Attachment)
- descripcion (LongText)

Ventas Detalle:

- Id (Auto)
- venta_id (Number)
- producto (Text)
- marca (Text)
- cantidad (Number)
- precio_unitario (Currency)
- importe (Currency)

Metas:

- Id (Auto)
- vendedor_username (Text)
- mes (Text)
- tubos_vendidos (Number)
- comision (Currency)
- meta_diaria (Number)
- porcentaje_completado (Percent)
- total_vendido (Currency)

7. Obtener IDs de Tablas

En NocoDB, para cada tabla:

  1. Abrir la tabla
  2. Copiar el ID de la URL: /table/<TABLE_ID>

Actualizar estos IDs en el archivo .env.

8. Iniciar Sales Bot

cd ../sales-bot
docker compose up -d

Verificar que esté corriendo:

curl http://localhost:5000/health

Verificación de la Instalación

1. Verificar Servicios

# Mattermost
curl http://localhost:8065/api/v4/system/ping

# NocoDB
curl http://localhost:8080/api/v2/health

# Sales Bot
curl http://localhost:5000/health

2. Probar Flujo Completo

  1. Enviar mensaje en Mattermost:

    venta @monto 100 @cliente Prueba
    
  2. Verificar que el bot responda

  3. Verificar registro en NocoDB


Solución de Problemas

Sales Bot no responde

# Ver logs
docker compose -f sales-bot/compose.yaml logs -f

# Reiniciar
docker compose -f sales-bot/compose.yaml restart

Error de conexión a Mattermost

Verificar:

  1. Token del bot es correcto
  2. Bot tiene permisos en el canal
  3. URL de Mattermost es accesible

Error de conexión a NocoDB

Verificar:

  1. Token de API es correcto
  2. IDs de tablas son correctos
  3. URL de NocoDB es accesible

OCR no funciona

Verificar:

  1. Tesseract está instalado en el contenedor
  2. Imagen es legible
  3. Ver logs para errores específicos

Actualización

# Detener servicios
docker compose -f sales-bot/compose.yaml down
docker compose -f mattermost/compose.yaml down
docker compose -f nocodb/compose.yaml down

# Actualizar código
git pull

# Reconstruir imágenes
docker compose -f sales-bot/compose.yaml build

# Iniciar servicios
docker compose -f mattermost/compose.yaml up -d
docker compose -f nocodb/compose.yaml up -d
docker compose -f sales-bot/compose.yaml up -d

Backup y Restauración

Backup

# Backup de Mattermost
docker compose -f mattermost/compose.yaml exec postgres \
  pg_dump -U consultoria-as mattermost > mattermost_backup.sql

# Backup de NocoDB
docker compose -f nocodb/compose.yaml exec postgres \
  pg_dump -U consultoria-as nocodb > nocodb_backup.sql

Restauración

# Restaurar Mattermost
cat mattermost_backup.sql | docker compose -f mattermost/compose.yaml exec -T postgres \
  psql -U consultoria-as mattermost

# Restaurar NocoDB
cat nocodb_backup.sql | docker compose -f nocodb/compose.yaml exec -T postgres \
  psql -U consultoria-as nocodb