Description
n8n-nodes-synology-filestation
n8n community nodes for Synology DSM — manage the files of your NAS natively from your n8n workflows (browse, upload, download, copy, move, rename, delete, share links, search, archives, checksums, thumbnails), trigger workflows when files change, and monitor or control Cloud Sync.
Works with DSM 6 and DSM 7: the node discovers the API versions and paths of your NAS through SYNO.API.Info at runtime, exactly as the n8n is a fair-code licensed workflow automation platform.
Installation
Follow the installation guide in the n8n community nodes documentation:
1. Go to Settings → Community Nodes.
2. Select Install.
3. Enter n8n-nodes-synology-filestation and confirm.
Or manually on a self-hosted instance, inside n8n’s user folder:
cd ~/.n8n/nodes
npm install n8n-nodes-synology-filestation
Then restart n8n.
Compatibility
- n8n: requires a version with community-nodes support; developed and tested against recent n8n 1.x/2.x releases. Using the node as an AI Agent tool requires n8n ≥ 1.79.
- Synology DSM: DSM 6.0 and DSM 7.x — API versions and paths are discovered at runtime through
SYNO.API.Info. - Create a dedicated DSM account for n8n and give it access only to the shared folders you need (DSM → Control Panel → User & Group).
- 2-factor authentication is not supported by the DSM Web API login used here — the dedicated account must not have 2FA enabled.
- The node logs in at the start of each execution (
SYNO.API.Auth, sessionFileStation,format=sid) and logs out at the end. - Tailscale / WireGuard VPN (self-hosted n8n) — zero open ports;
- Cloudflare Tunnel + Access (works with n8n Cloud) — full walkthrough including the service-token headers to put in Custom Headers;
- Synology DDNS + port forwarding with Let’s Encrypt and DSM-firewall hardening;
- n8n on the NAS itself (Container Manager) — zero exposure.
- Events: File Created, File Updated, File Created or Updated.
- Watches a folder (subfolders optional), with pattern, extension and file-type filters.
- Polling-based — the File Station API has no webhooks. On each poll the node runs server-side searches (
SYNO.FileStation.Search) filtered by creation/modification time. The cursor uses NAS-side timestamps (with the NAS’s own clock as reference), re-scans a 5-minute overlap window to absorb slow recursive scans and clock drift, and deduplicates per path — so events are neither missed nor fired twice. “Created or updated” combines a crtime and an mtime search, catching files copied in with a preserved (old) modification time. Configure the frequency with the standard Poll Times parameter. - On the first poll after activation nothing is emitted — the node starts watching from that moment.
- The trigger emits file metadata; chain File → Download to fetch the content.
Credentials
Create a Synology API credential with:
| Field | Description |
| — | — |
| Base URL | Address of your DSM, including protocol and port — e.g. https://nas.example.com:5001 or http://192.168.1.10:5000. QuickConnect URLs are not supported; use a direct IP, a local hostname or a DDNS address. |
| Username | DSM account to log in with. |
| Password | Password of the account. |
| Ignore SSL Issues (Insecure) | Enable if your DSM uses its default self-signed certificate. |
| Custom Headers | Optional headers sent with every request — e.g. the CF-Access-Client-Id / CF-Access-Client-Secret service-token headers when DSM sits behind Cloudflare Access. |
Recommendations:
Reaching a NAS from a remote n8n
n8n Cloud or a VPS-hosted n8n usually has no direct route to a NAS sitting on a LAN. 📖 Remote access guide walks through the options step by step:
QuickConnect cannot be used — it is a relay, not a direct HTTP endpoint.
Operations
All paths start with a shared folder as shown in DSM, e.g. /photo/vacation/img_001.jpg — use Folder → List Shares to discover the available roots. Mount paths from your computer (macOS /Volumes/…, Windows \NAS…) and internal volume paths (/volume1/…) are not File Station paths; the node rejects or flags them with an explicit message. Wrapping quotes and a missing leading slash are fixed automatically.
File
| Operation | Description |
| — | — |
| Copy / Move | Copy or move a file/folder to another folder (SYNO.FileStation.CopyMove), with overwrite/skip behavior and completion polling |
| Delete | Delete a file/folder (SYNO.FileStation.Delete), recursive by default |
| Download | Download a file as binary data (a folder is delivered as a ZIP archive) |
| Exists | Check whether a file or folder exists — returns exists: true/false |
| Get | Get file/folder information (size, times, owner, permissions, real path…) |
| Rename | Rename a file/folder |
| Upload | Upload binary data into a folder (SYNO.FileStation.Upload, multipart), with parent-folder creation and overwrite/skip behavior |
Folder
| Operation | Description |
| — | — |
| Create | Create a folder (optionally with its missing parents) |
| Delete | Delete a folder and its contents |
| Get Many | List the files/folders inside a folder, with glob pattern, type filter, sorting and extra fields |
| List Shares | List the shared folders visible to the account, with volume/permission info |
Share Link
| Operation | Description |
| — | — |
| Create | Create a public share link (optional password, availability and expiration dates) |
| Get / Get Many | Read one or all share links |
| Update | Change/remove the password or the dates of a link |
| Delete | Delete a share link |
| Clear Invalid | Remove all expired and broken links |
Search
| Operation | Description |
| — | — |
| Find | Server-side search (SYNO.FileStation.Search): starts the task, polls until it finishes, collects the results and cleans the temporary database on the NAS. Filters: glob pattern, extension, type, size range, modified/created/accessed date ranges, owner, group. |
Archive
| Operation | Description |
| — | — |
| Compress | Compress a file/folder into a ZIP or 7z archive (level, mode, password) |
| Extract | Extract an archive (zip, gz, tar, tgz, tbz, bz2, rar, 7z, iso) into a folder |
| List Contents | List the files contained in an archive without extracting it |
Utility
| Operation | Description |
| — | — |
| Check Permission | Check whether the account could write a given file into a folder — returns writable: true/false |
| Get Folder Size | Compute the accumulated size / file count of a folder |
| Get Info | File Station information (hostname, capabilities) — handy as a connection test |
| Get MD5 | Compute the MD5 checksum of a file on the NAS |
| Get Thumbnail | Get the image/video thumbnail of a file as binary data |
Favorite
| Operation | Description |
| — | — |
| Add / Update / Delete | Manage the account’s favorite folders |
| Get Many | List favorites (valid/broken filter) |
| Clear Broken | Remove favorites whose target no longer exists |
Background Task
| Operation | Description |
| — | — |
| Get Many | List the copy/move/delete/compress/extract tasks running on the NAS and their progress — useful with the “Wait for Completion: off” mode of the long-running operations |
| Clear Finished | Remove finished tasks from the list |
Trigger
The Synology File Station Trigger node starts a workflow when files change on the NAS:
Synology Cloud Sync node
The Synology Cloud Sync node monitors and controls the Cloud Sync package (Google Drive, Dropbox, OneDrive, S3 and 20+ other providers) with the same credential:
| Resource | Operations |
| — | — |
| Connection | Get Many (connections with sync status and pending-file counts), Get (settings + cloud info), Pause / Resume (one or all connections), Get Logs (filterable sync history), Delete (unlink) |
| Task | Get Many (the folder pairs of a connection and their status), Delete |
| Report | Get Configuration, Get Recently Changed (last synchronized files) |
Typical automations: pause Cloud Sync before a big local file operation and resume it after, alert when a connection reports errors or piles up unfinished files, or log the sync history elsewhere.
> Heads-up: Synology does not publish official documentation for the Cloud Sync API. This node uses the same reverse-engineered SYNO.CloudSync endpoints as the DSM web UI (version-pinned through SYNO.API.Info), which may change in future Cloud Sync releases. Creating connections or sync tasks (OAuth flows) is out of scope. Most operations require an account allowed to use the Cloud Sync application; if the package is not installed the node fails with an explicit message.
Use with AI agents
The Synology File Station and Synology Cloud Sync nodes are exposed as tools for n8n AI Agents (usableAsTool): an agent can browse folders, search files, read metadata, create share links, upload or download on its own, with each operation and parameter described for the LLM.
On self-hosted n8n, allow community packages as tools first:
N8NCOMMUNITYPACKAGESALLOWTOOL_USAGE=true
Then add “Synology File Station” as a tool of your AI Agent node. Parameters can be filled by the model automatically ($fromAI). Tip: use a dedicated DSM account with read-only permissions if the agent should not modify anything.
Long-running operations
Copy, Move, Delete, Compress and Extract are non-blocking on the NAS (start/status/stop pattern). By default the node polls until the task finishes (option Max Wait Time, 300 s by default, the task is stopped on timeout). Disable Wait for Completion to get the taskid back immediately and track it with Background Task → Get Many.
Usage examples
/photo/uploads → File: Download → process each new file.File: Upload to /backup/reports with Create Parent Folders.File: Upload → Share Link: Create with password + expiration → send the returned url by e-mail.Search: Find in /download with Modified Before + extension zip → File: Delete.Utility: Get MD5 and compare with your local checksum.Known limitations
photo shared folder or user home folders (DSM indexing rule).Resources
Development
git clone https://github.com/BenNotix/n8n-nodes-synology-filestation.git
cd n8n-nodes-synology-filestation
npm ci
npm run build && npm run lint
npm run test:smoke # 53 end-to-end assertions against a mock DSM server
Version history
See CHANGELOG.md for the release history.