# Master CRM — Google Sheets workbook spec One Google Sheets workbook = the whole CRM + log. I create/maintain this via the Google Drive MCP once the fresh project Google account exists (Phase 2). n8n reads/writes it via the Sheets node. Workbook name: **`SMB-Online — CRM`**. One tab per concern below. Row 1 = headers (exact column names matter — n8n maps by header). ## Tab: `Clients` The client list/table — the heart of the tracking requirement. | Column | Type | Notes | |---|---|---| | `client_id` | text | e.g. `C-0001` (stable key) | | `business_name` | text | | | `owner_name` | text | | | `email` | text | | | `phone` | text | | | `niche` | text | barber, physio, café, … | | `tier` | A \| B | delivery tier | | `status` | enum | `lead` → `onboarding` → `active` → `paused` → `churned` | | `domain` | text | live site URL | | `stack_notes` | text | hosting, booking tool, etc. | | `vault_ref` | text | **pointer** to Vaultwarden item — never a password | | `services` | text | comma list: site, booking, reception, … | | `billing_cycle` | enum | monthly / yearly / one-off | | `monthly_fee_eur` | number | | | `start_date` | date | | | `renewal_date` | date | drives the renewal-reminder workflow | | `created_at` | datetime | | | `notes` | text | | ## Tab: `Leads` Every inbound lead across all client sites (and your own). `lead_id` · `received_at` · `client_id` · `source` (which site/form) · `name` · `contact` · `service_interest` · `message` · `status` (new / contacted / won / lost) · `notified` (bool) ## Tab: `Bookings` Every appointment booked across client sites. `booking_id` · `created_at` · `client_id` · `customer_name` · `customer_contact` · `service` · `start_time` · `end_time` · `source` (gcal / calcom) · `status` (confirmed / cancelled / no-show) ## Tab: `Projects` Per-client deliverable tracking. `project_id` · `client_id` · `deliverable` · `tier` · `checklist` (e.g. `domain✓ page✓ booking☐`) · `go_live_date` · `status` (todo / in-progress / live) ## Tab: `Invoices` `invoice_id` · `client_id` · `issued_date` · `due_date` · `amount_eur` · `period` · `status` (draft / sent / paid / overdue) · `paid_date` ## Tab: `Activity Log` Append-only audit trail — **every automated action writes one row here.** `ts` · `workflow` (lead-intake / booking-sync / renewal / onboarding / invoice) · `client_id` · `action` · `detail` · `result` (ok / error) ## Dashboard Not a tab — a **Looker Studio** report wired to this workbook: pipeline by `status`, MRR (sum of `monthly_fee_eur` where `status=active`), renewals due in next 30 days, recent leads.