After-Hours Calls: Why Your Voice Agent Should Create a Ticket, Not Transfer


When nobody is staffed to answer, a voice agent should collect the caller's details, create a ticket, and promise a callback by a specific time, instead of trying a transfer that will ring out. The transfer should be switched off by a rule your team controls, so the agent never offers it after hours. The only exception is a short, written list of emergencies that go to an on-call person.
The transfer reaches a closed queue, a closed-office recording, or a voicemail box, and the caller loses the time they spent explaining the problem. What happens next depends on the transfer type:
Both outcomes are worse than the agent saying "the team is offline, here is what happens next" in the first minute.
Decide open or closed with a rule, not with the model's judgment, and only give the transfer option to the open path. In Retell AI there are three documented ways to do this.
Inside a conversation flow. Put a logic split node at the start of the flow. It checks its conditions the moment the call enters it, says nothing, and routes the call. Use equation conditions on Retell's built-in time variables:
{{current_hour}} is the current hour as a decimal in the agent's time zone, so 17.5 means 5:30pm. An open condition might be {{current_hour}} >= 9 AND {{current_hour}} < 17.{{current_time}} holds the full date and day name, so {{current_time}} contains "Saturday" catches weekends.Only the open branch should lead to a call transfer node. The closed branch leads to intake and ticket creation.
From your own systems. Your phone number's inbound call webhook fires before the call connects. Your server can check your holiday calendar and staffing schedule, then return a dynamic variable such as office_open. It can also return a different agent ID, so after-hours calls go to an agent that has no transfer tool at all. A pre-call function on the agent's Workflow page can make the same lookup against your own endpoint.
In a prompt-based agent. You can give the prompt {{current_time}} and a rule, but a separate after-hours agent without the Transfer Call tool is safer. An agent cannot use a tool it does not have.
Three details catch teams out:
| Trap | What to do |
|---|---|
| Time zone | Retell's time variables use the agent's time zone, which defaults to America/Los_Angeles if it is not set. Set it, or use {{current_hour_America/New_York}} style variables per site. |
| Holidays | The clock does not know your holidays. Pass an office_open value from your calendar through the inbound webhook. |
| Closing time | A transfer started at 4:58pm can ring an empty desk. Close the transfer window a little before the phones close. |
The inbound webhook can also reject calls outright, and Retell's docs mention blocking traffic outside business hours. For customer lines, a ticket is better than a dead line.
Enough for the morning team to act without listening to the recording. If a person has to replay the call to find the callback number, the ticket has failed.
| Field | Why it matters |
|---|---|
| Caller name, spelled | Avoids a wrong-name callback |
| Callback number, read back digit by digit | The caller ID is not always the number they want to be reached on |
| Account, order, or reference number | Lets the team look things up before calling |
| Reason, from a fixed list | Lets you sort and route the queue |
| Details in one or two sentences | The actual problem, in plain words |
| Urgency, from a fixed list | Sorts the queue in the morning |
| Best time to call back | Saves a wasted first attempt |
| What the agent promised | So the team keeps the promise |
| Call ID | Links the ticket to the transcript and recording |
In Retell, the agent can save answers during the call with the Extract Dynamic Variable tool, and {{call_id}} is available on every call. You then have two ways to create the ticket:
ticket_needed field is true. The call_analyzed webhook can do the same from your own server.Post Call Extraction supports text, number, yes or no, and fixed-choice fields, which map well to reason and urgency. For the full trigger and write-back pattern, see how CRM workflows trigger AI calls and write back.
A callback window your team will actually meet, such as "by 10am tomorrow", not "someone will be in touch shortly." Then read the details back so the caller can correct them.
Keep the promise narrow. Retell's own after-hours receptionist example tells the agent not to promise pricing, appointment times, or technician availability. If you want to send a confirmation by text, Retell's Send SMS tool can do it during the call. Custom message text needs a number with SMS enabled through the A2P application, and the agent should collect consent first.
Give the queue one owner and a deadline, and clear the urgent tickets before the phones open. If your line takes a burst of calls at opening, the overnight queue should not have to compete with it.
A routine that works:
If you call back with an AI agent, pass the ticket fields to the outbound call as dynamic variables so the caller is not asked the same questions twice. Outbound calls carry their own consent and calling-time rules. See our TCPA guide for outbound AI voice calls.
When waiting until morning would cause harm or a cost your business has agreed not to accept, and only for situations you wrote down in advance. If a caller describes a life-threatening emergency, the agent should tell them to hang up and call 911 or the local emergency number. Your on-call person is not an emergency service.
Typical after-hours page triggers are a safety risk at a property (gas smell, flooding, no heat in freezing weather), a clinical concern your protocol says cannot wait, a stopped line or shipment covered by a service agreement, or an account your policy says always gets a person. Everything else gets a ticket.
Build the emergency branch so it cannot fail silently:
{{on_call_number}}, filled from your on-call schedule through the inbound webhook. The number changes with the rota, not with an agent edit.Retell's alerting feature is not the right tool for this. It watches aggregate metrics such as call volume and success rate. Per-call escalation belongs in the call itself or in a webhook.
Before launch, test the emergency branch with simulated calls that should page and calls that should not. The second set matters as much as the first, because an on-call rota that gets woken for routine calls stops answering. For the wider question of when any call should go to a person, see how an AI agent knows when to hand off to a human agent, and for transfer mechanics, see how call transfers work between AI voice agents and human teams.
A good after-hours setup is a rule, a ticket, and a short emergency list. The rule stops the agent from offering transfers nobody can take. The ticket gives the morning team everything they need. The emergency list makes sure the few calls that cannot wait still reach a person. Retell AI supports each part with time-based dynamic variables, the inbound call webhook, ticket and task tools, and warm transfers that wait for a person. See how it works on the after-hours answering service page.
See how much your business could save by switching to AI-powered voice agents.
Total Human Agent Cost
AI Agent Cost
Estimated Savings
A Demo Phone Number From Retell Clinic Office

Start building smarter conversations today.




