What are Assists?
Assists let your voice agent pause a task and ask a human colleague for help — while staying on the line with the customer. Unlike a call transfer, the AI does not hand the conversation over. It creates a request, routes it through a contact-center queue, and keeps talking to the caller (or plays hold music) until a teammate accepts, rejects, or closes the request. Use Assists when the model can handle most of the call, but some steps need a person: looking up an account the AI cannot access, approving a refund, confirming a policy exception, or answering a question that is too sensitive to automate.Assists vs Tools vs call transfer
If the caller needs to talk to someone, use call transfer. If the AI only needs a colleague to do something in the background, use an Assist.
How Assists are organized
Assists follow the same hierarchy as Tools:- Assist — A named container (shown as Assists in the sidebar under Tools). It holds one or more actions.
- Action — A single LLM-callable task, such as
lookup_orderorapprove_refund. Name and description are what the model sees. Each action points at a contact-center queue. - Instance — One live request created when the model calls an action during a conversation. Instances show up in History and in the contact-center Assists inbox.
Prerequisites
You will need at least one queue in the contact center before you add actions. Every action routes requests through a queue — without one, the add-action form cannot be submitted. Make sure the teammates who should handle requests are assigned to that queue and can open the contact-center Assists inbox.Create an Assist
1
Open Assists
In the dashboard, go to Tools → Assists.
2
Start a new Assist
Click New Assist.
3
Fill in the basics
- Name — A short label your team will recognize (for example,
Order lookupsorBilling exceptions). - Description — What this Assist is for. This is for your team, not the model.
4
Save
Click Create. The new Assist appears on the list. Open it to add actions.
Assist names must be unique in the workspace. If you see a duplicate-name error, pick a different name or clone the existing Assist instead.
Add an action
Open an Assist and click Add Action. Each action is advertised to the model as a tool.What the model sees
How the request behaves
Optional parameters schema
assistReason is always required. Add a parameters schema when the human needs extra fields the model can fill in:
"type": "object"). Invalid schemas are ignored at runtime, and the model will only send assistReason.
Spoken copy and timeouts
Every action has its own customer-facing lines and timers. Edit them from Update Action. Spoken copy is what the caller hears — never mention tool names or “assist request.”Spoken copy
Timeouts (milliseconds)
What happens during a call
1
The model calls the action
When the conversation needs a person, the agent invokes the action (for example,
lookup_order) and fills in assistReason plus any extra parameters.2
The caller hears the start message
The AI speaks the start copy. If Wait before execution is on, the request is created only after that line finishes.
3
The request lands on the queue
A live instance is created and routed to the action’s queue. If Blocking is on, the caller hears hold music and delay copy until a teammate is assigned.
4
A teammate picks it up
In the contact-center Assists inbox, the request appears under In-flight. The teammate can accept, reject, send a clarifying question (if Interactive is on), put the caller on hold, or close the request.
5
Control returns to the AI
On accept, reject, timeout, cancel, or close, the AI speaks the matching line and continues the conversation with the outcome.
Request statuses
Handle requests in the contact center
Human teammates work requests from Contact Center → Assists, not from the Tools page.- In-flight — Open requests that still need a person.
- Approved — Requests that were accepted.
- Denied — Requests that were rejected.
Tools → Assists is where you configure who the AI can ask and what they can ask for. Contact Center → Assists is where people work those live requests.
Review stats and history
Open an Assist to find three tabs:Actions
Create, edit, clone, or delete the LLM-callable tasks on this Assist.Stats
Counts for the selected date range (defaults to the last 30 days):- Total instances
- Completed (with completion rate)
- Failed
- Cancelled
- Per action breakdown (completed / total / failed)
History
A paginated list of every instance: action name, status, end reason, and created time. Open a row to read the logs for that request.Edit, clone, and delete
- Edit — Change the Assist name or description from the Assist page. Change an action’s queue from Update Action.
- Clone — Duplicates the Assist and its actions. Use this to spin up a regional or language-specific variant.
- Delete — Archives the Assist. Agents stop receiving its actions. Runtime history is kept.
Best practices
Example: order lookup
A support agent can answer FAQs from the knowledge base, but order systems are behind a desktop the AI cannot reach.- Create an Assist named
Order desk. - Add an action named
lookup_order, pointed at theSupportqueue. - Description:
Ask a teammate to look up an order in the order system. Use this when the customer asks for status, tracking, or contents and no tool can retrieve it. - Parameters schema with required
orderId. - Start message:
Give me a moment — I’ll check that order with a colleague. - Assign teammates to the
Supportqueue and confirm they can see Contact Center → Assists.
lookup_order. The caller stays with the AI. A teammate sees the request, looks up the order, and replies. The AI continues with the answer.
Frequently asked questions
Can one Assist be used by multiple agents?
Can one Assist be used by multiple agents?
Yes. Assists are workspace-scoped. Link the same Assist to every agent that should be able to request that kind of help.
Do I need to restart an agent after adding an action?
Do I need to restart an agent after adding an action?
No. Actions are loaded when a conversation starts. New conversations pick up the latest configuration.
What is the difference between rejecting and closing a request?
What is the difference between rejecting and closing a request?
Rejecting means the teammate cannot do the work (the caller hears the error line). Closing means the work is done and the AI should continue (the caller hears the human-agent close line).
Why did the model never call my action?
Why did the model never call my action?
Tighten the description, mention the action in the agent prompt, and make sure the Assist is linked to that agent. Vague descriptions (“help with orders”) compete with tools and knowledge base.
The request always times out. What should I check?
The request always times out. What should I check?
Confirm the queue has available teammates, they are looking at Contact Center → Assists, and the queue timeout is long enough for your staffing. Blocking actions feel slower to callers — consider shorter delay intervals with clearer copy rather than a longer timeout.
Can the customer cancel a request?
Can the customer cancel a request?
Only if Cancelable is on. The model then has a cancel tool and the caller hears the user-cancel line.
Related
Tools
Connect APIs the agent can call on its own, without a human in the loop.
Call transfer
Hand the live call to a person when the customer needs to speak to someone.
Agents
Configure the voice agent that will call your Assist actions.
Cookbook: Assists
A worked example of human-in-the-loop help during a live call.
Need more help? Reach out to our team at support@oration.ai