Files
SKEEN-Proyecto/hermes/docs/ROADMAP_SKEEN_HERMES_APPENDIX.md
Consultoría Alcaraz Salazar a718592291 Initial commit: SKEEN Derma Experts - Sistema Integral de Gestión Clínica
- Frontend React (SKEEN Brand) con Vite, TypeScript, Tailwind
- Frontend Homenest (versión alternativa)
- Módulos Odoo 17 custom (citas, pacientes, monedero, pagos, ventas, inventario, whatsapp)
- WACRM fork (Next.js 16 + Supabase)
- Hermes + Bridge + Skills (Qwen3.6 via Nan Builders)
- Scripts de migración y operación
- Documentación extensiva en docs/
2026-07-20 07:44:23 +00:00

48 KiB

5. Skills de Hermes para SKEEN

5.1 Overview de Skills

En Hermes, una skill es una carpeta con un archivo SKILL.md que define una capacidad del agente. El archivo contiene:

  • YAML frontmatter: metadata (nombre, descripcion, version, requisitos, plataformas, activacion)
  • Markdown body: instrucciones detalladas de como ejecutar la skill

Las skills se cargan dinamicamente en el contexto del agente segun la intencion detectada. El agente puede invocar plugins (built-in o custom) para cumplir con la skill.

Hermes es compatible con el estandar agentskills.io y tiene 166+ skills rastreadas (87 bundled + 79 optional). Las skills de SKEEN siguen este formato estandar.

5.2 Skill: skeen-rag — Catalogo de Servicios

Que hace: Proporciona informacion sobre los servicios dermatologicos de SKEEN (tratamientos, precios, duracion, contraindicaciones). Funciona como un sistema RAG (Retrieval-Augmented Generation) usando la memoria del agente.

Plugins que usa:

  • web_fetch — si necesita consultar pagina web de SKEEN
  • memory_read — leer catalogo almacenado en memoria
  • file_read — leer archivo de catalogo local

Flujo de ejecucion:

  1. Paciente pregunta: "Que tratamientos tienen para acne?"
  2. Hermes detecta intencion de consulta de catalogo → carga skill skeen-rag
  3. El agente lee el catalogo de servicios desde memoria o archivo
  4. Formatea respuesta con tratamientos relevantes, precios y duracion
  5. Envia respuesta via WACRM API

Integracion: Los servicios se sincronizan desde Odoo (product.template) a un archivo JSON que Hermes lee periodicamente.

Archivo: skills/hermes-skeen/skeen-rag/SKILL.md

5.3 Skill: skeen-agendar — Agendamiento de Citas

Que hace: Gestiona todo el flujo de agendamiento: consultar disponibilidad, crear citas, reagendar, cancelar, y confirmar. Se integra con Odoo para leer/escribir en el modulo de citas.

Plugins que usa:

  • odoo_api_call — consultar slots disponibles, crear cita
  • wacrm_send — enviar mensaje de confirmacion al paciente
  • memory_write — guardar estado de la conversacion de agendamiento

Flujo de ejecucion:

  1. Paciente: "Quiero agendar una cita"
  2. Hermes carga skill skeen-agendar
  3. Pregunta tipo de servicio (si no se especifico)
  4. Consulta Odoo: salon.booking / calendar.event — slots libres
  5. Presenta opciones al paciente
  6. Paciente selecciona fecha/hora
  7. Pide confirmacion de datos (nombre, telefono)
  8. Crea cita en Odoo via odoo_api_call
  9. Envia confirmacion via WACRM
  10. Programa recordatorio via hermes cron

Integracion: El modulo skeen_citas de Odoo expone metodos para consultar disponibilidad y crear citas.

Archivo: skills/hermes-skeen/skeen-agendar/SKILL.md

5.4 Skill: skeen-pagos — Pagos Stripe + MercadoPago

Que hace: Gestiona el cobro de servicios, genera links de pago, consulta estado de pagos, y gestiona facturacion. Se integra con Stripe y MercadoPago via Odoo.

Plugins que usa:

  • odoo_api_call — consultar servicios pendientes, registrar pago
  • wacrm_send — enviar link de pago
  • web_fetch — consultar estado de pago en Stripe/MP

Archivo: skills/hermes-skeen/skeen-pagos/SKILL.md

5.5 Skill: skeen-monedero — Monedero Digital

Que hace: Gestiona el monedero de puntos/fidelidad de SKEEN. Cada $10 MXN gastados = 1 punto = $1 MXN. Los pacientes pueden consultar saldo, redimir puntos, y ver historial.

Plugins que usa:

  • odoo_api_call — consultar/acumular/redimir puntos
  • wacrm_send — enviar saldo y confirmaciones

Archivo: skills/hermes-skeen/skeen-monedero/SKILL.md

5.6 Skill: skeen-recordatorios — Recordatorios de Citas

Que hace: Gestion recordatorios automaticos de citas, follow-ups post-tratamiento, y re-engagement de pacientes inactivos. Se ejecuta principalmente via hermes cron.

Plugins que usa:

  • memory_read — leer recordatorios pendientes
  • odoo_api_call — consultar citas proximas, pacientes inactivos
  • wacrm_send — enviar recordatorio via WhatsApp

Archivo: skills/hermes-skeen/skeen-recordatorios/SKILL.md

5.7 Resumen de Skills

Skill Trigger Principal Plugins Frecuencia
skeen-rag Pregunta sobre servicios file_read, memory_read On-demand
skeen-agendar "Agendar", "cita", "hora" odoo_api_call, wacrm_send On-demand
skeen-pagos "Pagar", "saldo", "deuda" odoo_api_call, wacrm_send On-demand
skeen-monedero "Puntos", "monedero" odoo_api_call, wacrm_send On-demand
skeen-recordatorios Cron (6h/18h/9AM) odoo_api_call, wacrm_send Programado

6. Integraciones Detalladas

6.1 WACRM ↔ Odoo: Sincronizacion de Datos

Objetivo: Mantener contactos, conversaciones y pipelines sincronizados entre WACRM y Odoo.

Sincronizacion de Contactos

Direccion Trigger Datos Metodo
WACRM → Odoo Nuevo mensaje de numero desconocido Telefono, nombre Webhook: Hermes como middleware
Odoo → WACRM Nuevo paciente registrado en frontend Nombre, telefono, email, tags WACRM API POST /api/v1/contacts
Bidireccional Actualizacion de datos Tags, custom fields Sync cada 5 min via cron

Implementacion:

# hermes/plugins/sync_contacts_wacrm_odoo.py
# Ejecutar cada 5 minutos via hermes cron

