# Let an assistant make changes

> What the gateway will and will not do to a live account, and how the preview and confirm cycle works.

[Guides](https://www.getmcpads.com/guides)

## For you

## The way this normally goes

- Give someone the account password and hope.
- Or do everything yourself, and be the bottleneck.

## The way it goes with an assistant

- Give the assistant an account it may reach, on a plan that allows writes.
- Every change previews first and applies nothing.
- You read the preview and confirm.
- Creation is always paused, and deletion does not exist.

## Prompts to start from

### Trying it without risk

```text
Pause campaign X, but show me the preview first.
What exactly would change if I cut this budget to 40 EUR?
Create a paused campaign for the autumn range, and tell me what you set.
```

## Tools this uses

| Tool | Why |
| --- | --- |
| `describe_tool` | Read the schema before composing a write. Every write carries a confirm parameter. |
| `google_ads_update_campaign_status` | Called without confirm, it returns the change it would make. |
| `run_tool` | Reaches a write that was not announced. It runs the same plan check and account allowlist, so it is not a way around anything. |

## What it will not do

- A created campaign is always PAUSED. There is no parameter to create it active.
- Deleting, duplicating, retargeting and editing creative are not exposed at all.
- An amount above one million units of currency is refused rather than sent, because that is what a double conversion looks like.
- A refused call does not consume quota.

## For your agent

This job reads several sources, across 3 tool calls. It changes the account, so it needs a plan with writes and an explicit confirm on each change.

## Sequence

| Step | Tool | Purpose |
| --- | --- | --- |
| 1 | `describe_tool` | Read the schema before composing a write. Every write carries a confirm parameter. |
| 2 | `google_ads_update_campaign_status` | Called without confirm, it returns the change it would make. |
| 3 | `run_tool` | Reaches a write that was not announced. It runs the same plan check and account allowlist, so it is not a way around anything. |

> **Note** Tools not announced in your list are reachable through `search_tools`, then `describe_tool` for the schema, then `run_tool` to execute. `run_tool` runs the same plan check and account allowlist as a direct call.

## Constraints that will refuse you

- Only the ad accounts the account owner ticked are reachable. Call `list_accounts` first rather than guessing an identifier.
- A created campaign is always PAUSED. There is no parameter to create it active.
- Deleting, duplicating, retargeting and editing creative are not exposed at all.
- An amount above one million units of currency is refused rather than sent, because that is what a double conversion looks like.
- A refused call does not consume quota.

## What the person is likely to ask

```text
Pause campaign X, but show me the preview first.
What exactly would change if I cut this budget to 40 EUR?
Create a paused campaign for the autumn range, and tell me what you set.
```

---

This page as HTML: https://www.getmcpads.com/guides/safe-writes
Every page under /guides and /docs is available as Markdown: append `.md`, or send `Accept: text/markdown`.
