When to use it
Create a Voice On-Call flow when you want to notify technicians about tickets that match your use case, when they might not otherwise be looking at Thread or the PSA. This can be used to replace after hours call services or separate pager alert systems. Common uses:- After-hours priority tickets that a shared on-call rotation should answer.
- Critical alerts from monitoring tools where you want a phone tree to cascade.
- SLA-risk tickets where a spoken page is more likely to break through than a chat message.
Prerequisites
Before you add the action to a Flow, confirm:- Voice AI is enabled and you have at least one outbound agent with a provisioned phone. See Voice AI outbound calling setup.
- The outbound agent has at least one verified caller ID number. Unverified numbers cannot place a page.
- Each technician you want in the phone tree has a reachable phone number, either on their Thread member profile or one you’ll enter directly on the action.
The number that calls your techs is your verified Outbound caller ID. They should make sure this number is unblocked by any spam filters they might have on their device, or saved as a contact.
Add the action to a Flow
1
Open the Flow you want to page from
In Inbox, open Admin and go to Flows. Create a new flow and using the parameters that you would like to trigger a Call to your call tree. See tips at the bottom of this page.Example:



2
Add the Voice On-Call action
In the Flow’s action list, add Voice On-Call. The action sits under the Actions button and works for ConnectWise, Autotask, and HaloPSA tickets.

Voice On-Call is available to every workspace with Voice AI. If you don’t see the action, contact your Thread representative.

3
Pick the outbound agent and caller ID

