The inbound voice call agent: ChatGPT Realtime, not a chatbot
Hotel inbound as a pipeline: webhook, OpenAI Realtime, then calendar, mail, or CRM. What ChatGPT Voice actually owns versus ElevenLabs, and why n8n is the router.
Use this stack as a page: the async voice pipe. That page is the recording → transcript → action version. Live PSTN still needs a carrier we do not track.
A voice call agent is not a chatbot with a speaker. It is a loop: hear the caller, speak back in under a second, then take an action — book a room, answer a FAQ, or hand the call to a human and write the CRM row.
The template you keep seeing is a hotel inbound demo. The claim on the card is usually ten concurrent calls and unlimited daily volume. Treat that as a telephony-plus-API quota problem. ChatGPT in a browser tab does not answer ten PSTN lines. The useful part is the job split, not the marketing number.
The stack that actually matches the matrix:
- Telephony / webhook — the inbound call hits a number or SIP trunk and becomes an HTTP event. We do not track a phone carrier on this site.
- ChatGPT — OpenAI Realtime (the same family as voice mode) is the talk loop.
- n8n (or Zapier / Make) — the router after the model decides what the caller wanted.
- Calendar, Gmail, HubSpot — book, confirm, escalate. Those are not rows in our tool matrix. Do not pretend they are.
This is not “ChatGPT can be a receptionist now.” ChatGPT talks. The orchestrator branches. The calendar books.
Why a chat window is not a phone system
ChatGPT voice mode is plus-tier on our matrix, from $20/month on the paid row. It is a two-way loop: interrupt, emotion, low latency. That is the right model for a live call.
It is the wrong product surface for a hotel switchboard. A Plus seat is one person talking to a model. Ten concurrent inbound lines need a Realtime session per call, a carrier that can fork audio, and a hard stop when the model is guessing. That is why the demos start with a webhook, not with chatgpt.com.
ElevenLabs is the other voice product people mash into this story. It is the wrong job. ElevenLabs is one-way TTS and cloning — a free row plus paid from $5/month. Use it to narrate a confirmation email or a hold message. Do not use it as the live conversation. We already split that in ElevenLabs, ChatGPT Voice, and Suno.
If you collapse “talk” and “book the room” into one ChatGPT thread with no tools, you get a polite hallucination and an empty calendar.
The four jobs (and what each must not do)
The webhook owns the call start
Something has to turn a ringing phone into a session. In the demos that is a custom webhook: call SID, caller number, maybe a hotel property id. n8n, Zapier, and Make all speak webhooks. The model should not own this. If the webhook is down, the nicest Realtime voice in the world is a dead line.
ChatGPT owns the talk loop
ChatGPT (Realtime / voice) is the thing that listens and speaks. Give it a short hotel policy, a list of tools it is allowed to call, and a rule for when to stop guessing. Tool calls are the point: check availability, capture a date, escalate.
Do not ask it to be the CRM. Do not ask it to send the confirmation email by “remembering” to do it later. Do not paste a 40-page brand book into the system prompt and hope latency stays under a second.
Claude is a better long-context writer (Claude, paid from $20/month). It is the wrong live-call model. Keep Claude for the FAQ corpus and the escalation summary. Keep ChatGPT on the wire.
n8n owns the branches
n8n is source-available automation: Community Edition free to self-host, cloud Starter about $22/month on our matrix. After Realtime returns an intent, n8n is the place for three honest branches:
- Book — Google Calendar (or whatever PMS you actually use).
- Answer and confirm — Gmail with a template, not a novel.
- Escalate — HubSpot (or your CRM) plus a human queue.
Zapier does the same job with a free 100-task tier and Professional from $19.99/month. Make is the visual-scenario cousin; we have a free row and an unverified paid number, so do not quote a Make seat price from this post.
Pick one orchestrator. Running n8n and Zapier on the same call is how you double-book a room.
Calendar / mail / CRM own the side effects
Availability, mail, and CRM are not AI features. They are the reason the call existed. If the model cannot call a tool, it should say so and escalate. A confident “you’re booked for Tuesday” with no calendar write is worse than a hold message.
One inbound call, six steps
- Call hits the number. Webhook fires with caller id.
- n8n (or Zapier) opens a Realtime session and passes hotel policy + allowed tools.
- Caller asks for a room, a late checkout, or “are you pet friendly.”
- Model either calls check availability, answers from the FAQ, or requests a human.
- On book: calendar write, then Gmail confirmation. On escalate: CRM contact plus queue.
- Session ends. Log the transcript somewhere you can audit. Do not train a public model on guest names unless you meant to.
That is the hotel demo. Swap “room” for “table,” “slot,” or “callback” and the graph stays the same.
What this stack is not
It is not unlimited concurrent PSTN for $20. ChatGPT Plus is a seat. Realtime plus a carrier is a usage bill.
It is not Suno. Music models do not answer phones.
It is not a replacement for a night manager when the request is “the sprinkler is going off.” The escalate branch is the product.
The Combinations page we can ship without inventing a phone carrier is the async voice pipe: Whisper, Groq, ElevenLabs, n8n. ChatGPT voice mode stays the live talk loop. Twilio / Vapi stay infra.