Automation systems & custom software · 19 systems on file
I build the system that answers before you do.
Automation and custom software for clinics, studios, agencies, education businesses, and founders — the kind that books, follows up, and reports without you touching it.
- re-engagement
- +40%
- re-engagement
- Measured
- manual follow-ups
- −70%
- manual follow-ups
- Measured
- reclaimed by a founder
- ~15 hrs/wk
- reclaimed by a founder
- Measured
- contacts audited
- 22.6k
- contacts audited
- Scope
Which of these is you?
Pick the sentence that sounds like your week. Each one opens the systems built for it.
“Leads come in and nobody answers fast enough.”
The ones who filled in the form have already booked with someone else.
Stages: Inquiry → CRM capture → Booking → Silence recovery → Outcome → Aftercare & insight e.g. Service Business Platform
6 systems · measured results“I want something that answers, qualifies, and books — without me.”
Right now every enquiry waits for you to pick up your phone.
Stages: Entry & channels → Conversation control → Qualification → Knowledge & locked scripts → Age routing → Booking → CRM writes → Follow-up ladder → Suppression & escalation → QA & rollout e.g. AI Booking Concierge
5 systems“Our CRM is a mess and I don't trust what it tells me.”
You check every number by hand because the system has been wrong before.
Stages: Engagement frame → Read-only capture → Domain inventory → Automation teardown → Spec vs reality → Decision package → Safety-first cleanup → Attribution model → Reporting blueprint e.g. CRM Systems Audit & Cleanup
5 systems“I can't tell which marketing actually makes money.”
You keep paying for channels you cannot connect to a single sale.
Stages: Single-tenant deployment → Scheduled ingestion → Warehouse → Run integrity → Honesty gates → Geography rebuild → The screens → AI weekly report → Access & privacy → CRM sales layer e.g. Ads & sales reporting dashboard
5 systems · measured results“Members slip away and payments fail quietly.”
You find out someone left when you look at the monthly total.
Stages: Behaviour signal → AI decision → Recovery cadence → Billing rescue → Suppression & logging → Outcome e.g. AI Accountability Platform
4 systems · measured results“Everything runs through me — the admin never ends.”
The work only moves on the days you sit down and push it.
Stages: Inquiry → CRM capture → Booking → Silence recovery → Outcome → Aftercare & insight e.g. Service Business Platform
6 systems · measured results- Something else — see all 19 systemsBrowse the library →
What a system page looks like
Every project opens into its real architecture. Follow one event through it.
This is the AI booking concierge for a local martial-arts academy. Open a stage, click a component, or press play and watch a parent’s 11pm text move through it.
FIG 01 · Live example
How the system actually runs
Every component below is reconstructed from the project’s own build records. Nothing is added to make it look bigger.
- components
- 44
- components
- stages
- 10
- stages
- decisions & guards
- 19
- decisions & guards
- AI
- 1
- AI
- human handoffs
- 4
- human handoffs
- platforms
- 4
- platforms
- Stage 1, Entry & channels: Every way a lead reaches the agent, and the platform switch that makes email work at all.
- Inbound SMS & email (Source, GoHighLevel). A prospect texts or emails the academy at any hour and the same agent owns both threads. Connects to Primary-bot switch; Concierge agent.
- Reactivation drip reply (Source, GoHighLevel workflow). A cold-list contact replies to the reactivation campaign and is handed straight to the agent with positive intent. Connects to Concierge agent when positive intent.
- Primary-bot switch (Guard, Conversation AI). The agent is set as the account’s primary bot, which the platform requires before it will auto-reply to inbound email at all. Connects to Concierge agent when email auto-reply enabled.
- Stage 2, Conversation control: The persona, the pacing, the caps, and the guards that stop it double-texting.
- Concierge agent (AI, Conversation AI (auto-pilot)). The AI front desk — a fixed program-director persona replying with no human review. Connects to Conversation guardrails; Self-disclosure line when are you a bot?; Pricing deflection when price asked; Objection reflexes when known objection; Billing off-ramp when cancel · freeze · billing; Follow-up engine when contact goes quiet; Human handover when medical · hostile · out of scope.
- Conversation guardrails (Guard, Conversation AI). Three settings held together: a 15-second delay before SMS replies and 5 minutes before email, a hard ceiling of 20 agent messages per conversation, and instant sleep the moment a human or workflow sends into the thread. Connects to Who is training? when after the human-feel delay; Filtered inbox queue when 20-message cap.
- Self-disclosure line (Guard, Prompt (verbatim)). "Are you a bot?" is answered with one exact, unchangeable sentence, and then the agent moves on. Connects to Who is training? when answered, moves on; Human handover when sincere human request.
- Stage 3, Qualification: Establishing who is actually training before anything is offered.
- Who is training? (Decision, Prompt (booking step 1)). The first question always splits three ways — yourself, your child, or multiple family members. Connects to Whose details? when myself / my child; Family booking loop when multiple family members.
- Whose details? (Decision, Prompt). A self-booker gives their own details; a parent gives the child’s first name while the contact record stays the parent — and the agent checks the record first, confirming what is already on file instead of re-asking. Connects to Capture exact age when ask only what is missing.
- Stage 4, Knowledge & locked scripts: What the agent may retrieve, and the verbatim lines it may never improvise around.
- Five-document knowledge base (Data store, GoHighLevel knowledge base). The knowledge base is deliberately split into five documents — core/booking, pricing, membership and cancellation, objections, and boundaries/tone — all configured to always retrieve. Connects to Concierge agent.
- Staff-editable values (CRM record, GoHighLevel custom values). Phone, address, booking-page URL, academy name and the persona name live as CRM custom values the agent interpolates. Connects to Concierge agent.
- Pricing deflection (Guard, Prompt (hard-locked)). The agent may never quote a price, range, floor or anchor — one exact deflection script is used, and a second refusal to defer escalates to a human. Connects to Human handover when second demand; Live slot fetch when accepts, books.
- Objection reflexes (Message, Prompt + KB (verbatim)). Five common objections — not fit enough, too rough for my kid, too old, need to think about it, shy child — have word-for-word replies that all end in a booking nudge. Connects to Live slot fetch when booking nudge accepted.
- Billing off-ramp (Message, Prompt (verbatim)). Cancellation, freeze and billing-change questions get verbatim scripts routing the contact to the academy’s written-request email; the agent never negotiates or processes. Connects to Filtered inbox queue when written request only.
- Stage 5, Age routing: A number turned into exactly one program by table, not by model judgement.
- Capture exact age (Capture, Prompt). The agent must obtain a number before suggesting any program — a school grade, "my toddler" and "my teen" are all rejected as age signals. Connects to Age eligibility guards when range or out of window; Deterministic age router when exact number given.
- Age eligibility guards (Guard, Prompt). Ages outside 3–99 are refused politely, and a range answer ("around 5 or 6") forces a re-ask rather than a pick. Connects to Capture exact age when re-ask exact age; Deterministic age router when age 3–99.
- Deterministic age router (Decision, Multi-calendar booking action). A fixed table maps the age number to exactly one of five program calendars, with no fallback calendar because every eligible age already fits one. Connects to Five program calendars when one bracket, no fallback; Locked bracket rules when boundary age; Guardian consent gate when trainee under 18.
- Locked bracket rules (Guard, Prompt (locked)). Two boundary rules override the table: a 16-year-old always routes to the adult program even though the juniors calendar’s display name reads as if it includes 16, and a child who has just turned into a new bracket books the higher program. Connects to Five program calendars when 16 → adult · just turned 10 → juniors.
- Guardian consent gate (Guard, Prompt). Under-16s self-booking cannot be finalised without a guardian’s first name, phone and email; 16- and 17-year-olds booking the adult program need explicit in-thread guardian confirmation. Connects to Book appointment when guardian captured.
- Stage 6, Booking: Live availability, an explicit yes, and the loop for the rest of the family.
- Five program calendars (Calendar, GoHighLevel calendars). One calendar per age bracket — 3–4, 5–6, 7–9, 10–15 and 16+ — each matched by its exact name plus a keyword list, and offered to the prospect only by its plain-English program name. Connects to Live slot fetch.
- Live slot fetch (Calendar, Booking action). Real bookable slots are pulled from the routed calendar; if the window returns nothing the agent says so and offers the next window rather than inventing a time. Connects to Explicit confirmation when slot chosen; Follow-up engine when zero slots — no booking yet.
- Explicit confirmation (Decision, Prompt (booking step 5)). Name, program and date/time are read back and an affirmative is required before the booking action fires. Connects to Book appointment when explicit yes.
- Book appointment (Workflow, Appointment-booking action). The platform booking action is invoked silently against the matched calendar, then the agent sends the first-class brief — arrive early, workout clothes under a loaned uniform, water, shoes off — and flags the post-class enrolment meeting. Connects to Trainee name & age when trainee is not the contact; Booked tag; Family booking loop when book another?.
- Family booking loop (Decision, Prompt (loop logic)). After each booking the agent asks whether another family member should be booked and, on yes, loops back to name, age, route and confirm for the next person. Connects to Whose details? when yes — next family member; Loop fallback link when second booking action unavailable; Loop race guard when fields overwritten per child.
- Loop fallback link (Decision, Workflow + custom value). If the booking action cannot be re-invoked in one thread, the agent sends the staff-editable self-serve booking link for person two onward and fires a workflow that tags the contact pending and notifies staff; a stricter variant queues a manual callback within one business day. Connects to Staff SMS alert when pending tag + notify; Trial booked when books via the self-serve link.
- Stage 7, CRM writes: Fields, tags and one pipeline record per trainee on every booking.
- Trainee name & age (CRM record, Contact custom fields). The trial student’s first name and a bare numeric age are written to dedicated custom fields — and the name is deliberately not written when the contact is booking for themselves. Connects to Loop race guard.
- Loop race guard (Guard, Design constraint). Because the trainee fields are contact-level they are overwritten per child, so downstream automation must read them synchronously at booking time — mitigated either by creating the record inside the booking chain or by stamping trainee data onto the appointment itself. Connects to One record per trainee when read synchronously at booking.
- One record per trainee (CRM record, Opportunities + 3-stage pipeline). The contact stays the parent while each booked trainee becomes its own opportunity, moved along a dedicated three-stage pipeline by downstream automation rather than by the agent. Connects to Trial booked when moved to the booked stage.
- Booked tag (CRM record, GoHighLevel tag). A win tag applied by the booking action; it is the single signal every other subsystem reads to mean "stop chasing this person". Connects to Stop-bot action when win exit; Reply auto-reset; Day-30 sunset when excluded from sunset.
- Trial booked (Outcome, GoHighLevel). A confirmed trial on the age-correct calendar, trainee data captured, the win tag set and every chase system stood down.
- Stage 8, Follow-up ladder: What happens to a lead who goes quiet, shaped by why they went quiet.
- Follow-up engine (Workflow, Conversation AI auto-followup). The native follow-up engine runs underneath the agent, sending only between 9am and 8pm in the contact’s own timezone. Connects to Follow-up guardrails; Hard opt-out when STOP / unsubscribe; Soft decline when not interested.
- Follow-up guardrails (Guard, Auto-followup + workflows). Three rules wrap every ladder: channel switching is off so follow-ups go out on whichever channel the prospect used, the "trigger a workflow from inside a sequence" toggle is forced off everywhere, and the old scripted nudges in the handoff workflow were deleted while its stall tag and staff notification were kept. Connects to Silent-lead ladder when stopped responding; Busy-lead ladder when said they are busy; Requested-callback ladder when asked us to follow up.
- Silent-lead ladder (Message, Auto-followup (scenario A)). Five touches on a decaying cadence — 4 hours, then +24 hours, +3 days, +7 days, +14 days — each with a distinct frame: check-in, friction removal, social proof, permission to opt out, door-open close. Connects to Reply auto-reset when any inbound reply; Day-30 sunset when still unbooked at day 30.
- Busy-lead ladder (Message, Auto-followup (scenario B)). Three widely spaced touches — 2 days, +1 week, +3 weeks — for someone who explicitly said it is a bad time, ending in a stated farewell. Connects to Reply auto-reset when any inbound reply; Day-30 sunset when still unbooked at day 30.
- Requested-callback ladder (Message, Auto-followup (scenario C)). Two touches — the first timed by the AI to whatever window the contact actually named ("after the holidays", "ping me Monday"), then one friction-reduction message a day later. Connects to Reply auto-reset when any inbound reply.
- Reply auto-reset (Guard, Auto-followup). Any inbound reply cancels the remaining sequences in the active ladder and returns the conversation to the agent. Connects to Concierge agent when agent resumes.
- Stage 9, Suppression & escalation: Opt-out, hostility, sunset, and the eight conditions that fetch a human.
- Hard opt-out (Guard, Native opt-out). STOP, unsubscribe or remove-me applies a hard-stop tag, cancels every sequence, exits every campaign and permanently excludes the contact from future batches. Connects to Stop-bot action.
- Soft decline (Guard, AI suppression). "Not interested" applies a soft-no tag, exits the ladders, and additionally excludes the contact from the day-30 sunset. Connects to Day-30 sunset when excluded from sunset.
- Stop-bot action (Guard, Conversation AI). Four distinct conditions stop the agent for a contact: the win tag, a hard opt-out, hostility, and the sunset handoff tag. Connects to Filtered inbox queue when thread parked for a person.
- Day-30 sunset (Scheduled job, GoHighLevel workflow). At day 30 an unbooked, non-opted-out, non-hostile contact is retagged out of the active campaign and handed to a quarterly reactivation track — and the agent is explicitly stopped at that moment. Connects to Stop-bot action when handed to the quarterly track.
- Human handover (Human, Handover action). Eight named conditions hand the thread to a person — medical or injury, a refused pricing deflection, hostility, a broken link or calendar error, out-of-scope curriculum questions, a non-English message, an explicit ask for a human, and any sincere human request after the self-disclosure line. The agent stops replying and does not announce that it is leaving. Connects to Stop-bot action when agent stops silently; Staff SMS alert.
- Staff SMS alert (Staff alert, GoHighLevel notification). Every handover fires an SMS to the program director — a channel choice explicitly signed off rather than assumed. Connects to Filtered inbox queue.
- Filtered inbox queue (Human, Conversations inbox). Handed-over conversations are picked up in the CRM inbox filtered by the handoff tag. Connects to Trial booked when a human closes the booking.
- Stage 10, QA & rollout: The gates the agent had to pass before, and while, going live.
- 19-case QA suite (Report, Bot trial mode). Nineteen scripted inbound messages with expected behaviours — age-routing edges, the bot-or-human question, the pricing demand, a medical question, a broken link, a non-English message, hostility, STOP, an empty calendar, a cancellation request and the multi-child loop — plus five ladder tests and one end-to-end run on a known-safe number. Connects to 20-conversation audit when 19 cases + safe-contact test pass; Concierge agent when every locked rule made falsifiable.
- 20-conversation audit (Human, Manual review). Exactly twenty real conversations run under transcript review for pricing leakage, routing errors, missed handovers and voice drift before the hold is lifted and the agent handles all inbound unsupervised. Connects to Concierge agent when issues found — rework.
A parent texts at 11pm: "do you have classes for kids?" — the hour that used to mean waiting until morning.
0/17A parent texts at 11pm: "do you have classes for kids?" — the hour that used to mean waiting until morning.
Read this system as text
Stage 01
Entry & channels
Every way a lead reaches the agent, and the platform switch that makes email work at all.
- Inbound SMS & email · Source · GoHighLevel — A prospect texts or emails the academy at any hour and the same agent owns both threads. → Primary-bot switch, Concierge agent
- Reactivation drip reply · Source · GoHighLevel workflow — A cold-list contact replies to the reactivation campaign and is handed straight to the agent with positive intent. → Concierge agent (positive intent)
- Primary-bot switch · Guard · Conversation AI — The agent is set as the account’s primary bot, which the platform requires before it will auto-reply to inbound email at all. → Concierge agent (email auto-reply enabled)
Stage 02
Conversation control
The persona, the pacing, the caps, and the guards that stop it double-texting.
- Concierge agent · AI · Conversation AI (auto-pilot) — The AI front desk — a fixed program-director persona replying with no human review. → Conversation guardrails, Self-disclosure line (are you a bot?), Pricing deflection (price asked), Objection reflexes (known objection), Billing off-ramp (cancel · freeze · billing), Follow-up engine (contact goes quiet), Human handover (medical · hostile · out of scope)
- Conversation guardrails · Guard · Conversation AI — Three settings held together: a 15-second delay before SMS replies and 5 minutes before email, a hard ceiling of 20 agent messages per conversation, and instant sleep the moment a human or workflow sends into the thread. → Who is training? (after the human-feel delay), Filtered inbox queue (20-message cap)
- Self-disclosure line · Guard · Prompt (verbatim) — "Are you a bot?" is answered with one exact, unchangeable sentence, and then the agent moves on. → Who is training? (answered, moves on), Human handover (sincere human request)
Stage 03
Qualification
Establishing who is actually training before anything is offered.
- Who is training? · Decision · Prompt (booking step 1) — The first question always splits three ways — yourself, your child, or multiple family members. → Whose details? (myself / my child), Family booking loop (multiple family members)
- Whose details? · Decision · Prompt — A self-booker gives their own details; a parent gives the child’s first name while the contact record stays the parent — and the agent checks the record first, confirming what is already on file instead of re-asking. → Capture exact age (ask only what is missing)
Stage 04
Knowledge & locked scripts
What the agent may retrieve, and the verbatim lines it may never improvise around.
- Five-document knowledge base · Data store · GoHighLevel knowledge base — The knowledge base is deliberately split into five documents — core/booking, pricing, membership and cancellation, objections, and boundaries/tone — all configured to always retrieve. → Concierge agent
- Staff-editable values · CRM record · GoHighLevel custom values — Phone, address, booking-page URL, academy name and the persona name live as CRM custom values the agent interpolates. → Concierge agent
- Pricing deflection · Guard · Prompt (hard-locked) — The agent may never quote a price, range, floor or anchor — one exact deflection script is used, and a second refusal to defer escalates to a human. → Human handover (second demand), Live slot fetch (accepts, books)
- Objection reflexes · Message · Prompt + KB (verbatim) — Five common objections — not fit enough, too rough for my kid, too old, need to think about it, shy child — have word-for-word replies that all end in a booking nudge. → Live slot fetch (booking nudge accepted)
- Billing off-ramp · Message · Prompt (verbatim) — Cancellation, freeze and billing-change questions get verbatim scripts routing the contact to the academy’s written-request email; the agent never negotiates or processes. → Filtered inbox queue (written request only)
Stage 05
Age routing
A number turned into exactly one program by table, not by model judgement.
- Capture exact age · Capture · Prompt — The agent must obtain a number before suggesting any program — a school grade, "my toddler" and "my teen" are all rejected as age signals. → Age eligibility guards (range or out of window), Deterministic age router (exact number given)
- Age eligibility guards · Guard · Prompt — Ages outside 3–99 are refused politely, and a range answer ("around 5 or 6") forces a re-ask rather than a pick. → Capture exact age (re-ask exact age), Deterministic age router (age 3–99)
- Deterministic age router · Decision · Multi-calendar booking action — A fixed table maps the age number to exactly one of five program calendars, with no fallback calendar because every eligible age already fits one. → Five program calendars (one bracket, no fallback), Locked bracket rules (boundary age), Guardian consent gate (trainee under 18)
- Locked bracket rules · Guard · Prompt (locked) — Two boundary rules override the table: a 16-year-old always routes to the adult program even though the juniors calendar’s display name reads as if it includes 16, and a child who has just turned into a new bracket books the higher program. → Five program calendars (16 → adult · just turned 10 → juniors)
- Guardian consent gate · Guard · Prompt — Under-16s self-booking cannot be finalised without a guardian’s first name, phone and email; 16- and 17-year-olds booking the adult program need explicit in-thread guardian confirmation. → Book appointment (guardian captured)
Stage 06
Booking
Live availability, an explicit yes, and the loop for the rest of the family.
- Five program calendars · Calendar · GoHighLevel calendars — One calendar per age bracket — 3–4, 5–6, 7–9, 10–15 and 16+ — each matched by its exact name plus a keyword list, and offered to the prospect only by its plain-English program name. → Live slot fetch
- Live slot fetch · Calendar · Booking action — Real bookable slots are pulled from the routed calendar; if the window returns nothing the agent says so and offers the next window rather than inventing a time. → Explicit confirmation (slot chosen), Follow-up engine (zero slots — no booking yet)
- Explicit confirmation · Decision · Prompt (booking step 5) — Name, program and date/time are read back and an affirmative is required before the booking action fires. → Book appointment (explicit yes)
- Book appointment · Workflow · Appointment-booking action — The platform booking action is invoked silently against the matched calendar, then the agent sends the first-class brief — arrive early, workout clothes under a loaned uniform, water, shoes off — and flags the post-class enrolment meeting. → Trainee name & age (trainee is not the contact), Booked tag, Family booking loop (book another?)
- Family booking loop · Decision · Prompt (loop logic) — After each booking the agent asks whether another family member should be booked and, on yes, loops back to name, age, route and confirm for the next person. → Whose details? (yes — next family member), Loop fallback link (second booking action unavailable), Loop race guard (fields overwritten per child)
- Loop fallback link · Decision · Workflow + custom value — If the booking action cannot be re-invoked in one thread, the agent sends the staff-editable self-serve booking link for person two onward and fires a workflow that tags the contact pending and notifies staff; a stricter variant queues a manual callback within one business day. → Staff SMS alert (pending tag + notify), Trial booked (books via the self-serve link)
Stage 07
CRM writes
Fields, tags and one pipeline record per trainee on every booking.
- Trainee name & age · CRM record · Contact custom fields — The trial student’s first name and a bare numeric age are written to dedicated custom fields — and the name is deliberately not written when the contact is booking for themselves. → Loop race guard
- Loop race guard · Guard · Design constraint — Because the trainee fields are contact-level they are overwritten per child, so downstream automation must read them synchronously at booking time — mitigated either by creating the record inside the booking chain or by stamping trainee data onto the appointment itself. → One record per trainee (read synchronously at booking)
- One record per trainee · CRM record · Opportunities + 3-stage pipeline — The contact stays the parent while each booked trainee becomes its own opportunity, moved along a dedicated three-stage pipeline by downstream automation rather than by the agent. → Trial booked (moved to the booked stage)
- Booked tag · CRM record · GoHighLevel tag — A win tag applied by the booking action; it is the single signal every other subsystem reads to mean "stop chasing this person". → Stop-bot action (win exit), Reply auto-reset, Day-30 sunset (excluded from sunset)
- Trial booked · Outcome · GoHighLevel — A confirmed trial on the age-correct calendar, trainee data captured, the win tag set and every chase system stood down.
Stage 08
Follow-up ladder
What happens to a lead who goes quiet, shaped by why they went quiet.
- Follow-up engine · Workflow · Conversation AI auto-followup — The native follow-up engine runs underneath the agent, sending only between 9am and 8pm in the contact’s own timezone. → Follow-up guardrails, Hard opt-out (STOP / unsubscribe), Soft decline (not interested)
- Follow-up guardrails · Guard · Auto-followup + workflows — Three rules wrap every ladder: channel switching is off so follow-ups go out on whichever channel the prospect used, the "trigger a workflow from inside a sequence" toggle is forced off everywhere, and the old scripted nudges in the handoff workflow were deleted while its stall tag and staff notification were kept. → Silent-lead ladder (stopped responding), Busy-lead ladder (said they are busy), Requested-callback ladder (asked us to follow up)
- Silent-lead ladder · Message · Auto-followup (scenario A) — Five touches on a decaying cadence — 4 hours, then +24 hours, +3 days, +7 days, +14 days — each with a distinct frame: check-in, friction removal, social proof, permission to opt out, door-open close. → Reply auto-reset (any inbound reply), Day-30 sunset (still unbooked at day 30)
- Busy-lead ladder · Message · Auto-followup (scenario B) — Three widely spaced touches — 2 days, +1 week, +3 weeks — for someone who explicitly said it is a bad time, ending in a stated farewell. → Reply auto-reset (any inbound reply), Day-30 sunset (still unbooked at day 30)
- Requested-callback ladder · Message · Auto-followup (scenario C) — Two touches — the first timed by the AI to whatever window the contact actually named ("after the holidays", "ping me Monday"), then one friction-reduction message a day later. → Reply auto-reset (any inbound reply)
- Reply auto-reset · Guard · Auto-followup — Any inbound reply cancels the remaining sequences in the active ladder and returns the conversation to the agent. → Concierge agent (agent resumes)
Stage 09
Suppression & escalation
Opt-out, hostility, sunset, and the eight conditions that fetch a human.
- Hard opt-out · Guard · Native opt-out — STOP, unsubscribe or remove-me applies a hard-stop tag, cancels every sequence, exits every campaign and permanently excludes the contact from future batches. → Stop-bot action
- Soft decline · Guard · AI suppression — "Not interested" applies a soft-no tag, exits the ladders, and additionally excludes the contact from the day-30 sunset. → Day-30 sunset (excluded from sunset)
- Stop-bot action · Guard · Conversation AI — Four distinct conditions stop the agent for a contact: the win tag, a hard opt-out, hostility, and the sunset handoff tag. → Filtered inbox queue (thread parked for a person)
- Day-30 sunset · Scheduled job · GoHighLevel workflow — At day 30 an unbooked, non-opted-out, non-hostile contact is retagged out of the active campaign and handed to a quarterly reactivation track — and the agent is explicitly stopped at that moment. → Stop-bot action (handed to the quarterly track)
- Human handover · Human · Handover action — Eight named conditions hand the thread to a person — medical or injury, a refused pricing deflection, hostility, a broken link or calendar error, out-of-scope curriculum questions, a non-English message, an explicit ask for a human, and any sincere human request after the self-disclosure line. The agent stops replying and does not announce that it is leaving. → Stop-bot action (agent stops silently), Staff SMS alert
- Staff SMS alert · Staff alert · GoHighLevel notification — Every handover fires an SMS to the program director — a channel choice explicitly signed off rather than assumed. → Filtered inbox queue
- Filtered inbox queue · Human · Conversations inbox — Handed-over conversations are picked up in the CRM inbox filtered by the handoff tag. → Trial booked (a human closes the booking)
Stage 10
QA & rollout
The gates the agent had to pass before, and while, going live.
- 19-case QA suite · Report · Bot trial mode — Nineteen scripted inbound messages with expected behaviours — age-routing edges, the bot-or-human question, the pricing demand, a medical question, a broken link, a non-English message, hostility, STOP, an empty calendar, a cancellation request and the multi-child loop — plus five ladder tests and one end-to-end run on a known-safe number. → 20-conversation audit (19 cases + safe-contact test pass), Concierge agent (every locked rule made falsifiable)
- 20-conversation audit · Human · Manual review — Exactly twenty real conversations run under transcript review for pricing leakage, routing errors, missed handovers and voice drift before the hold is lifted and the agent handles all inbound unsupervised. → Concierge agent (issues found — rework)
Platforms · GoHighLevel · Conversation AI · SMS · Email
How I work
Map. Wire. Hand over.
I map the system before I touch anything live, build it to draft, verify it against the real account, and hand it over documented so you own it.
01
Map
A read-only pass over the account before anything is written. Spec versus reality, in writing, approved before a build starts.
02
Build to draft
Nothing publishes itself. Workflows, agents, pages and services are built in draft and read back before a human presses publish.
03
Verify live
Every write read back from the real account. Silent faults get found here, not on launch day.
04
Hand over
Documentation and a walkthrough, so the team that inherits the system can run it without me.
Book a call. I’ll tell you if I’ve already built something like it.
All client work is under NDA — no names, no logos, no screenshots. Systems are shown by category with real metrics and redrawn architecture. I reply within one Manila business day.