AI Evy
02/10/2026, 3:09 AMAI Evy
02/10/2026, 3:09 AM{{is_open}} set to "true" or "false", or {{business_status}} set to "open" or "closed") . [(2) ]()
3. Reference the variable in your prompt to control agent behavior:
If {{business_status}} is "closed", inform the caller that the business is currently closed and offer to take a message or ask them to call back during business hours.
If {{business_status}} is "open", proceed with normal call handling.AI Evy
02/10/2026, 3:09 AM{{current_time}} and compare it to business hours introduces hallucination risk, even if small. [(1) ]()
- Server-side logic gives you deterministic control over time zones, holidays, and edge cases.
- Dynamic variables are injected at call start via the [Create Phone Call API](/api-references/create-phone-call) for outbound or the [Inbound Call Webhook](/features/inbound-call-webhook) for inbound calls. [(2) ]()
## Note on Single Prompt Limitations
Time-based conditional logic (like routing differently based on hours) is more naturally handled in Conversation Flow, which supports equation-based transitions. [(3) ]() However, if you pre-calculate the status externally and pass it as a variable, single prompt can work effectively.AI Evy
02/10/2026, 3:10 AMAI Evy
02/10/2026, 3:10 AMJoey
02/10/2026, 3:11 AMAI Evy
02/10/2026, 3:11 AMAI Evy
02/10/2026, 3:11 AMAI Evy
02/10/2026, 3:11 AM{{current_time_[timezone]}} variable with AI instructions can work, but it introduces some reliability concerns because you're asking the LLM to interpret the time and compare it against business hours. [(1) ]()
## What the Documentation Shows
Retell provides system variables like {{current_time}} (defaults to America/Los_Angeles) and {{current_time_[timezone]}} (e.g., {{current_time_Australia/Sydney}}) .
A community member shared this prompt approach:
# Context
current_time : {{current_time}}
business hours :
- Monday – Friday: 9:00 AM – 5:00 PM
- Saturday – Sunday: Closed
If the time is not in business hours, inform the customer that we are closed and end the call using this function "end_call"
[(2) ]()
## Why It May Not Be Fully Consistent
Community reports indicate users have experienced issues with this approach—one user mentioned it worked intermittently and then stopped, despite no prompt changes. Another user reported the conversational flow "has trouble understanding future dates and times."
The inconsistency stems from relying on the LLM to correctly parse and compare time values against your business hours logic. LLMs can occasionally misinterpret or hallucinate these comparisons.
## More Reliable Alternative
Pre-calculate the open/closed status on your server (via inbound webhook or before making outbound calls) and pass it as a simple dynamic variable like {{is_open}} set to "true" or "false". [(1) ]() This removes the LLM's interpretation from the equation entirely.AI Evy
02/10/2026, 3:11 AMJoey
02/10/2026, 3:12 AMAI Evy
02/10/2026, 3:12 AMAI Evy
02/10/2026, 3:13 AMdynamic_variables nested under `call_inbound`: , [(2) ]()
json
{
"call_inbound": {
"dynamic_variables": {
"is_open": "false",
"business_status": "closed"
}
}
}
[(1) ]() , [(2) ]()
## Important Setup Note
Make sure the inbound webhook URL is configured at the phone number level (in the Phone Numbers tab) , not just at the agent level. , [(3) ]() The webhook must be set on the specific phone number to trigger before the call connects. [(2) ]()
While the call is waiting for the webhook response, it stays in the ringing state. [(1) ]() The webhook has a 10-second timeout.AI Evy
02/10/2026, 3:13 AMAI Evy
02/10/2026, 3:13 AM