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
Want something like this?
Tell me what you're building. I'll tell you honestly if I can help.