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
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.



