All client work
Case study 05 · AI chat agent · OpenAI Assistants · Make · GoHighLevel · WhatsApp · Instagram

An AI front desk in the DMs

A Pilates and functional-training studio with three locations in Barcelona was answering every WhatsApp and Instagram message by hand. Brought in through a Spanish marketing agency, we built an AI chat agent that reads each message, answers in the same channel, works out which studio the lead belongs to, and writes what it learns back into GoHighLevel.

3,279 conversations handled2,644 AI replies deliveredWhatsApp and InstagramRouted to 3 locationsSpanish and English
3,279
conversations handled
2,644
AI replies delivered
465
message bursts batched into one reply
3
studio locations routed automatically
Client
Pilates studio, Barcelona, three locations (name withheld), via a Spanish marketing agency
Our role
AI engineer: chat agent, Make scenario and GoHighLevel workflows
Timeline
Built December 2024, running through 2025
Stack
OpenAI Assistants API · Make · GoHighLevel workflows · WhatsApp · Instagram
How it works

One message, six steps, no human

GoHighLevel stays the inbox and the record. The thinking happens in a Make scenario that calls an OpenAI Assistant trained on the studio's classes, prices, schedules and locations.

01
Message in
A WhatsApp or Instagram DM lands in the GoHighLevel inbox.
02
Channel saved
A workflow stores which channel the lead used.
03
Assistant replies
Make sends the thread to the OpenAI Assistant with the lead's context.
04
Location found
A second pass classifies the studio and extracts details.
05
Record updated
Fields, tags and location are written to the contact.
06
Reply sent
The answer goes back in the same channel it came from.
Make · Routing

Routed by channel, then by studio

The scenario splits first by channel, because WhatsApp and Instagram each need their own send step, then by studio: each location has its own Assistant thread, follow-up copy and fields. About 100 modules in one scenario.

Make scenario with a channel router and a branch per studio
The Make scenario: channel router, then a branch per studio
Version 1

Python script

The first build ran the conversation through a script. It worked, but the team could not see or change it.

Version 2

Make with webhooks

Moved into Make so the logic was visual. Webhooks added a moving part that could fail silently.

Version 3

Make without webhooks

The version that ran: GoHighLevel workflows call the scenario directly, one less thing to break.

GoHighLevel · Guardrails

The workflows that keep it sane

People send three short messages instead of one. Some never stop. Some go quiet. Each of those got its own workflow, so the agent answers once, at the right time, and knows when to stop.

GoHighLevel chatbot workflows with enrolment counts
The chatbot workflows in GoHighLevel, with total enrolments
Batching

Messages joined first

Bursts of short messages are concatenated before the AI sees them: 465 batches so far.

Limits

A cap per conversation

A message limit stops loops and hands long threads to a person.

Follow-up

Inactivity detection

Leads who go quiet get a timed follow-up instead of being forgotten.

Outcome

Every DM answered, in the right studio

Built in December 2024 and running through 2025. The counts are the enrolment numbers from the live GoHighLevel workflows. Staff can read every AI reply in the GoHighLevel inbox and take over at any point.

3,279
conversations through the reply-channel step
2,644
AI replies delivered back to leads
465
message bursts batched into one reply
3
studio locations routed automatically
Stack

OpenAI · Make · GoHighLevel

Assistants API, chat completions, Make routers, GoHighLevel workflows and custom fields.

Control

Staff can always step in

The whole thread lives in GoHighLevel. Nothing is hidden in a bot tool.

Pair

Same studio as the voice agent

The phone line got its own voice agent, case study 06, booking the same way.

What we would tell you

Three things we learned

01
Batch before you answer.
Real people send messages in bursts. Answering each one separately reads like a broken bot.
02
Fewer moving parts win.
Three versions in, the simplest wiring was the one that kept running.
03
Keep the CRM as the record.
The agent's value is what it writes back, not just what it says.

The full case study as a PDF

The full write-up with the screenshots above, formatted for printing or forwarding. Client details are hidden in the PDF too.

Download the PDF

Answering DMs by hand, or running a bot that lives outside your CRM?

Tell us what you are trying to automate or move. We will say what fits, what does not, and what it would cost.

Book a free 15-minute call
More case studies
Case study 01
Outbound WhatsApp AI agent for a real-estate agency
15 n8n workflows in production · 11 WhatsApp templates approved by Meta · 9 Postgres tables on Supabase · 0.8% failure rate across all workflows
Case study 02
Keap to GoHighLevel migration for Fresh Start Health Retreat
8,000+ contacts deduplicated and cleaned · 45,750 logged API calls, 0 rate limits · 4 wks from hire to Keap switched off · 5.0 Upwork review plus a video testimonial
Case study 03
Landing page rebuild in the GoHighLevel funnel builder
2 program pages rebuilt, two brands · 4 funnel steps each, call to booking · 3 custom code blocks, all documented · 7 wks from scope to owner sign-off
Case study 04
GoHighLevel agency build for an energy-sector marketing agency
1,592 newsletter sign-ups processed · 8 sub-accounts in one agency · 7 lead automations for a contractor · 5.0 review from the agency that brought us in
Case study 06
Bilingual AI voice agent on Retell that books into GoHighLevel
2 languages, matched to the caller · 0.8-1.3 s model latency · $0.14 per minute to run · 5 fields extracted after every call
Case study 07
Multi-agent AI voice system on Retell, n8n, Supabase and GoHighLevel
46+ client sub-accounts on one build · 1.49M+ records behind the system · 5 min from a dropped call to an AI callback · 10 call outcome categories
Case study 08
AI front desk GoHighLevel snapshot a US platform resells to home-service businesses
26 workflows live on the first client · ~1 hr to deploy the next client · 25 s from missed call to text-back · 1st attempt: A2P approved
Book a free callhello@olventra.comWhatsApp usHire us on Upwork