Skip to main content
Sales Operations·Lending Client

Calendly Booking to GoHighLevel Native Pipeline

A lending client's main Calendly booking Zap had stopped working, and their previous automation person was gone. I audited it and rebuilt it in n8n in two days.

Calendly Booking to GoHighLevel Native Pipeline

2 days from audit to tested workflow

27 n8n nodes replace a 36-step Zap

The Problem

Their highest-volume Calendly booking flow ran through a 36-step Zapier Zap, and it had stopped working. The Slack pings to closers had stopped too, and leads were slipping through. Their previous automation person had left, so nobody on the team knew how it was built. They were already planning to move off Zapier, so they asked me to rebuild it in n8n and get the pings working again. I audited the Zap before changing anything. The main bug was a race condition: it read GoHighLevel custom fields before the write had committed, so it pulled empty values. The audit also turned up pings routed to the wrong form template, an unknown closer broke the Slack mention and skipped the GoHighLevel assignment, and their Calendly connection needed to be reconnected.

The Build

They were already exploring n8n, so they wanted a rebuild there instead of a patch on the old Zap. n8n is easier for me to build in anyway. I planned the migration and strategy from the audit with Claude, then built it with Claude through the n8n MCP. The new workflow waits 60 seconds after the GoHighLevel write, reads the contact back, and checks that the form fields are there. If one is still empty, it retries up to 3 times, 30 seconds apart. A Switch picks one of four form-specific Slack templates, and the Facebook Conversions API call runs on its own branch so it can't hold up the ping. I tested it end to end before calling it done.

Screens

Before and after for a lending client's Calendly flow: a 36-step Zap sent empty Slack pings, now a 27-node n8n flow with full fields.

The Outcome

Closers get a Slack ping that matches the form the lead filled out, with the fields filled in. If the Facebook call fails or the closer isn't in the lookup table yet, the ping still goes out, with a plain name and a flag for ops when the closer is missing. The highest-volume booking flow no longer depends on Zapier.

Stack

n8nGoHighLevelZapierCalendlySlackFacebook CAPIJavaScript