Skip to Content
CraftBot Docs v1 — internal preview

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

  1. Drop the Business Hours node from the Logic category onto the canvas.
  2. 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_evaluated event with the resolved within flag, 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 yes port (leaving no disconnected) the runtime still falls back to yes on a closed result — that’s the BRD’s fail-safe behavior. Wire both ports explicitly if you want any outside-hours branch at all.
Last updated on