Reconcile Discord roles with Google Sheets rosters and report drift weekly
Ready for 3.0Ready for 3.0. This template uses no nodes that n8n 3.0 removes. No removed nodes, versions or helpers found. Static check, last run 2026-10-19.
What this workflow does
This workflow has 10 nodes and runs on a schedule (every week at 08:00). Along the way it connects Google Sheets and Discord.
How it runs
Trigger: On a schedule (every week at 08:00).
- Set Reconcile Settings (Edit Fields (Set)): sets 12 fields: guild_id, roster_sheet_url, roster_tab_name…
- Get Guild Roles (HTTP Request): calls an HTTP API
- Read Roster Sheet (Google Sheets): uses Google Sheets
- Normalize Roster Rows (Code): runs custom JavaScript code
- Get Server Members (Discord): work with member
- Reconcile Roster Against Discord (Code): runs custom JavaScript code
- Write Drift Report (Google Sheets): append
- Build Drift Summary (Code): runs custom JavaScript code
- Post Drift Summary (Discord): work with message
Services it uses
Before you upgrade to n8n 3.0
Nothing in this workflow is removed in n8n 3.0, so it should import and run after the upgrade.
Nodes used (6)
- Schedule Trigger
n8n-nodes-base.scheduleTrigger - Edit Fields (Set)
n8n-nodes-base.set - Google Sheets
n8n-nodes-base.googleSheets - Code
n8n-nodes-base.code - Discord
n8n-nodes-base.discord - HTTP Request
n8n-nodes-base.httpRequest
From the author
Quick overview This workflow runs weekly to compare a Google Sheets roster to actual Discord member roles, writes a row-by-row drift report back to Google Sheets, and posts a concise summary to a Discord channel. How it works 1. Runs every week on a schedule…