Expertise / 06
CRM & API Integration
Systems that were never designed to talk to each other, made to do exactly that: CRMs, ad platforms, payment and accounting systems, with a defined behaviour for the moment one of them fails.
10 systems, 5 delivered, 5 built
01 — Tools and stack
What this work is built on. Every tool below is part of at least one of the systems further down this page. HoverTap a card to see what it is used for.
HubSpot
CRM and field service
A migration with a dry run and a rollback log, and deals read for the weekly number.
GoHighLevel
CRM and field service
The CRM behind a voice system: the contact records an inbound agent reads, and the call outcomes written back.
Housecall Pro
CRM and field service
Availability read before a slot is offered, jobs created only when everything is confirmed, and booked jobs matched back to the click.
Google Ads
Ads and attribution
Local Services leads read by API, won jobs returned as offline conversions, and mutations that are validate-only by default.
Meta
Ads and attribution
Won jobs returned as offline conversions, and spend pulled for the weekly number.
CallRail
Ads and attribution
Tracked calls, as a lead source and as a weekly volume to watch.
Shopify
Commerce, payments and accounting
Orders read, checked and changed only after the customer has been matched to the real order.
Stripe
Commerce, payments and accounting
Signed webhooks that survive key rotation, with each event ID claimed before anything is provisioned.
Xero
Commerce, payments and accounting
Bills posted once: the ledger is searched for the same supplier and invoice number immediately before the write.
PandaDoc
Commerce, payments and accounting
Contracts generated from the deal’s real values and sent for signature exactly once.
n8n
The connective layer
Webhooks, schedules and sub-workflows between the systems, with one hub that every source has to call.
Twilio
The connective layer
Calls and SMS tied to the CRM: a person’s line rings first, and a texted STOP is written back.
Gmail
The connective layer
Mail through the API: replies sent with their threading headers, inside the customer’s own thread.
Google Sheets
The connective layer
A CRM the client can read, where each lead’s reference comes from the row the sheet gives it.
Also offered
What each of these covers is on the Integrations page.
02 — Delivered
Lead-to-Cash CRM for Three Contractors
Eight lead sources into one hub, and won jobs pushed back to Google Ads and Meta as offline conversions.
AI Voice Agent System for a Training Academy
Two vendor platforms around one CRM. Every call outcome is written back, and every change to a live agent is backed up, written dry, then re-fetched and compared field by field.
Shopify Support Inbox, Handled End to End
Every action is checked against the real Shopify order first, and a replacement is created only after the order is re-fetched and re-checked.
Google Local Services Ads Lead Responder
The Google Ads API for the leads, Housecall Pro for real availability, and a browser agent for the one step Google leaves without an API.
AdWash — Autonomous Google Ads Management
Production reads and writes against the Google Ads API, where a failed read is never treated as an empty result, and a two-way sync with Housecall Pro and ServiceTitan.
03 — Built, not yet deployed
The workflow JSON is in the repository and imports into n8n; the node counts are taken from it. None of these has yet run against live accounts.
AI Front Desk — Missed Calls, After Hours and Booking
Twilio, the voice agent and Housecall Pro joined by webhooks: the slot is checked again before the job is created, and every call is summarised into the CRM.
Invoice & Document Intake into Your Accounting System
Bills posted to Xero once: the ledger is searched for the same supplier and invoice number immediately before the write. Approvals arrive as signed Slack callbacks.
Client Onboarding — Signature to Kickoff without Chasing
PandaDoc’s signature arrives as a signed webhook; Stripe’s payment then provisions Google Drive and Slack. A second delivery of the same Stripe event exits as already done.
The Weekly Number, Assembled and Sent
Google Ads, Meta, HubSpot, Stripe and CallRail reconciled into one row a week, with leads and bookings counted from the CRM alone.
CRM Rebuild & Migration, with the Automations on Top
A HubSpot migration whose dry run shows the exact payload it would write, with a rollback row reserved before each record is created. Intake normalises exactly as the migration does.
04 — Book a call
Systems that should be talking to each other?
Book a call to go through what should move between them, and what should happen when one of them fails.