# Approve what agents can do

> Decides which write operations agents can call, approves or withdraws each one once, and has a person decide single actions in Slack.

**Skill for your coding agent:** [`mindset-script/SKILL.md`](https://docs.mindset.ai/skills/mindset-script/SKILL.md)

**Skill for your coding agent:** [`mindset-connect/SKILL.md`](https://docs.mindset.ai/skills/mindset-connect/SKILL.md)

Builders work from a coding agent and operators from an AI client, both through the MCP server, or in the Studio. In Mindset, an agent is a prompt and a model, held to an order by a script when needed. It uses connections to outside systems, operations on them, functions and widgets. Every change is a version, and every execution is a run. Every piece sits on one security and compliance layer: the org sets its posture once, and every agent works under it, with the audit trail and, once an admin turns it on, personal data redaction. The platform runs in your own cloud (AWS, GCP or Azure) or is hosted by Mindset. Your app reaches agents through the SDK, your server through the API, and people through the Hub and schedules. Highlighted: Connection, Operation.

## Ask your AI client

```
List every write operation the invoice exceptions agent can call in Production, and any that are still waiting for a person's approval.
```

## What you get back

Each write operation, the connection it's on, and whether it's enabled or pending. Your AI client can't approve a write: no agent can, whichever route it comes in by. A person does that in the Studio. How consent works is on [Security and approval](https://docs.mindset.ai/docs/security-model).

## How approval works

A write needs consent once per operation, never per call. The org setting **Turn on connections that change other systems automatically** is on by default, so a new write operation can be called as soon as it's added.

> **Warning:** Leave it on and nobody approves new writes. Turn it off and a person approves each new write operation once before anything can call it.

If an operation's definition changes after you approved it, the approval stops applying and you approve the new shape.

| Button                     | On                                   | What it does                                                                                                                      |
| -------------------------- | ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------- |
| **Approve this operation** | A write that **Needs your approval** | Lets agents call it. Recorded with your name                                                                                      |
| **Withdraw approval**      | An enabled write                     | Stops every agent and function calling it. It goes back to **Needs your approval** and stays there, whatever the org setting says |
| **Disable**                | An enabled read                      | Stops every agent and function calling it                                                                                         |
| **Disable**                | A whole connection                   | Refuses every call to any of its operations                                                                                       |

Each takes effect on the next call, with no new version. To stop something right now, this is the fastest way.

## Decide one action during a run

When a person must decide a specific action, the script holds an `$ask` step. It posts one message to Slack with buttons, and the run waits for the answer or a timeout. See [Make it follow steps](https://docs.mindset.ai/docs/write-a-script), and [Post to Slack or send email](https://docs.mindset.ai/docs/post-to-slack-or-send-email) to set up the Slack app.

- **Put it late.** Gather, compare and assess first, then ask before the query is registered.
- **Ask once for the batch.** One message with every disputed line gets read. Fifty get waved through.
- **Put enough in it to judge:** the invoice, the PO, each line that differs and the contract clause.
- **Expect a slow answer.** Don't build anything that goes stale in ten minutes.

## What you decide

- Whether new writes turn on automatically, and who approves them if not. Finance approves finance writes.
- Which actions need a person each time, as an `$ask` in the script.

> **Info:** Write approval is one of your org's [compliance rules](https://docs.mindset.ai/docs/compliance): one setting, applied to every agent and connection.

## Done when

- You can say, for every write the agent uses, whether the org setting or a named person granted it.
- You know which button stops a write, which stops a read, and which stops a whole connection.

## In the Studio

The setting is on **Settings → Systems → Connections that change other systems**. A pending write shows **Needs your approval** on the connection's **Operations** tab (**Tools** for an MCP server). Open it to read **The exact call** and the **Parameters the agent supplies**, then press **Approve this operation**. **Disable** for a whole connection is on its **Overview** tab.

![The Connections that change other systems setting on Settings → Systems.](https://docs.mindset.ai/images/docs/studio/settings-writes.png)