import requests
from odoo_api_call import odoo_search_read, odoo_create, odoo_write

WACRM_URL = "http://wacrm:3000"
WACRM_API_KEY = "wacrm_live_xxx"


def sync_contacts():
    # 1. Obtener contactos nuevos de WACRM
    wacrm_contacts = requests.get(
        f"{WACRM_URL}/api/v1/contacts?limit=100",
        headers={"Authorization": f"Bearer {WACRM_API_KEY}"}
    ).json()

    # 2. Para cada contacto nuevo, crear/actualizar en Odoo
    for contact in wacrm_contacts.get("data", []):
        odoo_partner = odoo_search_read(
            model="res.partner",
            domain=[["phone", "=", contact["phone"]]],
            fields=["id"]
        )

        if not odoo_partner:
            odoo_create("res.partner", {
                "name": contact.get("name", "Paciente WhatsApp"),
                "phone": contact["phone"],
                "email": contact.get("email", ""),
                "is_patient": True,
                "source": "whatsapp",
                "wacrm_contact_id": contact["id"]
            })

    # 3. Sync inverso: pacientes Odoo → WACRM
    odoo_patients = odoo_search_read(
        model="res.partner",
        domain=[["is_patient", "=", True], ["wacrm_synced", "!=", True]],
        fields=["name", "phone", "email"]
    )

    for patient in odoo_patients:
        requests.post(f"{WACRM_URL}/api/v1/contacts", json={
            "phone": patient["phone"],
            "name": patient["name"],
            "email": patient.get("email"),
            "tags": ["paciente-odoo"]
        }, headers={"Authorization": f"Bearer {WACRM_API_KEY}"})
        
        odoo_write("res.partner", [patient["id"]], {"wacrm_synced": True})

Sincronizacion de Pipelines

Los pipelines de WACRM (Kanban deals) se sincronizan con el CRM de Odoo:

WACRM Pipeline Odoo Equivalente Sync
Lead Nuevo res.partner (stage: new) Bidireccional via webhook
Consulta Programada salon.booking (state: confirmed) Odoo → WACRM tag
Tratamiento Activo sale.order (state: sale) Odoo → WACRM deal
Tratamiento Completado account.move (paid) Odoo → WACRM tag "completado"
Recurrente res.partner (last_visit < 90d) WACRM → Odoo campo

6.2 Hermes ↔ Odoo: API REST

Conexion: Hermes usa el modulo custom skeen_whatsapp en Odoo que expone endpoints JSON-RPC/XML-RPC.

Metodos expuestos por Odoo

# odoo-backend/odoo/addons/skeen_whatsapp/controllers/main.py

from odoo import http
from odoo.http import request
import json

class SkeenWhatsAppController(http.Controller):

    @http.route('/skeen/api/v1/available_slots', type='json', auth='api_key', methods=['POST'])
    def get_available_slots(self, service_id, date_from, date_to, **kw):
        slots = request.env['salon.booking'].get_available_slots(
            service_id=service_id, date_from=date_from, date_to=date_to
        )
        return {'status': 'success', 'slots': slots}

    @http.route('/skeen/api/v1/create_appointment', type='json', auth='api_key', methods=['POST'])
    def create_appointment(self, phone, name, service_id, date, time, **kw):
        partner = request.env['res.partner'].search([('phone', '=', phone)], limit=1)
        if not partner:
            partner = request.env['res.partner'].create({
                'name': name, 'phone': phone, 'is_patient': True
            })
        booking = request.env['salon.booking'].create({
            'partner_id': partner.id,
            'service_id': service_id,
            'date': date,
            'time': time,
            'state': 'confirmed'
        })
        return {'status': 'success', 'booking_id': booking.id, 'reference': booking.name}

    @http.route('/skeen/api/v1/patient_balance', type='json', auth='api_key', methods=['POST'])
    def get_patient_balance(self, phone, **kw):
        partner = request.env['res.partner'].search([('phone', '=', phone)], limit=1)
        if not partner:
            return {'status': 'error', 'message': 'Paciente no encontrado'}
        pending_invoices = request.env['account.move'].search_read(
            [('partner_id', '=', partner.id), ('payment_state', '!=', 'paid')],
            ['amount_residual', 'name']
        )
        wallet = request.env['skeen.monedero'].get_balance(partner.id)
        return {
            'status': 'success',
            'pending_balance': sum(inv['amount_residual'] for inv in pending_invoices),
            'pending_invoices': pending_invoices,
            'wallet_points': wallet['points'],
            'wallet_mxn': wallet['equivalent_mxn']
        }

    @http.route('/skeen/api/v1/wallet_redeem', type='json', auth='api_key', methods=['POST'])
    def redeem_wallet(self, phone, points, appointment_id=None, **kw):
        return request.env['skeen.monedero'].redeem_points(phone, points, appointment_id)

    @http.route('/skeen/api/v1/cancel_appointment', type='json', auth='api_key', methods=['POST'])
    def cancel_appointment(self, phone, booking_id=None, **kw):
        domain = [('partner_id.phone', '=', phone), ('state', '=', 'confirmed')]
        if booking_id:
            domain.append(('id', '=', booking_id))
        booking = request.env['salon.booking'].search(domain, order='date asc', limit=1)
        if not booking:
            return {'status': 'error', 'message': 'No se encontro cita activa'}
        booking.write({'state': 'cancelled'})
        return {'status': 'success', 'cancelled_booking': booking.name}

Plugin de Hermes para Odoo

Ver archivo: hermes/plugins/odoo_api_call.py

6.3 Hermes ↔ WACRM: Comunicacion

Hermes y WACRM se comunican por dos canales:

Canal 1: WACRM → Hermes (Webhooks outbound)

Ver archivo: hermes/webhooks/wacrm_webhook_server.py

Canal 2: Hermes → WACRM (API REST)

Ver archivo: hermes/plugins/wacrm_send.py

6.4 WACRM ↔ Meta WhatsApp API: Configuracion

WACRM se conecta directamente a la API de Meta (Cloud API), sin intermediarios:

Paso 1: Crear app en Meta Developers

  1. Ir a developers.facebook.com
  2. Crear nueva app → Tipo: "Business" → Nombre: "SKEEN WhatsApp CRM"
  3. Agregar producto "WhatsApp"
  4. Configurar:
    • Phone Number ID: El numero de telefono de SKEEN
    • WhatsApp Business Account ID: El WABA ID
    • Access Token: Token de acceso permanente

Paso 2: Configurar webhook en Meta

Campo Valor
Callback URL https://crm.skeen.mx/api/whatsapp/webhook
Verify Token skeen_webhook_verify_2026
Subscription fields messages, message_template_status_update

