Form to GHL Contact Upsert
A form posts in, the answers are tidied, and the contact is created or updated in GoHighLevel. Nobody retypes anything.
n8n is where work goes when it cannot be done in one pass: a video that takes minutes to render, a call that must wait for opening hours, a list too long to fetch in one go. Each one below is a real build, drawn step by step as it runs. Click any one to see it full size.
A form posts in, the answers are tidied, and the contact is created or updated in GoHighLevel. Nobody retypes anything.
The same, and then it books the appointment, answering success and failure down two separate paths.
Worth noticing. Most builds treat an error as nothing happening. This one reports a failed booking as a failure.
Someone describes a video on a form. It becomes a prompt, RunwayML renders it, and the finished file lands in Google Drive.
Worth noticing. A render takes minutes. So it waits, checks, and goes back to waiting until the video is actually done.
A GHL form comes in at any hour. The AI caller rings them once the office is open, and if a whole day passes the team is told instead.
Worth noticing. If it is shut it waits fifteen minutes and checks again, but gives up after 24 hours rather than looping forever.
When the AI finishes a call, its analysis is logged, and the team hears about it only if the details it needed were collected.
A call rings in. The number is looked up and the caller's details go back before the call connects.
Every Thursday morning a reminder goes to the team in Slack, reworded each week so people keep reading it.
Worth noticing. The randomiser is the point. The same words every week stop being read by about the fourth one.
On a schedule it scrapes videos, skips any already seen, transcribes the new ones, works out why they worked, researches, and writes a fresh script.
Worth noticing. The check against existing entries comes before anything is downloaded, so no video is ever paid for twice.
Called by other workflows. It pages through a long list, drops duplicates twice, and writes the clean result to Google Sheets.
Worth noticing. Duplicates are removed before and after the detail is fetched, because the second fetch can bring back repeats the first could not see.
Read off the n8n editor. The screenshots show the canvas without the workflow's name, so each is titled from its own steps; the steps are exactly as the editor labels them. Dashed curves are loops: the workflow goes round again until its condition is met.