A business with a season
A season is handled by widening autonomy and raising the allowance, not by changing how anything works. Compliance, isolation and the send boundary stay exactly as they are; what moves is how much Connect may do without asking and how much the plan permits. Out of season you narrow the same two dials, or turn the runtime off entirely, and nothing is lost.
The two dials, and the third that is not one#
| Dial | In season | Out of season |
|---|---|---|
| Autonomy mode | autonomous on the channels carrying the volume | ask_before_send or draft_only, or the channel off entirely |
| Plan allowance | Sized to the peak week, watched in the first one | Back down; work is held rather than dropped either way |
| Line hours | Extended on channel_routes to the hours you actually trade | Back to normal; a closed line answers with the closed-line message |
| The runtime control | On | Off, if the business genuinely closes. Records and settings survive untouched |
| Compliance and isolation | Unchanged | Unchanged. These are not dials |
The last row is the point of the page. Suppression, do-not-contact, the single send boundary and the three layers of workspace isolation are not things you relax under pressure. A season is a volume problem, and every mechanism that would be tempting to loosen is one whose failure costs more than the season is worth.
What actually limits you at peak#
- Simultaneous calls
ringrefusesnot_readywhen every live worker is over a one-minute load of 0.85 per core — the same number the worker gives its own admission control, so the gate and the fleet agree rather than fighting. A refused call is recorded and appears in Needs You; it is not a silent drop.- The daily allowance
- When it is spent, work is held rather than dropped and the mail read cursor deliberately does not advance. That is the difference between a backlog and permanent loss.
- The voice budget
budget_refusalis asked before an outbound call and before answering an inbound one. A refused inbound gets the spoken closed-line message rather than silence — worth knowing before your busiest Saturday.- Model availability
- A 429 or a revoked key opens a breaker: scheduled work is skipped and a caller already on the line is still attempted. The priority ordering there is deliberate.
- Call length
- Sessions are capped, and
sweep_staleholds every provider to the configured cap from the engine tick as well as the worker heartbeat — because a browser call has no worker, and one once sat active for 24.78 hours.
Before the season, in order#
Load the season's Knowledge — this year's dates, prices you publish, what changes, what does not.
Result Answers are grounded in the current season rather than last one's document, and anything unsupported is refused rather than improvised.
Rehearse on
draft_onlya fortnight early.Result Connect writes what it would send against real traffic and asks nobody. You read a week of genuine replies before widening anything.
Extend line hours and check the line answers on each number.
Result Hours live on
channel_routesrather than in an instruction, so this is a configuration check with a definite answer.Widen autonomy channel by channel, narrowest scope last.
Result Exceptions you have set against particular contacts keep winning, because the narrowest applicable scope always does.
Watch Needs You and the usage screen daily for the first week.
Result Refusals, held work and line health are all visible in one queue, and the real shape of the peak is measured rather than guessed.
After it ends#
The tempting mistake is to leave everything wide because it worked. A quieter month with autonomous still set on every channel is when an unusual message gets an automatic answer that nobody reads until a customer complains. Narrow the scopes back, or set the seasonal channel to off — which disables it without deleting anything — and keep the records, memory and follow-ups exactly where they are for next year.
Questions#
What happens if more calls arrive than the fleet can take?
Calls are refused as not_ready once every live worker is over a load of 0.85 per core, and each refusal is recorded and surfaced in Needs You. A worker reporting no load reads as free, deliberately — refusing calls because an older worker went quiet would be worse than the saturation the gate guards against.
Do we lose email if we go over the plan in a peak week?
No. The allowance holds work rather than dropping it, and the read cursor does not advance past unprocessed messages — advancing on a refusal is how a mail agent loses messages permanently. You see a queue and a refusal in Needs You, and the backlog is processed when there is room.
Can we turn everything off out of season without losing our setup?
Yes. The runtime control stops Connect acting and individual channels can be set to off. Mailboxes, numbers, Knowledge, memory, relationships and open follow-ups all stay as they are, so restarting is a matter of widening the same dials rather than rebuilding anything.