Paso 3: Configurar WACRM

En WACRM dashboard → Settings → WhatsApp:

Campo Origen
Phone Number ID Meta Developers
Access Token Token permanente (encriptado AES-256)
Business Account ID WABA ID
Verify Token skeen_webhook_verify_2026

Paso 4: Templates de Meta aprobados

Template Categoria Uso
bienvenida_skeen UTILITY Primer contacto
confirmacion_cita UTILITY Confirmacion de agendamiento
recordatorio_cita UTILITY Recordatorio 24h antes
followup_tratamiento UTILITY Seguimiento post-tratamiento
reengage_skeen MARKETING Re-engagement pacientes inactivos
comprobante_pago UTILITY Confirmacion de pago recibido

Registrar webhook outbound de WACRM a Hermes

curl -X POST https://crm.skeen.mx/api/v1/webhooks \
  -H "Authorization: Bearer wacrm_live_XXX" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://hermes.skeen.mx/webhook/wacrm",
    "events": ["message.received", "message.status_updated", "conversation.created"]
  }'

7. Configuracion de WACRM

7.1 Fork y Self-Host

# PASO 1: Fork del repositorio
git clone https://github.com/SKEEN-DERMA/wacrm.git
cd wacrm

# PASO 2: Instalar dependencias
npm install
node -v  # v20.x o superior

# PASO 3: Configurar variables de entorno
cp .env.local.example .env.local

# Editar .env.local:
# NEXT_PUBLIC_SUPABASE_URL=https://your-project.supabase.co
# NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...
# SUPABASE_SERVICE_ROLE_KEY=eyJ...
# ENCRYPTION_KEY=<64-hex-chars>
# WHATSAPP_PHONE_NUMBER_ID=123456789012345
# WHATSAPP_BUSINESS_ACCOUNT_ID=987654321098765
# WHATSAPP_ACCESS_TOKEN=EAA...
# WHATSAPP_VERIFY_TOKEN=skeen_webhook_verify_2026

# PASO 4: Configurar Supabase
# Crear proyecto en supabase.com
# Ejecutar migraciones en orden (001 a 028)
# Las migraciones 026_api_keys.sql y 028_webhook_endpoints.sql son REQUERIDAS

# PASO 5: Generar encryption key
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
# Output: 64 caracteres hex. NO cambiar despues.

# PASO 6: Configurar WhatsApp Business API en Meta Developers
# - Crear app, agregar producto WhatsApp
# - Registrar numero de telefono de SKEEN
# - Generar Access Token permanente (System User)
# - Configurar webhook con URL de WACRM

# PASO 7: Build y arrancar
npm run build
npm start
# Dev: npm run dev (localhost:3000)

7.2 Configuracion de Automatizaciones No-Code

En WACRM Dashboard → Automations, crear estos flows:

Automatizacion 1: "Nuevo mensaje → Webhook Hermes"

Trigger: "Primer mensaje de contacto" O "Mensaje recibido"
  |
  +-- Condition: Si es primer mensaje
  |     → Action: Enviar template "bienvenida_skeen"
  |     → Action: Esperar 5 segundos
  |
  +-- Action: Webhook → POST https://hermes.skeen.mx/webhook/wacrm
        Headers: X-WACRM-Event: message.received
        Body: { from, text, conversation_id, contact_id, is_first_message }

Automatizacion 2: "Tag 'Cita-Confirmada' → Recordatorio"

Trigger: "Tag cambiado" → Tag = "cita-confirmada"
  |
  +-- Action: Crear deal en pipeline "Citas" (stage: Confirmada)
  +-- Action: Webhook → POST https://hermes.skeen.mx/webhook/wacrm
        Body: { event: "appointment.confirmed", phone, service, date, time }

Automatizacion 3: "Mensaje no respondido 30min → Alerta"

Trigger: "Mensaje recibido"
  |
  +-- Action: Esperar 30 minutos
  +-- Condition: Si mensaje NO tiene respuesta del agente
        → Action: Asignar a agente disponible (round-robin)
        → Action: Tag "urgente-sin-respuesta"

7.3 Configuracion de AI Assistant

En WACRM Dashboard → Settings → AI Assistant:

Campo Valor
Provider OpenAI
API Key sk-proj-… (misma que Hermes o dedicada)
Model gpt-4o-mini (para draft replies)
Auto-reply OFF (Hermes maneja las respuestas)
Knowledge Base Subir: "Manual de Servicios SKEEN" + "FAQ Pacientes"
Handoff trigger Cuando el usuario escribe "AGENTE" o "HUMANO"

Nota: WACRM AI Assistant es para draft replies de agentes humanos. Hermes es el agente autonomo principal. No activar auto-reply de WACRM para evitar conflictos con Hermes.


8. Configuracion de Hermes

8.1 Instalacion del Gateway

# PASO 1: Instalar Hermes globalmente
# Requisito: Python 3.11+
python3 --version  # 3.11+ requerido

# Instalar via script oficial
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

# O instalar via pip
pip install "hermes-agent[messaging,cron,web]"

# Verificar instalacion
hermes --version  # v0.14.0+

# PASO 2: Configuracion inicial (setup wizard)
hermes setup
# - AI Provider: OpenAI
# - API Key: sk-proj-...
# - Model: gpt-4o
# - Platforms: Seleccionar webhook
# - Cron: YES

# PASO 3: Estructura post-setup
# ~/.hermes/
# ├── config.yaml          # Configuracion principal
# ├── plugins/
# │   ├── odoo_api_call.py   # Plugin Odoo
# │   └── wacrm_send.py      # Plugin WACRM
# └── workspace/
#     ├── AGENTS.md          # Instrucciones operativas
#     ├── SOUL.md            # Personalidad "Sofia"
#     ├── MEMORY.md          # Memoria persistente
#     ├── TOOLS.md           # Notas de tools
#     ├── IDENTITY.md        # Nombre/vibe/emoji
#     └── USER.md            # Perfil clinica

# PASO 4: Copiar config de SKEEN
cp /path/to/skeen-roadmap/hermes/config.yaml ~/.hermes/config.yaml

