Synology Chat
Synology Chat integration via incoming/outgoing webhooks for DMs on your Synology NAS.
Tags: workspace, nas, self-hosted, synology
Category: Workspace
Use Cases
- Personal AI assistant on your home Synology NAS
- NAS-native AI bot for small teams using Synology Chat
- Self-contained AI setup where both OpenClaw and chat run on the same NAS
- Private AI assistant with all data stored on local NAS storage
- Home automation AI bot accessible via Synology Chat
- Document Q&A bot alongside files stored on Synology NAS
Tips
- Use dmPolicy: 'allowlist' with explicit user IDs for secure production use
- Keep allowInsecureSsl: false and set up a proper SSL certificate on your NAS for security
- Run OpenClaw in Docker on the NAS itself for a fully self-contained setup
- Use multi-account to connect bot to multiple NAS units or create separate bot personas
- Set OPENCLAW_BOT_NAME env var to customize the bot display name
- Monitor rate limit behavior in logs — the per-sender limit prevents runaway conversations
- For file delivery, host files on the NAS's web server and send URLs through the bot
Known Issues & Gotchas
- Plugin is a local extension — install from ./extensions/synology-chat, not from npm
- In allowlist mode, an empty allowedUserIds list is treated as misconfiguration and the webhook route won't start
- Self-signed NAS certificates require allowInsecureSsl: true — keep this false for production with proper certs
- Env vars (SYNOLOGY_CHAT_TOKEN, etc.) only apply to the default account — additional accounts must use config
- Rate limiting defaults to 30/minute per sender — adjust rateLimitPerMinute if needed
- The incoming webhook URL contains a token in the query string — keep it secret
- Webhook path defaults to /webhook/synology — ensure no conflicts with other webhook routes
- User IDs are Synology internal numeric IDs — find them in DSM Control Panel → User & Group
Alternatives
- Nextcloud Talk
- Mattermost
- Matrix
- Telegram
Community Feedback
I want to host an OpenClaw agent on my Synology NAS. Having the AI assistant right in Synology Chat where I already manage files and services would be the perfect self-hosted setup.
— Synology Community Forum
Synology Chat is underrated for personal use. Adding an AI bot to it via OpenClaw makes it actually useful beyond basic team messaging. Everything stays on the NAS.
— Reddit r/synology
The Synology Chat plugin is simple but solid. Webhook pair setup is what you'd expect from Synology integrations. Rate limiting per sender is a nice safety feature.
— GitHub Discussions
Frequently Asked Questions
Can I run OpenClaw directly on my Synology NAS?
Yes, if your NAS supports Docker (DS+/XS models or compatible). Run OpenClaw in a Docker container on the NAS and configure Synology Chat webhooks to point to localhost. This gives you a fully self-contained AI assistant setup.
Is the plugin available on npm?
No. The Synology Chat plugin is installed from a local extension path: openclaw plugins install ./extensions/synology-chat. It's not published to the npm registry.
How do I find my Synology user ID?
Go to DSM Control Panel → User & Group. User IDs are internal numeric identifiers. You can also check the outgoing webhook payload to see the user_id field when you send a test message.
Does Synology Chat support group chats with the bot?
No. The current integration is DM-only. Group chat and channel support are not available through the Synology Chat webhook bot API.
What about self-signed SSL certificates?
If your NAS uses a self-signed certificate, set allowInsecureSsl: true in your config. However, this is not recommended for production. Use Let's Encrypt or a proper certificate instead.
Configuration Examples
Basic DM setup
channels:
synology-chat:
enabled: true
token: "synology-outgoing-token"
incomingUrl: "https://nas.local/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=..."
dmPolicy: allowlist
allowedUserIds:
- "123456"Open access with rate limiting
channels:
synology-chat:
enabled: true
token: "synology-outgoing-token"
incomingUrl: "https://nas.local/webapi/..."
dmPolicy: open
rateLimitPerMinute: 20Multi-NAS setup
channels:
synology-chat:
enabled: true
accounts:
home:
token: "token-home"
incomingUrl: "https://nas-home.local/webapi/..."
dmPolicy: allowlist
allowedUserIds:
- "100"
office:
token: "token-office"
incomingUrl: "https://nas-office.local/webapi/..."
webhookPath: "/webhook/synology-office"
dmPolicy: allowlist
allowedUserIds:
- "200"
- "201"Installation
openclaw plugins install (local extension)