Ir al contenido

Conecta Synology Chat a OpenClaw: Guía de configuración

¿Alguna vez has sentido que conectar tus herramientas de comunicación con tu infraestructura es un dolor de cabeza constante? Gestionar webhooks de forma manual y asegurar que los mensajes lleguen a donde deben puede quitarte mucho tiempo que podrías dedicar a programar.

Si usas Synology Chat, integrar un bot o automatizar respuestas no tiene por qué ser un proceso complicado. Con el plugin adecuado, puedes centralizar tus mensajes y gestionar todo desde tu Gateway de forma directa.

Estado: soportado mediante plugin como un canal de mensajes directos usando webhooks de Synology Chat. El plugin acepta mensajes entrantes desde los outgoing webhooks de Synology Chat y envía respuestas a través de un incoming webhook de Synology Chat.

Synology Chat se basa en plugins y no forma parte de la instalación base de los canales del core.

Instálalo desde un checkout local:

Ventana de terminal
openclaw plugins install ./path/to/local/synology-chat-plugin

Detalles: Plugins

  1. Instala y activa el plugin de Synology Chat.
    • openclaw onboard ahora muestra Synology Chat en la misma lista de configuración de canales que openclaw channels add.
    • Configuración no interactiva: openclaw channels add --channel synology-chat --token <token> --url <incoming-webhook-url>
  2. En las integraciones de Synology Chat:
    • Crea un incoming webhook y copia su URL.
    • Crea un outgoing webhook con tu secret token.
  3. Apunta la URL del outgoing webhook a tu Gateway de OpenClaw:
    • https://gateway-host/webhook/synology por defecto.
    • O tu channels.synology-chat.webhookPath personalizado.
  4. Termina la configuración en OpenClaw.
    • Guiada: openclaw onboard
    • Directa: openclaw channels add --channel synology-chat --token <token> --url <incoming-webhook-url>
  5. Reinicia el Gateway y envía un DM al bot de Synology Chat.

Configuración mínima:

{
channels: {
"synology-chat": {
enabled: true,
token: "synology-outgoing-token",
incomingUrl: "https://nas.example.com/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=...",
webhookPath: "/webhook/synology",
dmPolicy: "allowlist",
allowedUserIds: ["123456"],
rateLimitPerMinute: 30,
allowInsecureSsl: false,
},
},
}

Para la cuenta por defecto, puedes usar variables de entorno:

  • SYNOLOGY_CHAT_TOKEN
  • SYNOLOGY_CHAT_INCOMING_URL
  • SYNOLOGY_NAS_HOST
  • SYNOLOGY_ALLOWED_USER_IDS (separados por comas)
  • SYNOLOGY_RATE_LIMIT
  • OPENCLAW_BOT_NAME

Los valores de configuración sobrescriben las variables de entorno.

  • dmPolicy: "allowlist" es el valor recomendado por defecto.
  • allowedUserIds acepta una lista (o una cadena separada por comas) de IDs de usuario de Synology.
  • En modo allowlist, una lista de allowedUserIds vacía se considera un error de configuración y la ruta del webhook no se iniciará (usa dmPolicy: "open" para permitir todo).
  • dmPolicy: "open" permite cualquier remitente.
  • dmPolicy: "disabled" bloquea los DMs.
  • La vinculación del destinatario de la respuesta se mantiene en el user_id numérico estable por defecto. channels.synology-chat.dangerouslyAllowNameMatching: true es un modo de compatibilidad de emergencia que reactiva la búsqueda por nombre de usuario o apodo para la entrega de respuestas.
  • Las aprobaciones de emparejamiento funcionan con:
    • openclaw pairing list synology-chat
    • openclaw pairing approve synology-chat <CODE>

Usa IDs numéricos de usuario de Synology Chat como objetivos.

Ejemplos:

Ventana de terminal
openclaw message send --channel synology-chat --target 123456 --text "Hello from OpenClaw"
openclaw message send --channel synology-chat --target synology-chat:123456 --text "Hello again"

El envío de archivos multimedia está soportado mediante la entrega de archivos basada en URL.

Se admiten varias cuentas de Synology Chat bajo channels.synology-chat.accounts. Cada cuenta puede sobrescribir el token, la URL entrante, la ruta del webhook, la política de DM y los límites. Las sesiones de mensajes directos están aisladas por cuenta y usuario, por lo que el mismo user_id numérico en dos cuentas de Synology diferentes no comparte el estado de la transcripción.

Asigna a cada cuenta activada un webhookPath distinto. OpenClaw ahora rechaza rutas exactas duplicadas y se niega a iniciar cuentas con nombre que solo heredan una ruta de webhook compartida en configuraciones multi-cuenta. Si necesitas intencionadamente la herencia antigua para una cuenta con nombre, establece dangerouslyAllowInheritedWebhookPath: true en esa cuenta o en channels.synology-chat, pero las rutas exactas duplicadas se seguirán rechazando por seguridad. Es preferible usar rutas explícitas por cuenta.

{
channels: {
"synology-chat": {
enabled: true,
accounts: {
default: {
token: "token-a",
incomingUrl: "https://nas-a.example.com/...token=...",
},
alerts: {
token: "token-b",
incomingUrl: "https://nas-b.example.com/...token=...",
webhookPath: "/webhook/synology-alerts",
dmPolicy: "allowlist",
allowedUserIds: ["987654"],
},
},
},
},
}
  • Mantén el token en secreto y cámbialo si se filtra.
  • Mantén allowInsecureSsl: false a menos que confíes explícitamente en un certificado de NAS local autofirmado.
  • Las peticiones de webhooks entrantes se verifican mediante token y tienen rate-limit por remitente.
  • Prefiere dmPolicy: "allowlist" para producción.
  • Mantén dangerouslyAllowNameMatching desactivado a menos que necesites explícitamente la entrega de respuestas basada en nombres de usuario antiguos.
  • Mantén dangerouslyAllowInheritedWebhookPath desactivado a menos que aceptes explícitamente el riesgo de enrutamiento de rutas compartidas en una configuración multi-cuenta.

¿Necesitas ayuda para configurar tu canal? Prueba el AI Setup Assistant.

OpenClaw

OpenClaw Expert

Sigues atascado?

Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.