n8n Workflows & their Worker Twins
n8n was the original API + automation layer. Most read endpoints have since been migrated into the Worker — the Worker is now canonical and the n8n "Dashboard - X" workflow is a legacy twin / warm backup. But n8n is still the owner of two things the Worker does not do: (1) ETL — the cron jobs that pull external data into BigQuery, and (2) chat surface webhooks — Roam and the HubSpot card receive their webhook in n8n, which then calls the Worker's advisor.
Tenant: fcrmedia.app.n8n.cloud, project "Dashboard" (
rp488wjRFwYPewnO). 55 workflows. Verified 2026-05-20. Only touch Dashboard-project workflows.
ETL (n8n, cron) READS (Worker, canonical)
external ───────────────▶ BigQuery ◀─────────────── fcr-dashboard-api
(HubSpot, iovox, tables (legacy n8n twin =
Teamwork, Ahrefs, warm backup only)
SERP/GBP, SitePro,
Yext, GMB/GA/GSC)
Roam / HubSpot card ──webhook──▶ n8n surface wf ──HTTP──▶ Worker /dashboard-ai-advisor
1. ETL — pull external data INTO BigQuery (n8n owns these)
These have no Worker twin for the write — they ARE the source of the data the Worker reads. Cron-triggered.
| Workflow | id | Writes → | Cadence |
|---|---|---|---|
| HubSpot Deal Sync + Dashboard | Rk1WCogNesqYeUrr |
hubspot_deals (+ forecast props) |
twice daily (~05:45) |
| HubSpot Deals Back-Catalogue (rolling Nov-25→now) | cRPF2BnUdxPD54yv |
hubspot_deals_backcatalogue_* |
weekly Sun 03:00 |
| HubSpot Engagements - Daily Delta | Tl5JQjQtQCoz03aW |
hubspot_engagements (via Worker sync endpoint) |
daily 07:30 |
| HubSpot Engagements - Backfill / Back-Catalogue Backfill | aWhlGN8XIBd2Cryt, 0sK6OuQuggH81P5H |
engagements (one-shot) | manual (inactive) |
| iovox Call Metrics → BigQuery | OvMZnve5gANiA8aU |
call metrics | scheduled |
| iovox Node Links → BigQuery | fHolJNpwcseom0Nb |
tracking-number links | scheduled |
| Teamwork Projects Sync + Dashboard | HGWnmltvdhyRlyO0 |
teamwork_project_*, teamwork_milestones |
scheduled |
| Teamwork Ticket Sync + Roam Lookup | hquEYfG9XMMTJLYX |
teamwork_open_tickets |
scheduled |
| Ahrefs Sync | AKeFRUIjrzOcNnDN |
ahrefs_seo_cache |
scheduled |
| SERP GBP Sync | 9YbdeGxV47WdZ4Bs |
serp_gbp_snapshots |
scheduled |
| SitePro MegaDoc | CkAXUJQhwdT07aGr |
sitepro_megadoc_cache, sitepro_listing_map |
weekly Tue 04:00 |
| Yext Sync / Yext Sync Batch (SayMore universe) | VD8AivyNr4C2A17F, u8YMLyCUsPoU3OkB |
yext_listings_cache |
per-sub / monthly |
| Client Reviews | NcnHnpy0kZGr2i55 |
client_reviews_cache |
scheduled |
| Map Data → S3 Upload | eRvQV3TjkTwGbHpB |
S3 (area-map data) | scheduled |
| InSites BQ Sync / Client Sync | EfUVn5JYXfj1xgzW, nks0tahQMXsFsX4B |
USG_INSITES_* |
scheduled |
| GBP Enrichment - Batch Processor | JR8eoO4Cc1CiThyB |
GBP enrich | inactive |
2. Legacy read-API twins (Worker handler is canonical; n8n = warm backup)
Each of these was the original endpoint; the Worker route is now the live path. Keep the n8n version as a fallback only.
| n8n workflow | id | Worker twin (canonical) |
|---|---|---|
| Dashboard - Ads Stats | tof9vPDqFIytphhC |
copysheet-ads-stats |
| Dashboard - Ads Spend All Accounts | E63zAOuC39IxYVRJ |
dashboard-ads-spend-all |
| Dashboard - Ads Spend Reconciliation | hkLoNWAZ3gJSA4tG |
dashboard-reconciliation |
| Dashboard - Ads Performance Report | I331grHIj5s7vM9q |
ads-performance-report |
| Dashboard - GBP Stats | 26SFdLM07Fd3JvZ3 |
copysheet-dashboard-gbp |
| Dashboard - GSC Stats | E5hUVol4C6cYz44Z |
copysheet-gsc-stats |
| Dashboard - GA4 Stats / Traffic Sources | S7CDLeujmTio3osV, dITP3id5UNTapd6V |
copysheet-ga4-stats / -ga4-traffic-sources |
| Dashboard - GMC Stats | V8sdZGCahwSgGnwh |
dashboard-gmc-stats |
| Dashboard - Category Keywords | Ab0lws15vXRLcaa6 |
dashboard-category-keywords |
| Dashboard - Keyword Gap | T3ROBjnI6DzBX5O8 |
dashboard-keyword-gap |
| Dashboard - Ahrefs SEO | edS6wft1LE90TWsn |
dashboard-ahrefs-seo |
| Dashboard - AM Portfolio | htt2jdAlfCxg3WiB |
dashboard-am-portfolio |
| Dashboard - Solution Portfolio | K1VvN6h18OVPWKOS |
dashboard-solution-portfolio |
| Dashboard - Built Websites | 8s3MwJn5Uru6LYjO |
dashboard-built-websites |
| Dashboard - iovox Call Tracking / All Links | xiBRoisKyleoKh4r, BKFMndA3nCKZJgUy |
dashboard-iovox / -iovox-all |
| Dashboard - Yext Listings | f3flkcF80BCSYoZA |
dashboard-yext-listings |
| Dashboard - Teamwork Projects | udmsWFxcUiQTUvUU |
dashboard-teamwork-projects |
| Dashboard-CRM | 2iPGwBqW0eehbkYR |
dashboard-check-account (CRM block) |
| Dashboard - Superset Data Proxy | ccFsG1Yl1QNH2B6C |
SUPERSET_MASTER reads via dashboard-bq-execute |
| Dashboard - Listing Detail | 827fGPfQWPZ6EgI8 |
listing lookups |
3. InSites async (submit / poll / read)
The Worker now drives most of this, but the InSites callback still runs in n8n.
| n8n workflow | id | Worker twin |
|---|---|---|
| DAshboard Insites Run | XUFp5P9sr3XIB58Q |
dashboard-insites-suggest / submit path |
| Dashboard - InSites Poll | 3wnZXQrTmZkVpMqp |
dashboard-insites-poll |
| Dashboard - InSites BQ Read / Lookup | e0dwrbgvaqKDVEHm, DdlTtRcvTcvR5mTh |
dashboard-insites-bq-lookup |
| Dashboard - InSites Enrich Settings | lfRbX7920CxNlTFx |
dashboard-insites-settings |
| Dashboard - InSites LLM Report | CciKolrpwMM5TFbu |
dashboard-insites-report-summary |
| AI Advisor - InSites Callback | BkM3D9seY6dINUtd |
(n8n-only: polls InSites → hydrates BQ → posts to Roam) |
4. Chat surfaces (webhook in n8n → Worker advisor)
These are not twins — they're the front doors that hand off to the Worker's
dashboard-ai-advisor. Keep them in n8n.
| n8n workflow | id | Role |
|---|---|---|
| Dashboard - AI Advisor v3 (Claude + Roam) | YUOlTd445qUQScb8 |
Roam advisor: webhook → build prompt → Worker → chunked Roam post |
| Dashboard - AI Advisor v2 | uHrifKwc4zXKSTkO |
older advisor surface |
| HubSpot Card Chat | 8gVpD90Ok9xi8vzl |
card: /start → Worker sync advisor → /complete |
| Dashboard - AI Insights | zvphWyhG1kwlfgTE |
inline insights |
| Dashboard - Category Chat | 6FQiwsbyZj6tzYRw |
category Q&A |
| Dashboard - Roam Link | q8Qo5xbQC3KJr7nF |
Roam link/auth helper |
5. Manual / utility
| Workflow | id | Note |
|---|---|---|
| Dashboard - Vector Reindex (Manual) | gwg0ZtoHjlRlQNf1 |
loops dashboard-vector-reindex in batches; inactive, run on demand after SitePro/MegaDoc updates |
Working with these (gotchas)
- Tenant: always fcrmedia.app.n8n.cloud — never the legacy
dcathal.app.n8n.cloud(defaults InSites to LRC, silently mis-routes). - Scope: only edit Dashboard-project workflows via the MCP.
- MCP toggle resets: every
update_workflowflipsavailableInMCPoff — batch edits into one atomic update, not iterative calls. - Version swap:
publish_workflowonly affects future triggers; in-flight executions finish on the old version. - Direction of travel: the long-term plan is to keep migrating read-paths into the Worker; n8n's durable role is ETL + chat-surface webhooks.
FCR Dashboard documentation · generated from docs/ · keep counts verified, not guessed.