Systems & InfrastructureAutomationsCRM Architecture
An AI agent built in the GoHighLevel Conversation AI flow builder
It answers on WhatsApp, text or the website. It knows the treatments and what they cost, it reads the real diary and offers real times, and it books one. When somebody asks whether a treatment is safe with their medication, it stops and hands them to a person.
Read the workflow as text
- Wants to book
- Type is "book_appointment"
- The customer's LATEST message NEWLY asks to book, asks for available times, agrees to come in, or asks to move, change, reschedule or cancel an appointment they already have - a fresh request that is not already being handled. Choosing or confirming a time the assistant just offered is part of the booking already underway, not a new request. is "The customer's LATEST message NEWLY asks to book, asks for available times, agrees to come in, or asks to move, change, reschedule or cancel an appointment they already have - a fresh request that is not already being handled. Choosing or confirming a time the assistant just offered is part of the booking already underway, not a new request."
- Priority is "10"
- Sensitivity is "high"
- Person, upset or medical
- Type is "custom_scenario"
- Description is "The customer's LATEST message raises something about THEIR OWN health: a condition they have, medication they take, being pregnant or breastfeeding, a reaction they have had before, or asking whether the treatment is safe or suitable for them personally. It also applies when they ask to be put through to a real person instead of the assistant, or are angry or distressed. It does NOT apply to asking who the practitioner is, their name, experience or qualifications, which is a normal question. It does NOT apply to general fears or rumours about the treatment, to booking, accepting a time, giving contact details, or moving or cancelling an appointment."
- Priority is "9"
- Sensitivity is "high"
- Names a later time
- Type is "custom_scenario"
- The customer names a later time to come back to them or says not right now, and the assistant is not already asking for or confirming a follow-up date. is "The customer names a later time to come back to them or says not right now, and the assistant is not already asking for or confirming a follow-up date."
- 5 is "5"
- Sensitivity is "low"
- Chat Initiated
- 1Which trigger brought them here
- 2Came to book
- 3Go to: New booking, a change, or a question?
- 4Medical or human
- 5Clinical, or do they just want a person?SplitterThey are upset or have asked for a person. Decide which kind. Clinical: they are asking about their OWN safety, their own medication, pregnancy, a health condition of theirs, a reaction, or something that went wrong. Everything else is NOT clinical: annoyed at the assistant, wants to talk to a human, unhappy about the price, wants to negotiate, or wants reassurance from a person. When in doubt it is NOT clinical.
- 6No condition met
- 7System note: asked for a personAsked for a person
- 8In-app ping: they asked for a person{{contact.first_name}} asked for a person
- 9Add taskCall Lead – Requested a Person
- 10Keep helping, they can still bookContinueContext: they asked for a person, or were unhappy, and someone from the team is going to call them. Mention that once and do not bring it up again, and do not offer to pass them on a second time. Keep talking to them yourself in the meantime and answer whatever they ask. Never invent anything you do not know, and never claim you have checked a record, looked something up, or made a change yourself. If they want something doing with their booking, say yes, ask for what you would need, and carry on from there. Never go quiet, never close the conversation down, and never tell them you cannot help.
- 11Their own safety, medication or a reaction
- 12Go to: Enrol escalation
- 13Named a later time
- 14Go to: Clear old follow-up date
- 15Chat initiated
- 16Route what they wantSplitterRoute the contact's message to the right section. Answer what they actually asked first, in the same message. Anything at all to do with appointments, whether booking a new one or moving or cancelling one they already have, goes to the booking section. General fears or rumours about a treatment (does it hurt, does it work) are NOT medical: keep them in the default section. Describing a concern they want treated (acne scars, dull skin) is NOT medical either.
- 17No condition met
- 18Free conversationContinueContext: an ordinary conversation, and nothing has happened yet that you need to account for. Answer what they ask from your knowledge, and guide gently toward a visit when it fits. Never invent anything you do not know, and never claim you have checked a record, looked something up, or made a change yourself. If they want something doing with their booking, say yes, ask for what you would need, and carry on from there. Never go quiet, never close the conversation down, and never tell them you cannot help.
- 19Wants to book a new visit or see times
- 20New booking, a change, or a question?SplitterChecking, moving or cancelling: they mention an appointment they ALREADY have, ask if they have one, or want it checked, changed, moved or cancelled, including short messages where it is only implied by it or this. If they already have an upcoming appointment, anything about a time belongs here unless they clearly want a separate extra visit. Wanting to book: a first visit, or accepting a time you just offered. Wants more info: price or treatment. If unsure, choose Checking.
- 21No condition met
- 22Not sure yet, ask onceContinueContext: it is not clear yet whether they mean a new visit or one they already have, and that is the one useful thing to find out. Ask which it is, once, in your own words. If they do not say, carry on helping anyway and it will become clear. Never invent anything you do not know, and never claim you have checked a record, looked something up, or made a change yourself. If they want something doing with their booking, say yes, ask for what you would need, and carry on from there. Never go quiet, never close the conversation down, and never tell them you cannot help.
- 23Moving or cancelling one they already have
- 24System note: wants to move or cancelWants to move or cancel
- 25Identify them before we lookGet the email address or mobile number their appointment was booked underOnly if you do not already know who they are. Say warmly that you will pull their booking up, and ask for the email address or mobile number it was booked under so you can find it. Ask for nothing else: no treatment, no dates. Never suggest the clinic is unable to move or cancel appointments.
- 26Do they have a booking still to come?
- 27They have a booking with us
- 28Name the booking is under, if we do not know themFind out the name their appointment is booked underOnly if you do not already know who they are. Say warmly that you will pull their booking up, and ask what name it is booked under. Ask nothing else: no treatment, no email, no phone.
- 29Move or cancel the one they haveBooksToday is {{right_now.day_of_week}} {{right_now.little_endian_date}}. You are looking up a booking they already have, to move or cancel. No result means you have not identified them: ask the name it is under. Never offer a past time, and their own booking never makes a time unavailable. If several are due, ask which. Say its day and time back, then offer two or three real times. Once it is moved or cancelled, say nothing more: the confirmation is sent automatically.
- 30Appointment Booked
- 31System note: they moved their appointmentMoved their appointment
- 32Moved: stay reactiveContinueContext: their appointment has just been moved, so there is no need to go over it again or sell the visit. You do not have the new day and time in front of you, so never state a day, time or price for it. If they ask you to confirm the details, say yes and tell them you will get that confirmed for them. Never invent anything you do not know, and never claim you have checked a record, looked something up, or made a change yourself. If they want something doing with their booking, say yes, ask for what you would need, and carry on from there. Never go quiet, never close the conversation down, and never tell them you cannot help.
- 33Appointment Not booked
- 34Did not move it: keep helpingContinueContext: none of the times you offered suited them, so the appointment they already had still stands, unchanged. It is worth them knowing that plainly. Finding a time that works is still the point, so ask what days, or what times of day, would actually suit. Never promise a note on file, a call back, or a message when something opens up. Never invent anything you do not know, and never claim you have checked a record, looked something up, or made a change yourself. If they want something doing with their booking, say yes, ask for what you would need, and carry on from there. Never go quiet, never close the conversation down, and never tell them you cannot help.
- 35Nothing upcoming on their record
- 36Have they been to us before?
- 37Their appointment has already happened
- 38Their visit has been: offer the next oneContinueContext: the visit they are asking about has already been and gone, so that one cannot be moved. Their next visit is the natural thing to talk about when it fits. If they mean a different appointment, take them at their word and keep going. Never invent anything you do not know, and never claim you have checked a record, looked something up, or made a change yourself. If they want something doing with their booking, say yes, ask for what you would need, and carry on from there. Never go quiet, never close the conversation down, and never tell them you cannot help.
- 39No record of them at all
- 40In-app ping: says they have a booking we cannot find{{contact.first_name}} says they have a booking we cannot find
- 41Say we cannot find it, offer to bookContinueContext: their booking did not come up on their record. It may be under a different name or number, so that is worth asking about. If they give you another name or number, thank them, tell them you will get it looked at, and keep talking to them. Booking a new visit is open to them too. Never invent anything you do not know, and never claim you have checked a record, looked something up, or made a change yourself. If they want something doing with their booking, say yes, ask for what you would need, and carry on from there. Never go quiet, never close the conversation down, and never tell them you cannot help.
- 42Wanting to book
- 43Enrol Booking Started
- 44Capture treatment interestFind out which treatment or service they want to come in forAnswer whatever they asked first, in the same message. One short question at most. If they already named the treatment, record THEIR words without asking again. Never record the example text. If they are asking to MOVE or CANCEL an appointment they already have, never say you cannot do that, and never say you only handle new bookings: you can move and cancel appointments. Say you will pull their booking up, and if you do not know who they are yet just ask what name it is booked under. Do not ask them for a treatment in that case.
- 45First name if missingGet their first nameOnly if it is missing. Answer any question they asked first, in the same message, then ask naturally in passing, never as a form. If they are asking to move or cancel an existing appointment, ask for the name it is booked under rather than implying you cannot help, and never say you only handle new bookings.
- 46Surname if missingGet their surnameA surname like Visitor followed by random letters is a web chat placeholder, not a real name: treat it as missing and ask. Can be asked together with the first name.
- 47Mobile if missingGet the best mobile number for their confirmationOnly if it is missing. Say it is for the booking confirmation.
- 48Email if missingGet their email address for the confirmationOnly if it is missing.
- 49Find opportunityFinds the card
- 50Opportunity Found
- 51Copy treatment interest to the cardUpdates the card
- 52Book appointmentBooksToday is {{right_now.day_of_week}} {{right_now.little_endian_date}}. Work out named days from today; next week means the week after this. Offer two or three real available times straight away, never ask which day suits without offering times. Only state times the calendar returned, and only confirm a time you have already stated. If they say the first or the last, repeat the exact day and time. Once it is booked, say nothing more: the confirmation is sent automatically.
- 53Appointment Booked
- 54Reactive after bookingContinueContext: they have just booked, so there is no need to sell the visit or go over it again. You do not have the appointment in front of you, so never state a day, time or price for it. If they ask you to confirm the details, say yes and tell them you will get that confirmed for them. Never invent anything you do not know, and never claim you have checked a record, looked something up, or made a change yourself. If they want something doing with their booking, say yes, ask for what you would need, and carry on from there. Never go quiet, never close the conversation down, and never tell them you cannot help.
- 55Appointment Not booked
- 56AI splitterSplitterUnderstand why they did not take a time.
- 57No condition met
- 58Keep helpingContinueContext: none of the times you offered suited them. Finding one that does work is still the whole point, so stay on it and ask what days, or what times of day, would actually suit. Never promise a note on file, a call back, or a message when something opens up. Never invent anything you do not know, and never claim you have checked a record, looked something up, or made a change yourself. If they want something doing with their booking, say yes, ask for what you would need, and carry on from there. Never go quiet, never close the conversation down, and never tell them you cannot help.
- 59Names a later date or says not right now
- 60Go to: Clear old follow-up date
- 61Opportunity Not Found
- 62Create opportunityCreates a card
- 63Go to: Book appointment
- 64Wants more info
- 65Answer, then find out whichContinueContext: they have asked you something, and it is still not clear whether they mean a new visit or one they already have. Answer what they asked first, then ask which it is, once. If they do not say, carry on helping anyway and it will become clear. Never invent anything you do not know, and never claim you have checked a record, looked something up, or made a change yourself. If they want something doing with their booking, say yes, ask for what you would need, and carry on from there. Never go quiet, never close the conversation down, and never tell them you cannot help.
- 66Safety with their own condition or medication
- 67Enrol escalation
- 68Handover lineAI messageAnswer what you can without giving a medical opinion, then say warmly that this is exactly what the practitioner goes through with them at their visit, and offer to get them booked in. Never say the team will pick this up or be in touch. Never invent anything you do not know, and never claim you have checked a record, looked something up, or made a change yourself. If they want something doing with their booking, say yes, ask for what you would need, and carry on from there. Never go quiet, never close the conversation down, and never tell them you cannot help.
- 69Team owns itContinueContext: they raised something medical about their own situation. That is the one thing you leave to the practitioner: never advise, reassure or agree on safety, medication, pregnancy or a health condition. Say warmly that it is exactly what Hannah goes through with them at the visit, then carry on helping as normal and answer whatever else they ask. Do not tell them the team will pick it up, be in touch or follow up. Never invent anything you do not know, and never claim you have checked a record, looked something up, or made a change yourself. If they want something doing with their booking, say yes, ask for what you would need, and carry on from there. Never go quiet, never close the conversation down, and never tell them you cannot help.
- 70Upset or explicitly asks for a human
- 71System note: asked for a personAsked for a person
- 72In-app ping: they asked for a personCall Lead – Upset / Needs Human Support
- 73Add taskCall Lead – Upset / Needs Human Support
- 74Keep helping, they can still bookContinueContext: they asked for a person, or were unhappy, and someone from the team is going to call them. Mention that once and do not bring it up again, and do not offer to pass them on a second time. Keep talking to them yourself in the meantime and answer whatever they ask. Never invent anything you do not know, and never claim you have checked a record, looked something up, or made a change yourself. If they want something doing with their booking, say yes, ask for what you would need, and carry on from there. Never go quiet, never close the conversation down, and never tell them you cannot help.
- 75Names a later date or says not right now
- 76Clear old follow-up dateFollow Up On
- 77Capture the follow-up dateGet the specific date they want us to come back to themNever ask a question at this step. Derive the date silently from what they already said: a rough phrase like in a couple of weeks becomes a real FUTURE date in YYYY-MM-DD. If nothing suggests a timeframe, record the date exactly two weeks from today. Never record a past date and never record the example.
- 78Capture the reasonCapture, in their own words, why they are waitingNever ask a question at this step. Record THEIR OWN words from the conversation about why they are waiting, never a stock phrase and never the example. If no reason was given, record: not stated.
- 79Warm sign-offSaysNo problem at all, I'll check back with you around then. Before I leave you to it, is there anything that would help you decide in the meantime?
- 80Still hereContinueContext: they named a later time to come back to them, so there is no rush and no chasing the date. Answer whatever they ask, and if they bring a visit up themselves, take it forward with them. Never pressure them. Never invent anything you do not know, and never claim you have checked a record, looked something up, or made a change yourself. If they want something doing with their booking, say yes, ask for what you would need, and carry on from there. Never go quiet, never close the conversation down, and never tell them you cannot help.
The problem
A clinic's leads message at nine at night and on a Saturday, and the front desk is with a patient. The usual answer is a chatbot with a script, which gets three questions in and starts making things up: a price it has never seen, a slot that is not free, an opinion about somebody's medication. That is worse than not answering, because now the clinic has to unpick it.
What shipped
- Answers in seconds on WhatsApp, text or the website, at any hour
- Offers times out of the real diary, so nobody is told to come at an hour that was never free
- Hands anything medical to a person instead of answering it
What happens
Somebody messages the clinic. The AI works out what they actually want: to book, to ask a price, to say not right now, or to raise something about their own health.
If it is a booking, it reads the diary, offers real times, takes one and books it. If it is a price or a treatment question, it answers from what the clinic actually offers. If they name a later date, it captures that date rather than arguing. If it is medical, it stops.
Everything it does is written back onto the record, so the next person to speak to them starts with the whole conversation rather than a transcript to read.
Want one built for you?
Get on a call with me and let's talk it through.