Business Hours
The Business Hours node branches the flow based on whether the conversation’s department is currently open. Use it to gate Transfer paths to live shifts and offer a self-service or callback alternative outside hours.
Schedule editing happens in Settings. This node only branches on the evaluation result. To create or edit schedules and holidays, see Settings → Business Hours.
Configuring the node
- Drop the Business Hours node from the Logic category onto the canvas.
- Open the configuration drawer. There’s no schedule picker on the node — the runtime looks up the schedule automatically (see below).
Output ports
- yes — the current moment falls inside an open block of the resolved schedule.
- no — outside hours, on a holiday, or otherwise closed.
How the schedule is resolved
The runtime evaluates “now” against the conversation’s assigned department’s business-hours group, falling back to the tenant’s default group when no department mapping exists. When neither a department group nor a tenant default is configured, the node treats the time as open (returns yes) — per the BRD’s “fail safe to open” rule.
The timezone used is the schedule’s own timezone (set in Settings → Business Hours), not the customer’s.
When to use it
- Branch between Transfer (during hours) and a callback message (outside hours).
- Adjust messaging tone or expectations based on whether a human is on the floor right now.
- Route holiday traffic to a dedicated holiday flow.
When not to use it
- You want to time-gate a specific message, not the whole branch — keep the node out and use Condition with a time-based variable instead.
- You need to evaluate against the customer’s local time, not the workspace timezone — that isn’t supported on this node today.
Notes
- Each evaluation writes a
business_hours_evaluatedevent with the resolvedwithinflag, for analytics and audit. - The drawer shows a free-text Department (optional) field that is not honoured by the runtime today — the schedule is always resolved from the conversation’s assigned team, not from a value typed on the node. Tracking fix in POSTPONED_FIXES.md PF-10 .
- If you wire only the
yesport (leavingnodisconnected) the runtime still falls back toyeson a closed result — that’s the BRD’s fail-safe behavior. Wire both ports explicitly if you want any outside-hours branch at all.