# PASO 5: Copiar plugins
cp /path/to/skeen-roadmap/hermes/plugins/*.py ~/.hermes/plugins/

# PASO 6: Copiar skills
cp -r /path/to/skeen-roadmap/hermes/skills/* ~/.hermes/skills/

# PASO 7: Configurar SOUL.md (personalidad "Sofia")
hermes personality set sofia
# O editar ~/.hermes/workspace/SOUL.md directamente

# PASO 8: Verificar configuracion
hermes doctor

# PASO 9: Iniciar Gateway (modo dev)
hermes gateway start

# PASO 10: Servicio systemd (produccion)
sudo tee /etc/systemd/system/hermes.service << 'EOF'
[Unit]
Description=Hermes Gateway — Agente IA SKEEN
After=network.target

[Service]
Type=simple
User=hermes
WorkingDirectory=/home/hermes
Environment=OPENAI_API_KEY=sk-proj-...
Environment=ANTHROPIC_API_KEY=sk-ant-...
Environment=ODOO_URL=http://odoo:8069
Environment=ODOO_DB=skeen
Environment=ODOO_API_KEY=...
Environment=WACRM_URL=http://wacrm:3000
Environment=WACRM_API_KEY=wacrm_live_...
Environment=HERMES_WEBHOOK_PORT=8080
ExecStart=/usr/local/bin/hermes gateway start
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable hermes
sudo systemctl start hermes

8.2 Cron para Recordatorios

Configuracion en ~/.hermes/config.yaml:

cron:
  enabled: true
  jobs:
    - name: recordatorios-citas
      schedule: "0 18 * * *"  # 6 PM diario
      command: "skill skeen-recordatorios --action send"
    - name: generar-recordatorios
      schedule: "0 */6 * * *"  # Cada 6 horas
      command: "skill skeen-recordatorios --action generate"
    - name: followups-semanal
      schedule: "0 10 * * 1"  # Lunes 10 AM
      command: "skill skeen-recordatorios --action followup"
    - name: reengagement-semanal
      schedule: "0 9 * * 1"  # Lunes 9 AM
      command: "skill skeen-recordatorios --action reengage"

La skill skeen-recordatorios tiene metadata.hermes.always: true, lo que la mantiene activa en cada ejecucion de cron.

Intervalo Accion Skill
6 PM diario Enviar recordatorios pendientes skeen-recordatorios
Cada 6h Generar nuevos recordatorios skeen-recordatorios
Lunes 10 AM Follow-ups post-tratamiento skeen-recordatorios
Lunes 9 AM Re-engagement pacientes inactivos skeen-recordatorios

8.3 Integracion WACRM como Canal

En esta arquitectura WACRM es el canal principal. Hermes NO configura el canal WhatsApp nativo (Baileys). La comunicacion es:

Paciente → WhatsApp → Meta Cloud API → WACRM → Webhook → Hermes
                                                          |
Paciente ← WhatsApp ← Meta Cloud API ← WACRM ← API ← Respuesta IA

Ventaja: WACRM maneja toda la complejidad de Meta API (templates, rate limits, delivery tracking). Hermes se enfoca en la logica de negocio.

8.4 Monitoreo del Gateway

# Estado del gateway
hermes gateway status

# Ver logs
hermes logs --follow

# Health check
curl http://localhost:8080/health

# Listar cron jobs
hermes cron list

# Reiniciar gateway
hermes gateway restart

# Ver plataformas activas
hermes platforms

# Diagnosticar
hermes doctor

9. Roadmap Actualizado por Fase

Fecha de inicio: 5 de julio 2026 (hoy) Fecha de fin: 24 de agosto 2026 (8 semanas) Equipo: 2-3 desarrolladores (Dev 1: WACRM/Infra, Dev 2: Odoo/Backend, Dev 3: Hermes/Frontend)

FASE 1: WACRM + Hermes Base (5 julio — 13 julio) | 9 dias

Objetivo: Tener WACRM operativo con WhatsApp, Hermes configurado como agente IA, y la comunicacion basica WACRM ↔ Hermes funcionando.

Semana 1 — Dias 1-5 (5 jul — 9 jul)

Dia Fecha Tarea Responsable Entregable
1 Sab 5 jul Fork de WACRM + setup local + Supabase project + migraciones base Dev 1 WACRM corriendo en localhost
1 Sab 5 jul Crear app en Meta Developers + registrar numero de SKEEN + obtener tokens Dev 1 Phone ID + Access Token + WABA ID
2 Dom 6 jul Configurar WhatsApp en WACRM + webhook verification + enviar primer mensaje de prueba Dev 1 "Hola Mundo" via WACRM → WhatsApp
2 Dom 6 jul Instalar Hermes + setup wizard + configurar gateway Dev 3 Gateway corriendo en :8080
3 Lun 7 jul Configurar SOUL.md (personalidad "Sofia") + AGENTS.md (instrucciones) Dev 3 Personalidad definida y testeada
3 Lun 7 jul Crear skill skeen-rag (catalogo de servicios) + JSON de servicios Dev 3 Skill funcional con test unitario
4 Mar 8 jul Crear plugin odoo_api_call.py (conexion XML-RPC con Odoo) Dev 2 Plugin conectando con Odoo de prueba
4 Mar 8 jul Crear plugin wacrm_send.py (envio de mensajes) Dev 3 Plugin funcional
5 Mie 9 jul Crear servidor webhook en Hermes (recibir de WACRM) Dev 3 WACRM ↔ Hermes comunicacion bidireccional
5 Mie 9 jul Crear skill skeen-agendar v1 (consultar disponibilidad) Dev 3 Skill + test de integracion
5 Mie 9 jul Subir templates de Meta para aprobacion (bienvenida, confirmacion, recordatorio) Dev 1 Templates submitted en Meta

Semana 2 — Dias 6-9 (10 jul — 13 jul)

Dia Fecha Tarea Responsable Entregable
6 Jue 10 jul Deploy de WACRM en VPS Hetzner (Docker) + Nginx + SSL Dev 1 crm.skeen.mx en produccion
6 Jue 10 jul Deploy de Hermes gateway en VPS (Docker + systemd) Dev 3 hermes.skeen.mx en produccion
7 Vie 11 jul Integracion WACRM webhook → Hermes en produccion + end-to-end test Dev 1 + Dev 3 Mensaje paciente → Sofia responde (automatizado)
7 Vie 11 jul Crear skill skeen-pagos v1 (Stripe Checkout links) Dev 3 Generacion de links de pago funcional
8 Sab 12 jul Configurar automatizaciones no-code en WACRM (nuevo mensaje → webhook Hermes) Dev 1 Automatizacion activa en produccion
8 Sab 12 jul Crear skill skeen-monedero v1 (consulta saldo) Dev 3 Skill funcional
9 Dom 13 jul Testing completo Fase 1 + bug fixes + documentacion Todos Reporte de testing + fixes aplicados

