What It Does
When enabled, the agent can:- Send an approval request to your configured technicians via Teams, or post it in a Teams channel or group chat where anyone can approve
- Read the decision — approved, rejected or still pending — on a later step
- Carry out the approved action
How It Works
- Agent analyzes the ticket and determines an action is needed
- Agent prepares the action and explains what it wants to do
- A Teams message with approve/reject buttons is sent to the configured technicians, and posted in the configured channels and chats
- Technician reviews and makes a decision
- Agent proceeds or aborts based on the response
How to Use
This tool is automatically enabled when you enable “Require Technician Approval” on other tools like:- Execute RMM Script
- Add Client-Facing Note
- Microsoft Graph API writes, such as creating a user
- And many others
One approval for the same change to several records
When the agent makes the same kind of change to several records, such as correcting twelve memories or disabling five users, it reads the records first and then asks once. The approval card shows the agent’s summary, which names the records, and Neo stores the exact change for each record with the request. After you approve, each stored change runs exactly as stored, with no further check, and can be used again for the same change, for example when the agent retries after an error. A change that is not stored with the request, or that differs from it in any value that changes the call, needs a new approval. The one exception is a password or key in its own field: it is stored as a placeholder, so a change that sends a newly generated one still matches. Neo records each time a stored change runs. An approval with a note is checked the usual way, so your note is always read. For a single change, the agent writes the request as a summary without a list. A password or key in its own field of a stored change is kept as a placeholder. Neo recognises such fields by their names, as it does in the run’s step trace, so this is best effort. Neo refuses to list a change when it detects a secret anywhere else, such as a message that delivers a password it generated, and the agent describes that change in the summary instead. The summary and the name of each change are text the agent writes, and it is instructed never to put a secret in them.Example Approval Message
Technician-in-the-Loop
Learn more about Technician-in-the-Loop
Best Practices
Configure multiple technicians
Configure multiple technicians
Have multiple technicians available to avoid delays when someone is unavailable.
Plan for a request nobody answers
Plan for a request nobody answers
A request waits until someone answers it; there is no timeout, and the agent cannot wait inside the
run to ask someone else. To bring in a second approver after a set time, have the agent schedule a
check-back: see If nobody answers.
Use custom instructions
Use custom instructions
Guide the agent on when to seek approval vs. proceed autonomously.
What the agent sends a request for
What the agent sends a request for
A request asks a technician to approve changes the agent will make. When your rule leaves a
choice open, such as two contacts that both fit, the agent proposes one and names the other, and
the technician can pick the other in a comment. A review, a manual step for the technician, or a
“flag for review” goes in the internal note; when your PSA has no review status the agent can set, that
note is the flag. A triggered agent with no way to add a ticket note puts these items in its
dashboard summary instead, and a chat agent puts them in its reply. To have the agent notify a technician through this tool anyway, say so in the
instructions, for example: “When the company is not linked to a tenant, use Request Technician
Approval to notify Joe.”
Write conditional approval templates as separate branches
Write conditional approval templates as separate branches
If your instructions give one approval wording for a specific end client and another for
everything else, state each condition and keep the two texts apart. The agent writes only the
branch whose conditions are met, in that branch’s own words, and does not name the other branch
in the request — not as a heading, and not as a note saying it does not apply. The approver reads
the request on its own, so a label from a branch that did not apply would tell them the wrong
thing about what they are approving.
Review and refine
Review and refine
Regularly check what’s being approved to identify automation opportunities.
