> AI agents: this is one page from Mammoth Analytics documentation. The index of all pages as Markdown is https://mammoth.io/docs/llms.txt. Append `.md` to any docs URL, or send `Accept: text/markdown`, to get Markdown.

# Plans, approvals and runs

> How the AI Agent proposes a plan, what waits for your OK and what it builds at once, and how you approve, edit, stop, retry and follow a run.

The AI Agent is available on Enterprise plans.

When you ask the agent to do something with your data, it works out the steps first. Work that only makes something new, such as a new view, dataset or dashboard, it builds straight away. Work that changes, deletes, sends out or schedules something waits for your OK. This page explains each card you see while that happens, and how to follow, pause and stop longer runs.

Plans only happen in Build chats. An Ask chat answers questions and never runs a plan (see [Ask mode](https://mammoth.io/docs/learn/agent/ask-mode/)). For what the agent shows when the work is done, see [Results, charts and canvases](https://mammoth.io/docs/learn/agent/results-and-canvas/).

## What runs without asking

Mammoth reads what each step touches and makes, not what the agent says about it. Only four kinds of work wait for you.

| Kind of work | Example | What the card says |
| --- | --- | --- |
| Changing something that already exists | Removing rows from a view, renaming a dataset, adding a step to a view | "changes **Orders**" |
| Deleting anything | Moving a view to Trash | "deletes" |

A delete waits for your OK unless the plan you approved lists it. With **Ask before running plans** off, a delete the plan lists runs with the plan. A working view the agent made in the same turn to answer a question is removed without asking.
| Sending data out of Mammoth | An export to Snowflake, a webhook call, sharing or publishing a dashboard | "sends data to Snowflake" or "data leaves Mammoth" |
| Anything on a schedule | An alert, a schedule, an automation, a step that waits until a later time | "runs on a schedule" |

Everything else is built at once: a new view, a new dataset, a join into a new table, a dashboard, a chart, or a send-to into a new dataset. A download (CSV, Excel, JSON) stays with you, so it does not count as sending data out. Applying a highlight to a view also runs without asking.

While a plan that only makes new things is building, the chat shows one short line instead of a card.

## Waiting for your OK

A plan or command that opens one of the four kinds above shows an approval card labelled **Waiting for your OK**.



| Part | What it shows |
| --- | --- |
| Gate line | What kind of work this is, for example "changes Orders" or "runs on a schedule". |
| Headline | The effect in plain words, for example "12 rows will go, 488 stay", "Your data will go to BigQuery", "Move “Combined table” to Trash" or "Alert you when Revenue is below 1,000". |
| Note | For rows sent into a table: "Its own rows stay." |
| **Fixes** | Each change with its row count, for example "3 rows". Where a change stands on its own, a switch beside it lets you leave it out before you apply. |
| Row preview | The rows that would go, with a **Why** column. "10 of 120" shows how many you see; **see all** and **see fewer** open and close the list. |
| Downstream line | What the changed view feeds and what it will hold, for example "CRM export gets 488 rows". |
| Alert line | For an alert, what it would do today, for example "Now: 4 of 200 rows would set it off". |
| Assumptions | Guesses the agent made that change the result. **Change** puts "Change: " and the guess in your message box so you can correct it. |
| Pause offer | When the change would send new data on to exports or other views: "Applying sends new data to CRM export. Pause it until I've checked the result". See [Pause sends while you edit](https://mammoth.io/docs/learn/transform/pause-sends/). |

| Button | What it does |
| --- | --- |
| **Apply** | Runs the change. While it runs you see "Applying it · about 5 s". |
| **Turn on** | Shown in place of **Apply** for an alert or a schedule. |
| **Not now** | Nothing runs. The card settles to one line, "Not now · Remove rows". |

Once you answer, the card becomes one line: "Applied · Remove rows", "Not now · Remove rows" or "Not run · Remove rows". If it fails, you see "Remove rows didn't work. Nothing was changed." or, for a plan that got part way, "The steps before it are done."

### Confirm a single change

For one change outside a plan, the agent asks a one-line question with two buttons: **Cancel** and a button named for the action.

| Example question | Button |
| --- | --- |
| "Remove rows where Status is Cancelled from Orders?" | **Remove rows** |
| "Keep only rows where Region is West?" | **Keep rows** |
| "Rename “Q3” to “Q3 actuals”?" | **Rename** |
| "Send Orders to Snowflake?" | **Send** |
| "Create an alert when Revenue is under 1,000?" | **Create** |
| "Add “Revenue by month” to the dashboard?" | **Add tile** |

You can also type a plain yes; the card shows "or reply yes". Afterwards the line reads "Approved · Rename" or "Cancelled · Rename".

### Change card for a view

When the agent proposes a change to a view or dataset, such as a filter, a join or a send-to, it shows a change card. The card lists the steps ("Remove rows where Amount is empty", "Join Customers on Customer ID", "Send to Sales summary") with each one's row effect, for example "500 → 488 rows".

| Button | When you see it | What it does |
| --- | --- | --- |
| **Remove rows** or **Keep rows** | The change is one filter | Runs it. |
| **Run it** | Any other change | Runs the steps. |
| **Edit** | The change waits to run | Puts "Change the plan: " in your message box. Type what to change and send. |
| **Discard** | The change waits to run | Drops it. Nothing changes. |
| **Cancel** | A one-off confirmation | Nothing runs: "Cancelled · nothing changed". |
| **Build this** | The card shows an example ("Example · not built") | Asks the agent to build it for real. |

A step the agent can't do in chat says "finish it in the Data Editor". Facts on the card include "New view · not run yet", "Running · 2 of 3" and "Didn't finish · 1 of 3 added".

## The plan card

A longer plan shows its numbered steps, each with a status.

| Status | Meaning |
| --- | --- |
| **Proposed** | Waits for you to start the plan. |
| **Approved · starting**, **In progress** | Running now. |
| **Waiting for your OK** | This step needs your answer in the chat. |
| **Waiting** | Waiting for a job to finish or for a set time. |
| **Blocked** | Needs something only you can give. The step says what, for example "Needs: a Salesforce login". |
| **For you** | A step you do yourself. |
| **Done**, **Failed**, **Skipped**, **Stopped**, **Not finished** | How the step ended. |
| **Replaced by later steps** | A later step did this step's work. |

The plan shows on its card in the chat. On the full agent page it can also show in the **Tasks** panel under **Here's what I'll do**: "Nothing runs until you start the plan. Review or edit the steps first." The card and the panel name some buttons differently, as shown below.

| Button | What it does |
| --- | --- |
| **Run it** on the card, **Run the plan** in the Tasks panel | Starts the plan. If the agent is still writing, the button reads "Starting when the agent finishes". |
| **Edit** on the card, **Edit plan** in the Tasks panel | Puts "Change the plan: " in your message box. Describe the change and send it; the agent writes a new plan. |
| **Discard plan** | Drops every step that has not run. The card says "The plan was discarded". |
| **Skip** | Drops one proposed step before you start. |
| **Always allow** | Runs this plan and turns **Ask before running plans** off, so later plans run without waiting. If the choice can't be saved: "Could not save that choice. The plan was not run. Try again." |
| **Do this** | On a suggested plan, runs just that step. |

If a plan needs a sign-in for a source, it shows the fields on the card before you can run it.

## Ask before running plans

This setting decides whether a plan that changes, deletes, sends out or schedules waits for **Run it**. It is on by default and applies to you, in every chat.

To change it, open a Build chat and use either:

- **Chat options** (the ⋯ menu in the chat header) > **Ask before running plans**.
- **More options** (the ⋯ menu in the message box) > **For every chat** > **Auto-approve plans** ("Run plans and changes without asking"). This is the same setting, the other way round: on means plans run without asking.

| Setting | What happens |
| --- | --- |
| On: each plan waits for your OK | Every such plan waits for you. |
| Off: plans run without asking | Plans start on their own. The card says "Ran without asking (auto-approve is on)" with **Change**, which turns the setting back on ("Plans will now wait for your OK before they run.", with **Undo**). While it is off, the card also shows a ticked **Auto-approve plans** checkbox. Untick it and plans wait for your OK again. |

If the setting can't be saved, you see "Couldn't save that choice. Try again." A step the plan did not list still asks before it runs.

## Answer the agent's questions

When the agent needs a choice from you, it asks one or more questions with options.

- **Recommended** marks the option the agent suggests.
- **Other…** opens a box for your own answer ("Specify your answer").
- With one single-choice question, clicking an option answers it.
- With several questions, or one where you can pick more than one option, click **Confirm**. Until every question has an answer you see "Answer every question to continue". An optional question is marked "(optional)".

## Follow a run

Long work runs in the background, so you can leave the page: "You can leave this page; the answer will be here." The run panel shows the step it is on ("Step 2 of 5"), the time used, and "Changes made so far: 1 change".

| Run status | Meaning |
| --- | --- |
| **Queued** | About to start. |
| **Running** | Working now. |
| **Waiting for you** | Needs your OK or an answer in the chat. |
| **Waiting for a job to finish** | Waiting on a pipeline job. |
| **Resumes at 9:00 AM** | A step waits until a set time. |
| **Pausing…**, **Paused** | You paused it. It stops after the call in progress. |
| **Out of time** | It used its time budget. |
| **Done**, **Failed**, **Stopped** | How the run ended. |

| Control | When you see it | What it does |
| --- | --- | --- |
| **Pause** | While it runs | Holds the run after the current call. |
| **Resume** | While paused | Carries on. |
| **Add time** | **Out of time** | Gives the run more time and starts it again. |
| **Retry** | **Failed** | Runs it again. |
| **Stop** | While it runs | Ends the run. "Stopped. Finished steps stay done." |
| **Continue** | After a stop | Carries on from where it stopped. |

**Other steps the assistant took** lists lookups ("Lookup, nothing changed") and edits ("Edited something") the agent made outside the plan's steps.

### Batch items

When a run works through many items, **Items (24)** lists each one with its state: **Done**, **Failed**, **Queued**, **Running** or **Already gone**. You see progress ("10 of 24 done") and an estimate, for example "about 4-6 min left". **Retry** on a failed item runs it again. If the estimate runs past the budget: "This may not finish within the time budget. You can Extend it." Use **Add time** when the run reaches **Out of time**.

### Get a browser alert

Where the chat says the work moved to the background, click **Alert me in the browser when it's done**. Your browser asks for permission once. After that you see "You'll get a browser alert when it's done." The option is hidden if your browser blocks notifications for Mammoth.

In the chat list, a chat's line shows where its work stands: **Working…**, **Waiting for your OK**, **Needs your answer**, **Paused**, **Out of time**, **Failed** or **New result**.

## Stop a plan

**Stop** on the plan card or the run panel ends the work. Steps that finished stay done. The card then says "Stopped part way. Continue where it stopped?" with **Leave it as it is** and **Continue**.

## When something fails

A failed step says why, for example "Failed at step 3 of 5". What you can do:

- **Try again** or **Ask agent to fix** puts a fix request in your message box, starting "Fix what wasn't built:" with each failure listed. Edit it if you like, then send.
- **Retry** on a failed run runs it again.

Neither button sends anything on its own. You review the message and send it.

## Undo

There is no Undo for changes to your data on the chat's cards. To take back a change to a view, use the Data Editor. Objects the agent made can be deleted like any other, and deleted items go to Trash (see [Trash and recovery](https://mammoth.io/docs/learn/trash-recovery/)). If a change was undone, its card shows **Undone**.

## Who can approve

- Only the person who started a chat can run, approve or discard its plans. In a chat someone shared with you, the cards are read only.
- The agent works with your own access. It changes data only in projects where your access lets you edit, and only at the Build level. At the Ask and Explore levels it reads and answers but never changes data. Workspace Owners set this on the AI Agent page (see [AI Agent access](https://mammoth.io/docs/learn/workspace-management/ai-agent-access/)).

## Related articles

- [Results, charts and canvases](https://mammoth.io/docs/learn/agent/results-and-canvas/)
- [What the AI Agent can do](https://mammoth.io/docs/learn/agent/skills/)
- [Pause sends while you edit](https://mammoth.io/docs/learn/transform/pause-sends/)
- [AI Agent access](https://mammoth.io/docs/learn/workspace-management/ai-agent-access/)

---
Source: https://mammoth.io/docs/learn/agent/plans-and-runs.md · Updated: 2026-11-05
