A global trigger node for n8n that emits an item whenever any workflow in your n8n instance gets updated.
Since n8n Community Edition doesn't expose a global “workflow updated” event, this node implements light internal polling with persistent state to detect changes without noise or duplicates.
- Detects updates across all workflows in your n8n instance.
- Emits one item per updated workflow.
- Optionally includes the full workflow JSON.
- Persists state (
lastSyncand per-ID map) to avoid duplicates. - Optional Basic Auth support for secured instances.
- Build the node:
npm install
npm run build- Mount it in your docker-compose.yml:
volumes:
- ./n8n-nodes-global-workflow-updated-trigger:/home/node/custom-nodes:ro
environment:
N8N_CUSTOM_EXTENSIONS: /home/node/custom-nodes- Restart n8n:
docker compose up -dnpm install n8n-nodes-global-workflow-updated-triggerThen mount it using:
environment:
N8N_CUSTOM_EXTENSIONS: /home/node/node_modules/n8n-nodes-global-workflow-updated-triggerAdd Global Workflow Updated Trigger to a new workflow and configure:
| Option | Description |
|---|---|
| Base URL | Usually http://localhost:5678 inside the container |
| Interval (seconds) | How often to check for changes (5–15s recommended) |
| Exclude Regex | Skip workflows whose names match this pattern |
| Emit Full Workflow | If true, includes the full workflow JSON |
| Credentials | Use HTTP Basic Auth if your instance requires it |
{
"id": 42,
"name": "Daily Report",
"updatedAt": "2025-10-29T12:34:56.000Z",
"workflow": {
"id": 42,
"name": "Daily Report",
"nodes": [...],
"connections": {...}
}
}- Set the regex to ignore this trigger’s own workflow.
- Keep the polling interval modest (≥5s).
- Use this node to drive GitHub or S3 backup workflows.
- Combine with HTTP → GitHub “Create/Update file” to version-control your workflows.