Checkpoint Fase 1

  • WACRM desplegado en crm.skeen.mx con WhatsApp activo
  • Hermes gateway corriendo como daemon
  • Sofia (Hermes) responde mensajes de WhatsApp via WACRM
  • Skills: skeen-rag, skeen-agendar, skeen-pagos, skeen-monedero funcionales
  • Templates de Meta aprobados (bienvenida, confirmacion, recordatorio)
  • Automatizacion no-code: mensaje nuevo → webhook → Hermes
  • Plugins: odoo_api_call, wacrm_send funcionales

FASE 2: Odoo + Frontend (14 julio — 3 agosto) | 21 dias

Objetivo: Odoo 17 desplegado con modulos custom, frontend React con dashboard de clinicas, y sincronizacion basica WACRM ↔ Odoo.

Semana 3 — Dias 10-14 (14 jul — 18 jul)

Dia Fecha Tarea Responsable Entregable
10 Lun 14 jul Instalar Odoo 17 Community en VPS + PostgreSQL + Redis Dev 2 Odoo corriendo en erp.skeen.mx
10 Lun 14 jul Crear modulos Odoo: skeen_pacientes (res.partner extendido) Dev 2 Modulo instalado con campos custom
11 Mar 15 jul Modulo skeen_citas (salon.booking extendido) + disponibilidad Dev 2 Calendario de citas funcional
11 Mar 15 jul Frontend: Setup React 18 + Vite + Tailwind + routing basico Dev 3 App corriendo en localhost:5173
12 Mie 16 jul Modulo skeen_monedero (sistema de puntos/fidelidad) Dev 2 Monedero con acumulacion/redencion
12 Mie 16 jul Frontend: Auth con Odoo + pantalla login + dashboard layout Dev 3 Login funcional + layout principal
13 Jue 17 jul Modulo skeen_pagos (integracion Stripe + MercadoPago webhooks) Dev 2 Webhooks de pago funcionando
13 Jue 17 jul Frontend: Pantalla de agenda/citas + calendario Dev 3 Calendario interactivo de citas
14 Vie 18 jul Modulo skeen_whatsapp (controladores API para Hermes) Dev 2 Endpoints JSON-RPC funcionales
14 Vie 18 jul Frontend: Pantalla de pacientes + busqueda + filtros Dev 3 Lista de pacientes funcional

Semana 4 — Dias 15-19 (19 jul — 23 jul)

Dia Fecha Tarea Responsable Entregable
15 Sab 19 jul Conectar Hermes con Odoo en produccion (endpoints reales) Dev 2 + Dev 3 Hermes consulta Odoo en prod
15 Sab 19 jul Actualizar skill skeen-agendar para usar endpoints de produccion Dev 3 Agendamiento end-to-end funcional
16 Dom 20 jul Frontend: Pantalla de pagos + integracion Stripe Checkout Dev 3 Links de pago generados desde frontend
16 Dom 20 jul Sincronizacion contactos WACRM ↔ Odoo (plugin cron) Dev 1 Sync bidireccional cada 5 min
17 Lun 21 jul Frontend: Pantalla de monedero + historial de puntos Dev 3 Monedero digital visual
17 Lun 21 jul Skill skeen-recordatorios v1 (cron basico) Dev 3 Recordatorios 24h antes funcionando
18 Mar 22 jul Frontend: Reportes + analytics (citas, ingresos, pacientes nuevos) Dev 3 Dashboard con charts
18 Mar 22 jul WACRM: Configurar pipelines Kanban para leads de WhatsApp Dev 1 Pipeline: Lead → Consulta → Tratamiento → Recurrente
19 Mie 23 jul Testing Fase 2 + integracion WACRM-Odoo-Frontend Todos Test suite pasando

Semana 5 — Dias 20-24 (24 jul — 28 jul)

Dia Fecha Tarea Responsable
20 Jue 24 jul WACRM: Configurar AI Assistant con knowledge base de SKEEN Dev 1
21 Vie 25 jul Frontend: Responsive design + mobile optimization Dev 3
22 Sab 26 jul Seguridad: Rate limiting, input validation, audit logs Dev 2
23 Dom 27 jul Optimizacion: Caching Redis, query optimization, lazy loading Dev 2 + Dev 3
24 Lun 28 jul Buffer + bug fixes + pulido de UX Todos

Semana 6 — Dias 25-28 (29 jul — 1 ago)

Dia Fecha Tarea Responsable
25 Mar 29 jul WACRM: Configurar broadcast campaigns (promos, newsletters) Dev 1
26 Mie 30 jul Hermes: Follow-ups post-tratamiento (7 dias) via cron Dev 3
27 Jue 31 jul Hermes: Re-engagement pacientes inactivos (90 dias) Dev 3
28 Vie 1 ago Testing completo + performance testing Todos

Checkpoint Fase 2

  • Odoo 17 desplegado con 5 modulos custom funcionales
  • Frontend React con dashboard, agenda, pacientes, pagos, monedero
  • Hermes integrado con Odoo en produccion (XML-RPC)
  • Skills actualizados para endpoints reales
  • Sincronizacion WACRM ↔ Odoo automatica
  • Recordatorios automaticos funcionando (via hermes cron)
  • Pagos Stripe + MercadoPago integrados

FASE 3: Integracion Completa + Go-Live (4 agosto — 24 agosto) | 21 dias

Objetivo: Todos los sistemas integrados, testing final, capacitacion del equipo SKEEN, y go-live productivo.

Semana 7 — Dias 29-32 (4 ago — 7 ago)

Dia Fecha Tarea Responsable
29 Lun 4 ago Integracion completa: test end-to-end de todos los flujos Todos
30 Mar 5 ago WACRM: Configurar team accounts + roles (owner/admin/agent/viewer) Dev 1
30 Mar 5 ago Onboarding de 2-3 recepcionistas/agentes de SKEEN en WACRM Dev 1
31 Mie 6 ago Hermes: Tuning de prompts + optimizacion de respuestas Dev 3
31 Mie 6 ago WACRM: Configurar flows (chatbot no-code para FAQs simples) Dev 1
32 Jue 7 ago Testing con usuarios reales (recepcionistas de SKEEN) Todos + Cliente

Semana 8 — Dias 33-36 (8 ago — 12 ago)

Dia Fecha Tarea Responsable
33 Vie 8 ago Fixes post-testing con usuarios reales Todos
34 Sab 9 ago WACRM: Subir y aprobar templates restantes (follow-up, re-engage) Dev 1
35 Dom 10 ago Monitoreo: Configurar Uptime Kuma + alertas (email/WhatsApp) Dev 1
36 Lun 11 ago Backup strategy: PostgreSQL dumps diarios + Hermes workspace Dev 2
36 Mar 12 ago Performance tuning: CDN, caching, DB indices, connection pooling Dev 2

