Hey everyone, working on a build for a contracting company and hit something I’m trying to figure out the best approach for.
The setup: the voice agent (inbound receptionist) needs to be able to live transfer calls to the business owner when she’s available. But she doesn’t want to get transferred every single call, she wants to be able to turn that on and off depending on her schedule.
So basically I need some kind of external toggle that the agent checks before attempting the transfer. If the toggle is on, it tries the transfer. If it’s off, the agent just collects the caller’s info like normal and lets them know someone will call back.
Has anyone built something like this? I’m thinking maybe a simple webhook that reads a value from a database or even a Google Sheet, but I’m not sure what the cleanest approach is. Ideally the business owner (who is not technical at all) would just have a super simple way to flip it, like a button on her phone or a basic web page.
Would love to hear how others have handled this kind of thing. Thanks in advance!
Hey, common ask, and there is a clean pattern for it. The Retell side is just a custom function call early in the conversation, and the toggle lives in your own backend (n8n, Sheet, Airtable, whatever you like).
How it works:
n8n workflow with three endpoints: one reads the current toggle state, two more set it on or off.
Store the state somewhere simple. A single row in Airtable or one cell in a Google Sheet works fine.
In Retell, add a custom function that calls the “read state” webhook at the start of the call. It returns something like { available: true }.
In a Conversation Flow agent, follow that function with a Logic Split node. If available is true, route to the transfer node. If false, route to the “collect info, we will call you back” branch.
For the owner to flip it from her phone, the simplest non-technical options:
A bookmarked one-page web app with a big On/Off button, saved to her home screen. Feels like a native app.
An iOS or Android Shortcut on her home screen that hits the webhook. One tap.
A WhatsApp or Telegram bot she texts “on” or “off” to.
I have built variations of this for trades clients. The Shortcut option is usually the simplest because there is nothing to log into.
Totally doable, and you don’t need to reinvent much. The cleanest pattern on Retell is a Conversation Flow agent (not a single-prompt agent) with a gating step before the transfer:
Conversation Flow is the right tool here because the gate is authoritative — a single-prompt agent with the same custom function works, but the LLM can occasionally skip or reorder the check; the Function Node + edge condition removes that ambiguity.
For the non-technical owner’s UX, common simple setups:
Google Sheet + Apps Script publishing a tiny JSON endpoint ?flag=on/off) — you edits one cell from her phone. Free.
Airtable or Supabase row with a one-toggle web page (a 20-line static page) or a shortcut on her iPhone home screen.
Two iOS Shortcuts (“Take calls” / “Don’t take calls”) that POST to your endpoint.
Any of these is fine — Retell doesn’t care how she flips it as long as your endpoint returns the boolean fast. Also wire the Call Transfer Node’s built-in “transfer failed” edge into the info-collection branch so busy / no-answer falls back cleanly. Happy to look at the flow once you have a draft.