---
title: Review assistant changes
description: How a connected agent prepares a 30-minute proposal that only you can approve in SquadBear
order: 3
---

Four writes never run from the assistant's token. The first call stores a proposal.
You approve it in SquadBear. The assistant then repeats the same arguments to commit.

## Which writes wait

These MCP tools prepare a proposal instead of executing:

- `erase_employee` — GDPR erasure of an offboarded person. Irreversible.
- `update_leave_policy` — publishes a new policy version for everyone enrolled.
- `update_workspace_settings` — includes retention that can delete records, and the public calendar feed.
- `start_process` — starts a process for one person or a team, which can notify people and call integrations.

Booking leave, clocking in, logging time and approving a request do **not** use this
review. Those follow the assistant's own Ask setting and the same domain rules as the
web app.

ChatGPT's curated catalog does not include the four tools above. Use
`https://app.squadbear.com/mcp` from Claude, Cursor, Codex or Gemini.

## How

1. Ask the assistant to make one of those four changes. The tool returns
   `approvalRequired`, a `reviewUrl`, and an expiry 30 minutes out. Nothing has changed.
2. Open the link while signed in as the same person who connected the agent
   ([Connect an agent](https://app.squadbear.com/agents)). The **Review and approve**
   dialog shows the target, a current-versus-proposed table when the change is a
   policy or workspace setting, and the exact arguments under **Technical details**.
3. Choose **Approve proposal** or **Reject**. Approve does not run the change. Reject
   leaves the workspace untouched. Another signed-in user cannot decide this proposal,
   and an MCP bearer token is refused even if a cookie is also present.
4. Return to the assistant. It calls `get_approval_status`. Only `approved` allows a
   second call with identical arguments plus `approvalId`. Changed arguments, a changed
   target, an expired proposal, or an interrupted commit all refuse. Interrupted
   commits stay in `needs_review` and are not retried automatically.

The review cannot edit values. To change a field, ask the assistant for a new proposal.

## Worked example

Marta asks Claude to require that carried Standard vacation days start by the end of
September. Claude calls `update_leave_policy` and sends her
`https://app.squadbear.com/agents?approval=…`. The dialog lists **Carryover deadline**
from "No deadline" to "Leave must start by the deadline", and **Deadline month** from
"No month set" to "End of September". She clicks **Approve proposal**, goes back to
Claude, and the second call publishes policy version 2. The ledger is unchanged until
that second call.

> [!AGENT]
> Prepare a change to Standard vacation so carried days must start by the end of September, then give me the SquadBear review link. Do not commit until I approve it there.

## Related

- [Connect Claude to SquadBear](/docs/getting-started/connect-an-agent/)
- [Prompts to run through your connected agent](/docs/agents/recipes/)
- [Data protection and GDPR in SquadBear](/docs/admin/privacy/)
