Rule resolution reference
When you have multiple opening-hours rules, the obvious question is: which one wins for a given conversation? This reference covers the resolution logic.
The matching matrix
A rule “matches” a conversation when its scoping covers the conversation’s team and channel. Three levels of specificity, scored:
- Team + Channel — 3 — The most specific match — beats everything else
- Team only (any channel) — 2 — Used when no team+channel match exists
- Channel only (any team) — 1 — Fallback when only the channel matches
This is the same scoring model as SLA assignments — for the same reason: it lets you set broad defaults and override narrowly without rule duplication.
Worked example
Three rules:
Default Email— (any) — EmailPremium Team— Premium — (any)Premium Email— Premium — Email
A conversation routes to the Premium team on the Email channel. Resolution:
- Premium Email matches both team and channel → score 3 → wins.
- The other two rules don’t run; they’d have lost on score anyway.
Same conversation but on Web Chat instead:
- Premium Email doesn’t match (channel is Email, not Web Chat) → skipped.
- Premium Team matches the team → score 2 → wins.
- Default Email doesn’t match (channel doesn’t include Web Chat) → skipped.
A General-team conversation on Email:
- Premium Email doesn’t match (team is General, not Premium) → skipped.
- Premium Team doesn’t match → skipped.
- Default Email matches the channel → score 1 → wins.
When no rule matches
If a conversation’s team and channel combination doesn’t match any active rule, downstream features that read opening hours fall back to default behavior:
- SLA timers — count continuously (no pausing — same as if
Ignore office hourswere on) - Automation rules with schedule restrictions — schedule restrictions evaluated as “always inside hours” (the rule fires regardless)
- IVR Is Open node — defaults to closed (caller routes to the after-hours branch)
- Web chat widget — shows as available
The defaults vary by feature. The safest move is to ensure every team-and-channel combination you actually use is covered by at least one rule.
When two rules tie on score
It’s possible — though rare — for two rules to tie on specificity. Two channel-only rules both targeting Email, or two team-only rules both targeting the same team. When this happens, the resolver picks one but the choice isn’t well-defined.
Fix it by either:
- Making the rules disjoint (one covers Email + Premium team only, the other covers Email + General team only), or
- Merging them into a single rule, or
- Disabling one (the active toggle) and seeing if the remaining behavior is correct
Active vs inactive
A rule with the Active toggle off is treated as if it doesn’t exist for resolution purposes. Useful for:
- Temporarily testing a different schedule (toggle the new one on, the old one off, compare)
- Holiday schedules that only apply for a few weeks of the year (toggle on at the start, off afterward)
- Rules under construction that aren’t ready to apply
Inactive rules don’t count in tie-breaking either — they’re invisible to the resolver.
Audit trail
When a feature reads opening hours for a conversation, it records which rule applied. SLA badges and IVR flows expose this in their respective dashboards. If a rule fires (or doesn’t fire) when you didn’t expect it, this audit trail tells you why.
See also
- What are Opening Hours?
- Set up your team’s opening hours
- Set up channel-specific SLAs — same matching pattern