Please enable JavaScript.
Coggle requires JavaScript to display documents.
External Booking System, Services that will be used, This is wherever the…
-
-
This is wherever the appointment actually gets scheduled first could be a website widget, a phone call taken by a human, a third-party scheduler, or whatever front door your patients use. It's the trigger point: nothing downstream happens until an appointment exists.
Connects to CRM because as soon as a booking is made, that booking record needs to live somewhere central.
-
-
-
-
This is the system of record
The database that holds the patient's contact info, appointment time, appointment status, and history. Think of it as the "single source of truth" the whole pipeline reads from and writes back to.
Connects to n8n because GoHighLevel itself doesn't have the logic to run AI phone calls or make decisions, it hands that job off to an automation layer.
Callback request
The patient didn't give a clear answer, asked to be called back, or the call didn't go through cleanly. This is where it would loop back to the callback engine from diagram 2 to try again later.
n8n is a workflow automation tool. It's the "traffic controller"; it watches for events (like a new appointment) and decides what to do next, routing work to different specialized engines.
Connects downward to four parallel engines, because orchestration doesn't do the actual work itself; it will delegate.
Business rules
This is logic-only, no AI things like "don't call patients after 8pm," "skip reminder calls for same-day bookings," and "only call once per appointment." It's guardrails that decide whether and when the other engines should even act.
Runs in parallel with the others, feeding constraints into the process rather than a straight line.
AI call engine
This is the engine that actually initiates the outbound phone conversation with the patient. It's the orchestrator of this specific task it decides who to call and hands the job to a voice AI platform.
Connects onward to ElevenLabs (because it doesn't generate the voice itself, it delegates to a specialized voice AI vendor.
Confirmed
The patient explicitly confirmed they're keeping the appointment. No further action needed except updating the record.
Reporting engine
Sends notifications out email or SMS confirmations, staff alerts, daily summaries. It's the "tell someone what happened" function.
Draws from the same shared analysis output that decides outcomes
Callback engine
Handles retry logic: if a call isn't answered, or the patient asks to be called back later, this engine schedules that follow-up attempt.
Sits alongside the AI call engine; it's what kicks in when the first attempt doesn't fully resolve
ElevenLabs AI
This is the voice AI platform , it converts text/logic into natural-sounding speech and handles the live back-and-forth conversation with the patient
Connects to "Patient conversation" because ElevenLabs is the engine, the conversation is what it produces.
Patient conversation
The actual live exchange: the AI asks "can you confirm your appointment on Tuesday at 2pm?" and the patient responds. This is captured as raw audio/text.
Connects to the transcript step because the conversation needs to be turned into something analyzable.
Transcript / OpenAI analysis
The conversation gets transcribed and then fed into an LLM (OpenAI/Claude AI) that reads the exchange and figures out what the patient actually decided: confirmed, wants a callback, or wants to reschedule.
This is the classifier; it reads the transcript and sorts it into one of three buckets. This is the "smart" part of the system: instead of a human listening to every call, the LLM does that judgment call automatically.
Branches into three possible outcomes based on what it understood.
Reschedule
The patient said they can't make the current time and want a different one. This might trigger a workflow to open a new booking slot.
Update GoHighLevel
This is the final step where whatever was learned or decided gets written back into the CRM record — appointment status changes from "pending" to "confirmed," or gets flagged for rescheduling, etc.