- 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/
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 SKEENmemory_read— leer catalogo almacenado en memoriafile_read— leer archivo de catalogo local
Flujo de ejecucion:
- Paciente pregunta: "Que tratamientos tienen para acne?"
- Hermes detecta intencion de consulta de catalogo → carga skill
skeen-rag - El agente lee el catalogo de servicios desde memoria o archivo
- Formatea respuesta con tratamientos relevantes, precios y duracion
- 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 citawacrm_send— enviar mensaje de confirmacion al pacientememory_write— guardar estado de la conversacion de agendamiento
Flujo de ejecucion:
- Paciente: "Quiero agendar una cita"
- Hermes carga skill
skeen-agendar - Pregunta tipo de servicio (si no se especifico)
- Consulta Odoo:
salon.booking/calendar.event— slots libres - Presenta opciones al paciente
- Paciente selecciona fecha/hora
- Pide confirmacion de datos (nombre, telefono)
- Crea cita en Odoo via
odoo_api_call - Envia confirmacion via WACRM
- 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 pagowacrm_send— enviar link de pagoweb_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 puntoswacrm_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 pendientesodoo_api_call— consultar citas proximas, pacientes inactivoswacrm_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
- Ir a developers.facebook.com
- Crear nueva app → Tipo: "Business" → Nombre: "SKEEN WhatsApp CRM"
- Agregar producto "WhatsApp"
- 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
- 60% menos codigo custom: WACRM inbox + Hermes skills vs construir todo desde cero
- Stack coherente: WACRM usa Node.js (Next.js); Hermes usa Python — ambos con ecosistemas maduros
- Comunidad activa: WACRM (1.2k stars) + Hermes (150k stars, Nous Research) = soporte continuo
- Self-host completo: Codigo propio, datos propios, infra propia
- Escalable: WACRM escala con Supabase; Hermes escala con gateway adicionales y profiles
- Modular: Skills de Hermes se pueden agregar/cambiar sin redeploy; plugins Python hot-reload
- Sin vendor lock-in de Twilio: API estandar de Meta, codigo MIT
- AI nativo: Hermes esta disenado para agentes IA desde el ground up
- Proactive: Cron nativo permite acciones sin input del usuario (recordatorios, follow-ups, re-engagement)
- Resiliente: Fallback providers, credential pools, context compression — tolerancia a fallos built-in
- 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