Playbook — Operations

Your job: keep the data flowing, the worker shipping, and the numbers reconciled. The platform is one Worker + BigQuery + n8n ETL — here's how to run it.

The moving parts

Concern Where
What runs where (Worker, Pages, bindings, secrets, crons) ../../fcr-dashboard-architecture-overview.md §9
The data warehouse + the daily sync sequence ../../bigquery-and-sync.md
The ETL jobs (and their Worker twins) ../../n8n-workflows.md
Shipping code (gated deploys, rollback) ../../commit-and-deploy.md, ../../branching-workflow.md
The full API surface ../../worker-endpoints.md

Daily / recurring operations

  • Data syncs are n8n cron jobs (HubSpot deals twice-daily ~05:45, engagements delta 07:30, iovox/Teamwork/Ahrefs/SERP/SitePro/Yext) + BQ scheduled queries (active_clients ~06:00). Worker crons run after (07:30/07:45 prewarm, 08:00–20:00 deal-brief refresh, every-minute drains).
  • Deploys go through scripts/deploy-worker.sh only — clean-tree + no-undef lint gates, tags every deploy for rollback, both CF accounts. Pages + HubSpot card deploy separately.
  • Reconciliation / freshnessdashboard-reconciliation, dashboard-data-freshness, suspensions, ads-spend reconciliation.

Observability & gotchas (hard-won)

  • Workers Logs are now ON — debug crons/queues in the CF Observability tab (was blind before).
  • CF Queues auto-pause on a large one-shot backlog (1,000+ slow messages) — drip in small chunks; clear a stuck consumer by deleting + redeploying it (learned the hard way on the deal-brief refresh queue).
  • Deploy gate refuses a dirty worker/ tree — commit or stash unrelated WIP; never --force casually.
  • Two CF accounts — production (FCR) + dev (personal); deploy script handles both.

What's new since the v1 deck

  • The deal-brief precompute pipeline (KV + BQ audit + Queue + chunked cron).
  • Observability enabled; the chunked self-pacing refresh cron; rollback tags.

FCR Dashboard documentation · generated from docs/ · keep counts verified, not guessed.

Ask the docsRAG over this site
Ask anything about the FCR Dashboard platform — architecture, BigQuery, the worker routes, billing rules, the LRC stack, scoring… Answers are grounded in this documentation, with source links.
How does the deal-brief refresh work? Which routes are Worker vs n8n? How is account health scored?