Skip to content
BasisWeb
All work

Case study · CRM + operations

Inspection Revenue Engine

A production CRM and data bridge built around a home-inspection company's real booking, report, and payment events.

Live in productionA multi-inspector home-inspection company in Ohio.
0

failed events, every audit

May 2026

in production since

318

production executions

0.7s

avg run time

~8,000

contacts migrated

6,500+

opportunities migrated

n8n · production
Live n8n control panel, June 2026
The live n8n control panel, June 2026. The numbers in the band above are read straight from here: 318 production executions, zero failed, 0.7 second average run time.

/ context

A business running blind on its booking tool

The company ran everything inside its inspection software, Spectora, with no CRM underneath it. Years of client and referring-agent history sat locked in one tool, with no attribution and follow-up handled from memory.

BasisWeb built the production system around it. A GoHighLevel CRM from scratch, a custom Spectora-to-GoHighLevel bridge running on self-hosted n8n, a full historical migration, and marketing-to-revenue attribution. It has run in production since May 2026 on the business's real booking, report, and payment events, for eight inspectors plus support staff, a roughly 50-service catalog, 22 custom fields, and 4 pipelines.

/ the scope correction

We put the bad news in writing while there was still time

The original scope assumed a two-way sync. Discovery proved the platform is outbound-webhook-only, with no inbound write path. That was not the answer anyone wanted.

We wrote it up as an explicit scope change while there was still time to act on it, then re-architected around the real constraint: forward-direction enrichment plus a one-time historical backfill. No pretend sync, no quiet workaround that breaks in six months.

/ what holds it together

Built to survive a bad day, not just a demo

A composite-keyed dedup ledger means a vendor retry storm cannot double-write the CRM. Phone-collision handling retries without the colliding field and tags the record for a person to review instead of guessing.

An hourly failure poll emails the team the moment a production event fails, and a weekly automated health pass runs 24 checks against the whole system. The zero in the stat band above is not luck, it is the alerting.

/ where it stands

Live, and running the day to day

The residential pipeline holds 5,840 opportunities. Lifecycle automations are live. The team works out of an operations dashboard behind authentication on the company's own subdomain.

workflow · booking.created
Booking Created workflow canvas
The Booking Created workflow. Composite-keyed dedup and phone-collision handling live in this canvas, so a vendor retry storm cannot double-write the CRM.
workflow · alert on failed events
Failure alerting workflow canvas
The failure-alerting workflow. An hourly poll checks every production event and emails the team the moment one fails.

/ status ledger

operations ledger

// In production since May 2026

  • LiveSpectora to GoHighLevel data bridge
  • LiveOne-time historical backfill
  • LiveAgent and CE nurture intake
  • LiveWeekly automated health audit, 24 checks
  • LiveLifecycle automations
  • LiveTeam operations dashboard, behind auth

Revenue results are the client's private data. We publish capability, not their numbers.