All Work
GHLSaaS / Roofing TechDeployed · United States

Kronk AI: Revenue Operations Architecture — GHL + Close CRM + Airtable + n8n

Full greenfield RevOps infrastructure for a roofing SaaS company across 4 platforms — deterministic attribution locking, duplicate-safe lead ingestion, Close CRM outbound execution, and a post-sale payment and activation system handling setup fees, subscriptions, and dunning without human input.

8

Airtable tables

4

Platforms unified

6

Lifecycle states tracked

0

Manual steps Won→Active Subscriber

The Problem

  • Kronk AI sells automation to roofing clients but their own internal operations were entirely manual.
  • GHL, Close CRM, and Airtable were disconnected — no shared lead identity, no attribution tracking, no dedup logic.
  • SDR and closer performance couldn't be measured separately.
  • 'Won' deals triggered no automated next step: setup fees had to be manually invoiced, onboarding was ad-hoc, and subscription renewals were tracked in spreadsheets.
  • There was no dunning system for failed payments.
  • Retroactive commission disputes had no data to resolve them.

The Solution

Built across two phases.

Phase 1 — Foundation & Data Flow

  • Airtable base with 8 linked tables (`Leads`, `Call_Activities`, `Bookings`, `Opportunities`, `Rep_Performance`, `Closer_Performance`, `Exception_Logs`, `Reactivation_Log`) all keyed on a `universal_lead_id`.
  • GHL custom fields synced: `Sdr_owner`, `Closer_owner`, `Lead_source`, `First_contact_date`, `Booked_date`, `Sdr_attribution_locked` (boolean), `Exception_flag`.
  • Architecture rule: n8n is the only component permitted to write across system boundaries — no direct GHL↔Close or GHL↔Airtable integrations.
  • Lead ingestion with dedup validation before any record touches Close CRM.

Phase 2 — Payment & Activation

  • 4 GHL workflows covering Setup Fee Paid (CA$999 one-time), Recurring Fee (CA$599/month), Recurring Fee Failed (multi-stage dunning with escalating branch-and-wait cycles), and Customer Nurture Sequence.
  • 2 n8n workflows receiving GHL payment webhooks and writing activation state to Airtable — specifically chosen because GHL workflows don't retry on failure;
  • n8n holds events until Airtable writes succeed.
  • All 6 customer lifecycle states tracked: Closed Won
  • Setup Fee Sent
  • Setup Fee Paid
  • Active Subscriber
  • Past Due
  • Recovered/Churned.

Screenshots

Results

Attribution locking via boolean fields (`sdr_attribution_locked`, `closer_attribution_locked`) prevents retroactive commission disputes — data is locked at conversion, not inferred from pipeline position

Dedup validation layer in n8n prevents duplicate records from ever entering Close CRM — solved a daily manual cleanup problem

Post-sale automation: 5 previously manual steps (invoicing, onboarding, subscription, dunning, renewal reminders) fully automated from the 'Won' trigger

Dunning sequence kept inside GHL workflows so non-engineers can edit escalation copy without touching n8n

GHL→n8n webhook relay for Airtable writes gives retry semantics GHL workflows lack natively — zero payment events lost on Airtable write failure

All data flows observable in a single place: n8n handles every cross-system write, making debugging and auditing straightforward

Tech Stack

GHLClose CRMn8nAirtableFastPayDirect

Want something like this?

Tell me what you're building. I'll tell you honestly if I can help.