Semana 9 — Dias 37-41 (13 ago — 17 ago)

Dia Fecha Tarea Responsable
37 Mie 13 ago Capacitacion equipo SKEEN: WACRM inbox + pipelines + broadcasts Todos + Cliente
38 Jue 14 ago Capacitacion equipo SKEEN: Frontend dashboard + Odoo backend Todos + Cliente
39 Vie 15 ago Documentacion final: guias de uso + troubleshooting Todos
40 Sab 16 ago Soft launch: sistema activo con soporte nuestro presente Todos
41 Dom 17 ago Monitoreo intenso + ajustes finos + pulido Todos

Semana 10 — Dias 42-47 (18 ago — 24 ago)

Dia Fecha Tarea Responsable
42 Lun 18 ago Handoff gradual: SKEEN toma control con nuestro soporte remoto Todos
43-46 Mar-Vie Soporte activo + monitoreo + ajustes menores Todos
47 Dom 24 ago GO-LIVE OFICIAL + cierre de proyecto Todos + Cliente

Checkpoint Fase 3 (Proyecto Completo)

  • Integracion completa WACRM + Hermes + Odoo + Frontend
  • Team accounts configurados en WACRM
  • Equipo SKEEN capacitado
  • Monitoreo y alertas activos
  • Backup strategy implementado
  • Soft launch exitoso
  • Go-live oficial
  • Documentacion entregada

Gantt Chart Resumido

Julio 2026                           Agosto 2026
5  8  11  14  17  20  23  26  29  1 | 4  7  10  13  16  19  22  24
|==== FASE 1 ====|                   |
|WACRM setup      |                   |
|Hermes config    |                   |
|Skills v1        |                   |
|Meta templates   |                   |
                 |===== FASE 2 ======|
                 |Odoo modules        |
                 |Frontend React      |
                 |Hermes-Odoo integ  |
                 |WACRM-Odoo sync    |
                                     |==== FASE 3 ======|
                                     |E2E testing       |
                                     |Capacitacion      |
                                     |Soft launch       |
                                     |Go-live           |

10. Ventajas y Desventajas de esta Arquitectura

10.1 Pros de WACRM vs Twilio + Inbox Custom

Aspecto WACRM Twilio + Custom
Tiempo de desarrollo Inbox listo dia 1 2-3 semanas de desarrollo
Costo MIT (gratis), solo hosting Twilio fees $0.005/msg + desarrollo
Shared inbox Nativo multi-agente A construir desde cero
Pipelines Kanban Nativo con drag-drop A construir
Automatizaciones Visual builder no-code Todo en codigo
Broadcasts Nativo con templates Meta API calls custom
Dashboard Real-time nativo A construir
AI Assistant Built-in con BYOK Integracion manual
Team accounts Nativo (invite por link) Sistema de auth custom
API REST publica /api/v1 completa A construir
Mobile-responsive Si (Next.js 16 + Tailwind) Depende de implementacion
Community GitHub 1.2k stars, activo Solo tu equipo

10.2 Pros de Hermes vs OpenClaw / FastAPI + GPT-4o Directo

Aspecto Hermes OpenClaw FastAPI + GPT-4o
Arquitectura Gateway Python con WS + API Gateway Node.js WS Servidor HTTP stateless
Memoria SQLite + MEMORY.md + plugins Archivos Markdown Stateless (cada request nueva)
Skills Modulares (SKILL.md) — 166+ disponibles Modulares (SKILL.md) Codigo embebido en endpoints
Tools 25+ built-in + plugins Python 25+ built-in + custom JS A implementar una por una
Cron Nativo (hermes cron) Heartbeat custom (30 min) Solo reactivo (request/response)
Multi-model OpenAI, Anthropic, Google, Ollama, 15+ providers OpenAI, Anthropic, Ollama Solo el que integres
Fallback providers Nativo con cadena de failover No No
Context compression Nativo — hasta 50% de ventana No No
Credential pools Rotacion automatica de API keys No No
Subagentes Si — delegacion aislada con terminal propio No No
Handoff humano Nativo con triggers Nativo A implementar
Session management SQLite con FTS5 search Archivos MD A implementar
API Server OpenAI-compatible /v1/chat/completions No A construir
TUI Ink-based interactivo No No
MCP Cliente + servidor nativo No No
Voice Push-to-talk, voice notes No No
Browser Camofox, Browserbase, Browser Use No No
Agente autonomo Si — puede actuar solo via cron Si — heartbeat No — solo responde requests
Community 150k+ stars, 700+ skills, Nous Research 150k+ stars (misma base) Solo tu equipo
Skills Hub agentskills.io + ClawHub ClawHub N/A
Costo MIT (gratis), solo LLM fees MIT (gratis), solo LLM fees Desarrollo + hosting + LLM
Lenguaje Python 3.11+ Node.js 22+ Python 3.10+

10.3 Ventajas Generales de la Nueva Arquitectura

  1. 60% menos codigo custom: WACRM inbox + Hermes skills vs construir todo desde cero
  2. Stack coherente: WACRM usa Node.js (Next.js); Hermes usa Python — ambos con ecosistemas maduros
  3. Comunidad activa: WACRM (1.2k stars) + Hermes (150k stars, Nous Research) = soporte continuo
  4. Self-host completo: Codigo propio, datos propios, infra propia
  5. Escalable: WACRM escala con Supabase; Hermes escala con gateway adicionales y profiles
  6. Modular: Skills de Hermes se pueden agregar/cambiar sin redeploy; plugins Python hot-reload
  7. Sin vendor lock-in de Twilio: API estandar de Meta, codigo MIT
  8. AI nativo: Hermes esta disenado para agentes IA desde el ground up
  9. Proactive: Cron nativo permite acciones sin input del usuario (recordatorios, follow-ups, re-engagement)
  10. Resiliente: Fallback providers, credential pools, context compression — tolerancia a fallos built-in
  11. Costo predecible: Hosting fijo + fees de Meta/OpenAI sin margenes de terceros

10.4 Riesgos y Mitigaciones