4
Write the spoken message
In Message, write what Voice AI should say when the technician answers. Keep it short and specific. You can drop in merge tokens so each page is tailored to the ticket:Fill in Acknowledgement message with what Voice AI should say back after the technician accepts the page (for example, “Thanks, the ticket is now assigned to you”).
{{Ticket Number}}{{Contact Name}}{{Company}}{{Summary}}{{Board}}{{Priority}}{{Source}}(the ticket’s PSA source, for examplePhone,Email, orPortal)
5
Build the phone tree
Add the people or numbers to ring, in order. For each entry:
- Choose a Thread member to attach the page to that technician, or enter a custom number for a shared line that calls multiple people.
- Enter the phone number to dial. Double check that the number is right if you pick a member, so the exact number that rings is the one you configured.
- Pick the country dial code (for example,
+1) if the number isn’t already in international+E.164format. - Optionally set Max. calls to ring the same number more than once before advancing (defaults to
3). The ∞ option is only offered on the last entry. - Set a Label shown in the ticket’s audit trail (for example,
George M. or Technician 1). - OPTIONAL: For each number, choose who the ticket gets assigned to when the call is accepted.
- Use the Active switch to skip a number without removing it from the tree. This is useful for short-term absences. Turn the switch back on to include the number again.
6
Set wait, retry interval, and end-of-tree behavior
Tune how long the loop keeps going:
- If using one phone number, you can set the call to ∞ to keep calling that number.
- If using multiple numbers, the last number in the call tree can be set to ∞ to keep calling that last number. An unlimited number keeps the full retry interval between calls.
- Wait before calling: how long Thread waits after the ticket matches the Flow before placing the first call. Set it in whole minutes, from 0 to 60. The default is 0, which calls right away. Use a wait to give automations time to resolve the ticket first, for example an RMM alert that clears itself. After the wait, Thread checks the ticket again. If the ticket has reached a stop status, Thread doesn’t call anyone.
- Retry interval: how long Thread waits between calls to the same number, measured from the start of one call to the start of the next. Set it in whole minutes, from 2 minutes to 24 hours. New flows default to 5 minutes.
- Moving to the next number always takes 2 minutes, whatever the retry interval is. Ending a tree set to
Stopafter its last call also takes 2 minutes. - Safety limit: Thread makes at most 50 calls per ticket, so set up your tree to be less than 50 calls total or risk that the later parts of your tree won’t get called. The call tree also stops ringing after 24 hours.
- If no one answers: what to do after the last person in the tree doesn’t answer. This choice only appears when the tree has 2 or more numbers:
Restart: go back to the top and cascade again. Restarting waits the full retry interval. The safety limit still ends the loop.Stop: end the escalation.
7
Optionally change the ticket status
You can have Thread move the ticket to a new status when the page ends. Leave either field blank to keep the ticket’s status unchanged.
- If accepted, change status to: Thread moves the ticket to this status the moment a technician presses the accept key.
- If no one answers, change status to: Thread moves the ticket to this status when calling ends with nobody accepting. This applies when the tree ends unanswered with
Stop, or when the safety limit is reached.
8
Choose which ticket statuses stop calling
In the We stop calling when panel, the The ticket moves to checkbox stops the page as soon as the ticket reaches a status you pick. The checkbox is on by default and set to Any closed status. This covers the PSA’s closed statuses and any status mapped to Done.
- To stop on other statuses, open the select and pick specific statuses. Statuses are grouped by board. You can remove Any closed status to stop only on the statuses you pick.
- To keep calling after the ticket closes, clear the checkbox. For example, clear it when the paged ticket might be merged into another ticket and closed.
Stopping on any closed status also applies to Flows saved before this option existed, and to pages that were already running.
9
Save the Flow
Save the Flow. Thread validates the action at save time and returns a clear message if anything is missing (for example, an unverified caller ID or an empty phone tree).
Common setups:
- Call one on-call number until it’s answered or the safety limit is reached.
- One person is on call OR the number you use is a ring group (in this case we won’t be able to determine who specifically answered the call).
- Call multiple numbers in a cascade, with the last number being called until it gets answered or the safety limit is reached.
- Call multiple numbers in a cascade, and have it start at the beginning if no one answers.
- Call multiple numbers in a cascade, with the last number being a call center number that has to answer.
How the page call works
When a ticket matches the Flow, Thread waits for the Wait before calling time, if you set one. Voice AI then dials the first active entry in the phone tree from the caller ID you selected. Each page call rings for up to 45 seconds. The technician hears your spoken message, then chooses on the keypad:- Press
1to accept the page. - Press
2to hear the message again.
1 and 2. They aren’t configurable on the action. After answering, the technician has 60 seconds to press 1. If they don’t, Thread treats the call as unanswered.
When a technician accepts:
- The escalation stops immediately.
- Thread assigns the ticket to the accepting technician if the phone tree entry was tied to a Thread member.
- Thread moves the ticket to the status you picked on acceptance, if you set one.
- Voice AI speaks your acknowledgement message, if you set one.
Restart, Thread waits the full retry interval before calling the top of the tree again.
The loop always ends. Thread stops calling once the safety limit of 50 calls or 24 hours is reached, even when If no one answers is set to Restart.
What stops an active page
The We stop calling when panel on the action lists what ends an escalation. Any of these ends it without further calls:- The ticket moves to a stop status you chose under The ticket moves to. By default, this is any closed status.
- A technician presses the acceptance key (
1) to accept the page. - A technician runs the End On-Call Escalation action in Inbox. Open the thread in Inbox, then go to Actions → Voice app. This ends the escalation for that thread only, not the Flow.
- An Agent Builder agent or Super Magic runs the End On-Call Escalation tool. In Agent Builder, allow the End Voice On Call Escalation write tool on the agent. Like the Inbox action, this ends the escalation for that thread only. If no escalation is running on the thread, the tool explains why instead of failing.
- The Flow is turned off, or the safety limit (50 calls or 24 hours) is reached.
- The cascade finishes with If no one answers set to
Stop. - Every number in the phone tree is switched off, so there is no one to call.
Track escalations from the ticket
Every escalation writes internal notes to the ticket as it runs, so the audit trail lives in the same place as the rest of the work:- The page started, with the outbound agent, caller ID, and phone tree used.
- A note each time Thread places a call to a new person in the tree.
- A summary for each person who didn’t answer, with how many times Thread paged them. Thread writes it when the cascade moves past that person or the page ends with nobody answering.
- Acceptance, human stop, stop status, safety limit, or cascade end, whichever ended the loop.
- The accepting technician’s name when someone presses accept.
- If no one answers their portion of the call tree, how many calls they received.
Setting up your Flow parameters
Voice On-Call is mainly going to be used for after hours tickets, however you can set it up for any parameters you’d like.Common parameter combinations for Voice On-Call:
- Time/days: Set up multiple flows for each day/times that you have different on call schedules.
- Priority: Alert based on high or emergent priorities.
- Categories or Summary: Trigger based off of key words or phrases.
- Contact/Client: Trigger for specific people (note: Voice will only trigger in these cases if the number calling is known in the PSA).
- Status: Status is a good way to trigger escalation based on other flows if needed.
Examples
- Time: From 6PM to 9AM + Priority: Priority 1 Issues
- Day: Saturday AND Sunday + Priority: Priority 1 Issues
- Time: From 6PM to 9AM + Company A + Company B
Using Super Magic to Make Voice On-call Flows
You can use Super Magic to help you create an On-Call flow by describing your schedule or uploading an image.PTO and Absences
Instead of making a new call tree every time someone is out or deleting their number temporarily, just toggle them off while they are out using the “active” toggle.