Skip to main content
Voice On-Call is a Flow action that turns Voice AI into your after-hours paging layer. When a ticket matches your parameters set in the Flow, Thread places an outbound page call to the first person in your phone tree, then keeps working down the list at a fixed retry interval until a technician presses the accept key, the ticket reaches a stop status, someone acts on the ticket, or the safety limit ends the loop. Use this page to configure the action inside a Flow.
Voice AI must already be set up with an outbound agent and at least one verified caller ID before you can add the action.

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:
Screenshot 2026 08 17 At 4 35 11 PMScreenshot 2026 08 17 At 4 35 11 PM
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. 

Screenshot 2026 08 14 At 3 17 48 PM
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

Screenshot 2026 08 14 At 3 19 27 PM
Select the outbound agent that will place the call, then pick which of that agent’s verified caller ID numbers the technician’s phone should display. Both are required, and Thread rejects the save if the caller ID isn’t verified or doesn’t belong to the agent you chose.
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:
  • {{Ticket Number}}
  • {{Contact Name}}
  • {{Company}}
  • {{Summary}}
  • {{Board}}
  • {{Priority}}
  • {{Source}} (the ticket’s PSA source, for example Phone, Email, or Portal)
Tokens are case-sensitive and must include the double braces exactly as shown. A token renders empty when the ticket has no value for it.For example:
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”).
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.164 format.
  • 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.
Drag entries to reorder the cascade. Thread rings active entries top-down.
If every number is switched off, the Flow shows the warning “All numbers are off — this flow won’t call anyone.” A page that starts in this state calls no one and ends immediately.
Changes to the Active switch apply to new pages only. A page that is already running keeps the phone tree it started with.
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 Stop after 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.
For example, with a 5-minute retry interval and the first number set to 3 calls, Thread calls the first number at 0:00, 5:00, and 10:00. It calls the second number at 12:00 and the third number at 14:00.
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.
Thread doesn’t apply the no-answer status when a technician ends the page manually, when the Flow is turned off, or when every number in the tree is switched off.
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.
Thread checks the ticket status when it changes and again before every scheduled call. Thread cancels calls that haven’t happened yet. A call that is already ringing or was already accepted isn’t cut off.
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:

  1. Call one on-call number until it’s answered or the safety limit is reached.
    1. 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).
  2. Call multiple numbers in a cascade, with the last number being called until it gets answered or the safety limit is reached.
  3. Call multiple numbers in a cascade, and have it start at the beginning if no one answers.
  4. 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 1 to accept the page.
  • Press 2 to hear the message again.
The accept and repeat keys are fixed at 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.
If nobody answers and the entry has calls left under Max. calls, Thread waits the retry interval, then rings the same entry again. Once an entry has used all its calls, Thread rings the next entry 2 minutes after the last call started. When the cascade reaches the end of the tree, Thread follows the If no one answers setting. With 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.
The stop reason is recorded on the ticket so you can see later why the loop ended.

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.
The unanswered summary uses the entry’s Label and looks like this:
Use these summaries to confirm that the retries you set in Max. calls actually ran. Thread doesn’t write a summary when a technician accepts the page or when the page is stopped manually or by turning off the Flow. Like the other escalation notes, the summaries are internal and sync to the PSA. Open the ticket in Inbox and read the notes timeline to see the escalation’s history.

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.
If using priority or categorization parameters, make sure that these AI features are set for all the sources, boards, and clients you would be looking to have trigger escalations. Misconfiguration or missing trigger phrases or words for certain priorities can have huge impacts to what tickets will trigger On-Call escalations.

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

  1. Time: From 6PM to 9AM + Priority: Priority 1 Issues
  2. Day: Saturday AND Sunday + Priority: Priority 1 Issues
  3. 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. Screenshot 2026 10 14 At 4 52 41 PM