1What it does
Retell handles the conversation. Thin middleware connects its custom functions to GHL API v2 for contact lookup, live availability, booking and post-call sync. GHL stays the system of record.
2Who it is for
- Industry
- Any local business
- Platform
- HighLevel
- Category
- Voice AI
- Tools used
- Retell AIHighLevel API v2Middleware (serverless or n8n)HighLevel Workflows
3How it works
Every step, in order, is in Workflow at a glance, pinned on the right as you scroll.
Setup (one time)
- 01 Setup
Build and test the Retell prompt, voice and LLM before adding integrations.
- 02 Setup
Create a GHL sub-account Private Integration token scoped to contacts, calendars and conversations as needed. Send the Version header on every API v2 request.
- 03 Setup
Build one middleware endpoint per custom function and one for the call-ended webhook. Use a small serverless service or n8n workflows.
- 04 Setup
Register function parameter schemas in Retell. Route a number, usually by forwarding from GHL, and test silent callers, wrong numbers, hesitation, slot races and timezone mismatches.
Flow A: At call start
- 01 Trigger
Inbound call
- 02 Action
At call start, pass caller ID to contact lookup. Greet existing contacts by name with history or create a contact for a new number.
- 03 Action
Fetch free slots from the right GHL calendar. Return two or three options phrased for speech.
- 04 Action
Create the chosen appointment with the contact ID. Confirm verbally and let native GHL reminder workflows take over.
Flow B: On call end
- 01 Trigger
Retell call-ended webhook
- 02 Action
On call end, write the transcript as a contact note and the outcome as a tag that triggers the right follow-up workflow.
- Trigger
- Inbound call, followed by a Retell call-ended webhook.
- AI step
- No agent prompt is shown. The LLM fills function parameters such as name, phone and chosen slot from the conversation.
4How it went
The author says the guide is based on builds he has shipped. No results or metrics reported.
Only what the source reports. The source did not report numbers.
5Worth knowing
- Start with native GHL Voice AI for standard receptionist and booking work. Move to Retell or Vapi for model or voice control, external data mid-call or complex branching.
- Keep middleware fast. Callers tolerate about a second of pause. Cache calendar configuration and business information, and avoid unnecessary API chains.
- Calendar, business and caller can use different timezones. Normalize them and confirm the time in the caller's terms. Test slots taken mid-call.
- Budget for Retell minutes, LLM, telephony and hosting against native Voice AI pricing. A transfer-to-human function is required for production.
6Recipe
Adapted from source Reworded or reconstructed from what the source shows.
Adapted endpoint spec: lookup_contact(phone) searches GHL and returns the existing contact and history or creates a contact. get_slots(calendar) calls the calendar free-slots endpoint and returns two or three spoken options. book_slot(contact_id, slot) creates the appointment for verbal confirmation. call_ended webhook receives transcript, summary and outcome, writes the transcript as a contact note, and applies ai-call-booked or ai-call-needs-followup to trigger GHL workflows. transfer_to_human() transfers the caller to a person.