Riesgo Probabilidad Impacto Mitigacion
Meta rechaza templates de WhatsApp Media Alto Subir templates temprano (Fase 1 dia 5); tener mensajes de texto como fallback
WACRM tiene bugs en produccion Media Medio Fork propio permite patches rapidos; community activa en GitHub issues
Hermes gateway se cae Baja Alto systemd auto-restart; monitoreo Uptime Kuma; fallback a WACRM AI Assistant; fallback providers
Odoo XML-RPC lento Media Medio Caching en Redis; batch queries; indices en DB
Equipo SKEEN no adopta WACRM Media Medio Capacitacion hands-on; WACRM tiene UX intuitiva; soporte primeras 2 semanas
Costo OpenAI API excede presupuesto Baja Medio Implementar rate limiting; fallback a GPT-4o-mini; monitoreo de uso; credential pools
Supabase limites en tier gratuito Baja Medio Migrar a tier Pro ($25/mes) si se excede; o self-host Supabase
Numero WhatsApp de SKEEN bloqueado Baja Alto Seguir guidelines de Meta; templates aprobados; no spam; opt-in explicito
Dependencia de proyectos open-source Media Medio Ambos MIT license; codigo propio en fork; comunidades grandes y activas
Integracion WACRM ↔ Hermes compleja Media Medio Webhook simple con firma HMAC; API REST bien documentada; testing temprano
Python 3.11+ no disponible en VPS Baja Alto Usar Docker con imagen base Python 3.11; o pyenv

10.5 Estrategia de Contingencia

Si algun componente falla irreparablemente:

  • WACRM cae: Fallback a Hermes con canal WhatsApp directo (Baileys) + inbox manual
  • Hermes cae: WACRM AI Assistant toma el control con auto-reply basico + handoff a humano; fallback providers mantienen LLM activo
  • Odoo cae: WACRM + Hermes pueden operar con datos locales (SQLite) hasta restaurar
  • Meta API cae: No hay alternativa (es la infraestructura de WhatsApp), esperar
  • OpenAI cae: Hermes fallback providers activan Claude, OpenRouter, o modelos locales (Ollama/LM Studio)

11. Requisitos del Cliente (Actualizados)

11.1 De SKEEN Derma Experts — Para Comenzar

Requisito Prioridad Entrega Esperada Notas
Numero de telefono de WhatsApp Business CRITICA Dia 1 (5 jul) Debe estar verificado por Meta
Cuenta Meta Business CRITICA Dia 1 Para registrar la app de WhatsApp
Logo y branding Alta Semana 1 Para personalizar WACRM (fork)
Lista de servicios y precios CRITICA Semana 1 Para skill skeen-rag y Odoo
Horarios de atencion CRITICA Semana 1 Para skill skeen-agendar
Datos de 5-10 pacientes de prueba Alta Semana 2 Para testing de agendamiento
Acceso a Stripe account Media Semana 2 Para integracion de pagos
Acceso a MercadoPago account Media Semana 2 Para pagos en Mexico
Fotos de la clinica Baja Semana 3 Para templates de WhatsApp
FAQ comunes de pacientes Alta Semana 1 Para knowledge base de Sofia
Designar 2-3 recepcionistas Alta Semana 7 Para capacitacion WACRM inbox
Dominio skeen.mx CRITICA Dia 1 Para DNS y subdominios

11.2 Informacion Tecnica Requerida

# Datos que necesitamos de SKEEN antes del dia 1:

# 1. NUMERO WHATSAPP BUSINESS
#    - Numero de telefono (formato internacional: +52...)
#    - Debe estar verificado en Meta Business
#    - Tipo: numero de telefono fijo o movil del negocio

# 2. META BUSINESS ACCOUNT
#    - Business Manager ID
#    - Admin access para crear apps
#    - O invitarnos como desarrolladores

# 3. SERVICIOS (JSON o Excel)
[
  { "name": "Consulta Dermatologica", "price": 800, "duration": 30, "category": "consulta" },
  { "name": "Tratamiento Facial Acne", "price": 1500, "duration": 60, "category": "tratamiento" },
  ...
]

# 4. HORARIOS
#    - Lun-Vie: 9:00-18:00 (o el que aplique)
#    - Sab: 9:00-14:00
#    - Feriados / dias cerrados

# 5. PERSONAL MEDICO
#    - Nombre del dermatologo/a principal
#    - Especialidades
#    - Horarios especificos por doctor

# 6. STRIPE / MERCADOPAGO
#    - Stripe: Secret key + Publishable key
#    - MercadoPago: Access token + Public key

# 7. DOMINIO Y DNS
#    - Acceso a DNS de skeen.mx (o delegarnos subdomain)
#    - Subdominios necesarios: crm, erp, app, hermes

12. Presupuesto de Infraestructura Actualizado

12.1 Costos Mensuales Recurrentes

Servicio Costo Mensual (USD) Costo Mensual (MXN) Notas
VPS Hetzner CPX31 $15.00 ~$270 4 vCPU / 8 GB RAM / 160 GB SSD
Supabase (Pro tier) $25.00 ~$450 PostgreSQL + Auth + Storage + Realtime
Meta WhatsApp Cloud API $5-50 ~$90-$900 Variable: $0.003-0.008 por conversacion
OpenAI API (GPT-4o) $20-80 ~$360-$1,440 Variable: ~500-2000 conversaciones/mes
Stripe $0 base $0 Solo fees por transaccion (2.9% + $0.30)
MercadoPago $0 base $0 Solo fees por transaccion (3.5-4.5%)
Cloudflare (Free) $0 $0 DNS + CDN + DDoS protection
Let's Encrypt $0 $0 SSL certificates gratis
Uptime Kuma $0 $0 Self-hosted, open source
Dominio skeen.mx $1-2 ~$20-40 ~$12-20 USD/ano
Backup storage $3-5 ~$55-90 Hetzner Storage Box para dumps
TOTAL MENSUAL (base) ~$68 ~$1,224 Con volumen bajo
TOTAL MENSUAL (promedio) ~$130 ~$2,340 Con ~500 conversaciones/mes
TOTAL MENSUAL (alto) ~$200 ~$3,600 Con ~2000 conversaciones/mes

12.2 Comparativa de Costos: Original vs Nueva

Concepto Original (Twilio + Custom) Nueva (WACRM + Hermes) Ahorro
WhatsApp messaging (500 conversaciones) $25 (Twilio) $15 (Meta directo) 40%
Inbox/CRM hosting $20 (infra custom) $25 (Supabase Pro) -25% (pero sin dev)
Desarrollo inbox (amortizado 12 meses) $400/mes $0 100%
Agente IA backend $30 (infra custom) $20 (Hermes + OpenAI) 33%
Desarrollo agente IA (amortizado 12 meses) $600/mes $100/mes 83%
CRM/Contactos $10 (infra) Incluido en Supabase 100%
Dashboard analytics $15 (infra) Incluido en WACRM 100%
Total mensual (con desarrollo amortizado) ~$1,100 ~$180 ~84%
Total mensual (solo infra + APIs) ~$100 ~$80 20%

