Business hours and the closed line
Hours are set per line, in the line's own timezone, and they narrow what the line's permissions already allow. A call outside them is answered — not ignored — with a short spoken message in the business's own name, and the row is closed with outcome after_hours. That message deliberately carries no hours in it, so nothing spoken can contradict how the line is configured.
Hours belong to the line#
The open window is a fact on the channel_routes row, alongside the permissions it narrows, and it is evaluated in that line's timezone. Not the caller's, not the browser's, and not the timezone of whoever last edited the setting. A workspace whose sales line runs Indian office hours and whose support line runs longer ones holds two different windows on two rows, with no mode to switch between.
Hours never widen anything. A line with inbound permission off is closed at every hour of the day, and its window is irrelevant. This ordering is worth remembering when a line answers as closed at a time it should be open: check the permission before rewriting the schedule.
The same window is used in the other direction. When a caller agrees to be rung "tomorrow morning", voice_engine.due_at turns those words into a real time in the line's timezone; the follow-up drain then honours the line's readiness when the moment arrives.
What a caller hears at 11pm#
They hear a real answer. Connect picks up, plays a short sentence in the business's own name and hangs up. It is not silence, it is not the carrier's default message, and it is not the conversational voice improvising an apology.
- Where the text comes from
closed_line_text, which is deterministic — the same sentence for the same line every time, rather than a generated one.- How it is spoken
- It is warmed alongside the greetings under
kind: closed, so it plays immediately instead of being synthesised while the caller waits. - What is recorded
- A
Callrow that isended, with outcomeafter_hours. The call is in the list, not missing from it. - What is not recorded
- No lead, no summary. A closed-line call was never a conversation and is not treated as one.
The refusal that used to be a dropped call#
A closed or switched-off line was once a bare 409 from the engine, which the worker answered by deleting the room. From the caller's side the call connected and immediately dropped, and no Call row existed anywhere — so the business had no way of knowing anybody had rung.
voice_engine.incoming now returns a refusal brief carrying the closed-line text. The worker synthesises it, plays it on a track of its own, posts refused_line, and hangs up. The row is written as ended with outcome line_off or after_hours. The practical difference for a business is that out-of-hours demand is visible: those calls are countable even though nobody spoke to anyone.
Deciding what your hours should be#
Look at the
after_hoursrows on the Phone screen for the last few weeks.Result You are looking at demand you refused, with times attached.
Decide whether those callers would be better served by a longer window than by a call-back.
Result Widening hours costs budget on every call; a call-back costs one follow-up and happens when somebody is available.
If you widen, widen the line, not the workspace.
Result Other lines keep their windows, and a change to one number cannot surprise another.
There is no separate holiday calendar. A day the business is closed is handled by switching the line off, which produces the same spoken refusal with outcome line_off rather than after_hours — a distinction that keeps "we were shut today" separate from "they rang at midnight" in the record.
Questions#
Can Connect tell a caller when the office reopens?
Not in the closed-line message, which is deterministic and carries no hours. If a caller needs that information, the reliable route is a follow-up: the call is recorded, and somebody — or Connect on an open line — gets back to them with a time that is true when it is said.
Do hours apply to outbound calls as well?
Yes. The line's window is part of the last gate an outbound call passes, which is what stops a follow-up coming due at 02:00 from ringing somebody. A follow-up that cannot be placed because the line is closed is retried rather than failed.
The line answers as closed during working hours. What is wrong?
Almost always the timezone: hours are evaluated in the line's timezone, and a line configured by somebody in a different one is the common cause. Check the permission next — inbound permission off reads as closed at every hour and no schedule change will fix it.