Gateway self-hosted multi-canal con enrutamiento inteligente, cron jobs y webhooks de CI/CD. WhatsApp + Telegram + Discord unificados en un solo proceso.
// Sección: agentes y defaults { agents: { list: [ { id: "soporte", name: "Soporte NovaTech", workspace: "~/agents/soporte", default: true }, { id: "ops", name: "Ops NovaTech", workspace: "~/agents/ops" } ], defaults: { model: { provider: "anthropic", name: "claude-sonnet-4-20250514" }, thinking: "off", heartbeat: { every: "30m", activeHours: { start: "08:00", end: "21:00", timezone: "Europe/Madrid" } } } } }
// Sección: canales { channels: { whatsapp: { enabled: true, allowFrom: [ "+34600000001", // CEO "+34600000002" // CTO ], groups: { "*": { requireMention: true } } }, telegram: { enabled: true, token: "7890123456:AAF...", dmPolicy: "pairing", groupPolicy: "allowlist", allowedGroups: { "-100987654321": {} } }, discord: { enabled: true, token: "MTIz...", groupPolicy: "allowlist", guilds: { "1234567890123456": { requireMention: true } } } } }
| # | Canal | Tipo de peer | Destino | Agente asignado | Política |
|---|---|---|---|---|---|
B-01 |
DM (cliente) | allowFrom list |
🛟 soporte | allowlist + open DM | |
B-02 |
Grupo | 120363403215116621@g.us |
🛟 soporte | requireMention: true | |
B-03 |
✈️ Telegram | Grupo interno | -100987654321 |
⚡ ops | allowlist |
B-04 |
🎮 Discord | Guild completo | 1234567890123456 |
🛟 soporte | requireMention: true |
B-05 |
🔗 Webhook | HTTP POST | /hooks/ci-notify |
⚡ ops | Bearer token |
B-06 |
⏰ Cron | Scheduled job | 0 9 * * 1-5 |
⚡ ops | isolated session |
Cada día laborable a las 09:00 resume PRs abiertos, commits del día anterior y blockers. Entrega al grupo de Telegram.
Cada viernes a las 18:00 genera un resumen de tickets atendidos, tiempo de respuesta promedio y trending issues de la semana.
Notificación de GitHub Actions cuando un deploy finaliza. El agente Ops analiza el resultado y alerta al equipo si hay fallos.
{
"message": "Deploy novatech-app@v2.4.1
completado en production.
Status: success. 3 tests pasados."
}
Paso en GitHub Actions que dispara el webhook tras cada deploy a producción.
- name: Notify via OpenClaw
run: |
curl -X POST \
"${{ secrets.OPENCLAW_URL }}/hooks/ci-notify" \
-H "Authorization: Bearer ${{ secrets.OPENCLAW_TOKEN }}" \
-H "Content-Type: application/json" \
-d "{\"message\":\"Deploy ${{ github.repository }}@${{ github.sha }} — ${{ job.status }}\"}"
| Canal | Mensajes | Agente | Tiempo medio resp. | Estado |
|---|---|---|---|---|
| 134 | 🛟 soporte | 1.2s | ● Activo | |
| 🎮 Discord | 89 | 🛟 soporte | 0.9s | ● Activo |
| ✈️ Telegram | 24 | ⚡ ops | 1.8s | ● Activo |
| 🔗 Webhook | 8 events | ⚡ ops | 2.1s | ● Activo |