12.3 Costo de Desarrollo (8 semanas)

El contrato de $182,500 MXN se mantiene. La redistribucion del esfuerzo:

Fase Esfuerzo Estimado Notas
Fase 1: WACRM + Hermes Base 25% del esfuerzo WACRM listo reduce tiempo significativamente
Fase 2: Odoo + Frontend 45% del esfuerzo Similar al plan original
Fase 3: Integracion + Go-Live 20% del esfuerzo Testing + capacitacion
Buffer (10%) 10% del esfuerzo Para imprevistos

Ahorro de tiempo estimado: ~2-3 semanas menos de desarrollo gracias a WACRM inbox + Hermes tools/skills/cron listos. Esto permite:

  • Mas tiempo para pulir la experiencia de usuario
  • Mas capacitacion del equipo SKEEN
  • Mejor testing de integraciones
  • Features extra (broadcasts, flows, subagentes)

12.4 Proyeccion a 12 Meses

Mes Conversaciones Costo Infra (USD) Costo APIs (USD) Total (USD) Total (MXN)
Mes 1-2 (lanzamiento) 100-200 $68 $30 $98 ~$1,764
Mes 3-6 (crecimiento) 300-500 $68 $65 $133 ~$2,394
Mes 7-12 (estable) 500-1000 $68 $120 $188 ~$3,384
Promedio anual ~500/mes $816 $1,050 $1,866 ~$33,588

12.5 ROI Estimado para SKEEN

Metrica Valor
Reduccion no-shows (recordatorios automaticos) ~30-40% menos citas perdidas
Aumento re-agendamiento (re-engagement 90d) ~15-20% pacientes recuperados
Tiempo recepcionista ahorrado ~10-15 hrs/semana en agendamiento manual
Mejora satisfaccion paciente Respuesta inmediata 24/7 via Sofia
Ingreso adicional estimado $5,000-$15,000 MXN/mes (menos no-shows + re-engagement)
Payback de inversion ~2-3 meses

Apendice A: Glosario de Terminos

Termino Definicion
WACRM CRM open-source para WhatsApp. Shared inbox, pipelines, broadcasts, automatizaciones.
Hermes Agente de IA autonomo open-source por Nous Research. Gateway Python con skills, tools, memoria, cron.
SKILL.md Archivo Markdown que define una capacidad del agente (instrucciones + metadata YAML). Compatible con agentskills.io.
SOUL.md Archivo que define la personalidad, tono y limites del agente Hermes.
AGENTS.md Archivo con instrucciones operativas del agente (flujos de trabajo).
Cron Sistema de tareas programadas nativo de Hermes (hermes cron).
Meta Cloud API API oficial de WhatsApp Business (antes WhatsApp Business API).
BYOK Bring Your Own Key — usar tu propia API key de OpenAI/Anthropic.
Supabase Backend-as-a-Service open-source (PostgreSQL + Auth + Storage + Realtime).
RLS Row-Level Security — seguridad a nivel de fila en PostgreSQL.
Webhook HTTP callback — un sistema notifica a otro via POST cuando ocurre un evento.
HMAC-SHA256 Algoritmo de firma criptografica para verificar autenticidad de webhooks.
Template (Meta) Mensaje pre-aprobado por Meta para enviar via WhatsApp Business API.
Pipeline (Kanban) Tablero visual de etapas para seguimiento de leads/deals.
Broadcast Envio masivo de mensajes a una lista de contactos.
Monedero digital Sistema de puntos/fidelidad acumulados por compras.
Handoff Transferencia de conversacion de IA a agente humano.
Fallback providers Cadena de proveedores LLM de respaldo en Hermes.
Credential pools Rotacion automatica de multiples API keys del mismo proveedor.
Context compression Compresion nativa de contexto en Hermes para conversaciones largas.
Subagentes Agentes aislados delegados por Hermes para tareas paralelas.
MCP Model Context Protocol — estandar de integracion de herramientas.
Profile Instancia aislada de Hermes con su propia config, memoria y skills.

Apendice B: Recursos y Referencias

Recurso URL
WACRM GitHub https://github.com/ArnasDon/wacrm
WACRM Docs https://wacrm.tech/docs
WACRM Public API https://wacrm.tech/docs/public-api
Hermes Agent (Nous Research) https://hermes-agent.nousresearch.com
Hermes Docs https://hermes-agent.nousresearch.com/docs
Hermes GitHub https://github.com/NousResearch/hermes-agent
Skills Hub (agentskills.io) https://agentskills.io
Meta WhatsApp Cloud API https://developers.facebook.com/docs/whatsapp/cloud-api
Supabase https://supabase.com
Odoo 17 https://www.odoo.com/documentation/17.0
Stripe Mexico https://stripe.com/mx
MercadoPago Developers https://www.mercadopago.com.mx/developers

Apendice C: Checklist de Go-Live

T-7 dias (17 ago)

  • Todos los servicios desplegados y saludables
  • Monitoreo activo (Uptime Kuma)
  • Alertas configuradas (email + WhatsApp)
  • Backup automatizado probado
  • SSL certificates validos
  • DNS configurado correctamente
  • Hermes gateway estable (hermes doctor pasa)
  • Cron jobs activos y verificados

T-3 dias (21 ago)

  • Templates de Meta todos aprobados
  • Sofia responde correctamente a 20+ escenarios de prueba
  • Agendamiento end-to-end funcional
  • Pagos (Stripe + MP) funcionan
  • Monedero acumula y redime puntos
  • Recordatorios automaticos enviados correctamente
  • WACRM inbox con team accounts y roles
  • Fallback providers configurados y probados

T-1 dia (23 ago)

  • Equipo SKEEN tiene accesos y credenciales
  • Guia de usuario entregada
  • Canales de soporte establecidos
  • Rollback plan documentado
  • Comunicacion a pacientes preparada (mensaje de lanzamiento)
  • Hermes memory respaldada
  • Plugins y skills verificados

T-0 (24 ago) — GO-LIVE

  • Activar webhook de produccion
  • Confirmar primer mensaje de paciente real procesado
  • Monitoreo intenso primeras 4 horas
  • Soporte remoto disponible
  • Verificar cron jobs ejecutando correctamente
  • Confirmar fallback providers activos

Documento elaborado: 5 de julio 2026 Version: 3.0 — Arquitectura Actualizada (WACRM + Hermes + Odoo) Proxima revision: Al cierre de Fase 1 (13 julio 2026) Autor: Equipo de desarrollo SKEEN Derma Experts