Route calls with conditional rules
Branch a call on the caller's number, area code, the number dialed, or the shop it was transferred from, with a default action when nothing matches.
A time period gives every call in that window the same destination. Routing rules add a second decision inside one period: the call is checked against an ordered list of conditions, and the first one that matches decides where it goes. Anything that matches nothing runs the default action, so a rule set always has an answer.
Reach for rules when one number or one team needs to treat some callers differently — sending a known account straight to their rep, keeping local area codes on the main line while everything else goes to a menu, or returning overflow to the shop it came from.
Where rules can be attached
Rules replace a destination, so they live in a routing row rather than on a page of their own:
- On a phone number’s Incoming Call Routing, choose Routing Rules for a time period.
- On an extension’s or call group’s If Unanswered, choose Routing Rules for a time period.
Every other routing surface takes a plain destination. A rule’s own action cannot be another rule set, so rules never nest.
Prerequisites
- At least one time period on the Schedule page.
- The destinations you want to route to already created.
- A role that can manage the entity you are attaching rules to. Without it the Configure Rules button is disabled and explains that you do not have permission to manage routing rules.
Build a rule set
- Open the routing row you want to branch and choose Routing Rules as the action.
- Select Configure Rules (or Edit Rules if a set already exists).
- Select + Add Rule. Each row reads
IF <criteria> IS <value> THEN <action>. - Choose the criteria, enter the value, and choose the action and its destination.
- Use the up and down arrows to order the rows. Rules are evaluated top to bottom and the first match wins, so put the most specific rule first.
- Set Default (no rules match) to the destination that should catch everything else.
- Select Save.
A rule set holds up to 50 rules; the + Add Rule button reports when the limit is reached.
Criteria you can match on
| Criteria | Matches | Value format |
|---|---|---|
| Called Number | The number the caller dialed | Full E.164, such as +17175551212 |
| Caller Number | One specific caller | Full E.164, such as +17175551212 |
| Caller Prefix | The start of the caller’s number, such as an area code | 1 to 10 digits, such as 717 |
| Originating System | A call transferred in from a specific related phone system | Chosen from a list of related systems |
Two of these are context-sensitive:
- Called Number is not offered on a phone number’s incoming routing, because the called number is always that number.
- Originating System is offered only on If Unanswered rows, and only when the phone system has at least one related system. A call carries an originating system only if it was transferred in from one, so a call dialed straight to you never matches this criteria and falls through to the next rule.
Caller Prefix compares digits after the +1 country code, so it matches United States and
Canada callers by area code or area code plus exchange. A caller from any other country code never
matches a prefix rule.
Actions a rule can take
| Action | Where the call goes |
|---|---|
| Send to Voicemail | The mailbox of the extension or call group the rules are attached to |
| Send to Company Voicemail | The phone system’s shared mailbox |
| Send to Call Group Voicemail | A chosen call group’s mailbox |
| Forward to Extension | One extension |
| Forward to Call Group | Every extension in a call group |
| Send to Call Menu | A call menu greeting and digit prompt |
| Send to Call Assistant | An AI voice assistant |
| Forward to External Number | An outside United States or Canada number you enter |
| Hang Up | Ends the call |
| Forward to Remote Phone System | A destination in a related phone system |
Send to Voicemail is not offered on a phone number’s incoming routing — there is no owning extension whose mailbox it would mean. Forward to Remote Phone System appears only when the phone system has a related system to target.
Forward to External Number inside a rule accepts United States and Canada numbers only — a +1
number with ten digits. This is narrower than the plain Forward External routing action, which
accepts any E.164 number.
The extension or call group the rule set is attached to is filtered out of the target lists, so a rule cannot send an unanswered call straight back to the entity that just failed to answer.
Example: keep local callers on the main line
On the main number’s Open Hours row:
1. IF Caller Prefix IS 717 THEN Forward to Call Group -> Front Desk
2. IF Caller Number IS +1717... THEN Forward to Extension -> Service Manager
Default (no rules match) -> Send to Call Menu -> Main Menu
Rule 1 runs before rule 2, so the known caller in the 717 area code reaches the Front Desk group and never gets to the more specific rule. Moving rule 2 above rule 1 is what makes the exception work.
Expected result
A saved rule set replaces the destination for that time period. Calls that match a rule take that rule’s action, calls that match nothing take the default action, and reordering the rows changes which rule wins for a caller that satisfies more than one.
Troubleshooting
- Save stays disabled: A row is incomplete. Each row reports its own error under the rule —
Required,Digits only (1–10),E.164 phone number required, orSelect a target. - A rule never runs: Check the order. A broader rule above a narrower one absorbs the call. Confirm the value format too: caller and called numbers are full E.164, prefixes are digits only.
- A prefix rule misses a caller you expect: The caller is outside the United States and Canada,
or you entered the prefix with a
+1in front of it. Enter the area code alone. - An Originating System rule never matches: The calls you are testing were dialed directly rather than transferred in from the related system, or the rule set is attached to an incoming route instead of an If Unanswered route.
- A rule shows “Origin system is no longer in this group — re-select”: The system that rule pointed at is no longer related to yours. Choose a current one or delete the rule.
- The editor says the rule set contains unsupported values: The set holds a value this dashboard cannot display, and saving is blocked so your edit cannot overwrite it. Ask an administrator to review the rule set.
- A warning says the rule set is bound to other contexts: The same rule set is in use elsewhere, where Called-Number rules are meaningful. Saving here rewrites it for every place it is used, so confirm that is what you want.