> ## Documentation Index
> Fetch the complete documentation index at: https://docs.erstan.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Approving and rejecting AI actions

> Stay in control: review write actions before they run, and decide when to auto-approve.

When an agent wants to change data in NetSuite or another connected system, it pauses and asks you first. You review exactly what it plans to do, then approve or reject it — so nothing is written without your say-so.

## Why approvals exist

Reading data is safe; writing it is not. Creating a vendor bill, updating a customer record, or applying a payment changes your real NetSuite account, so Erstan treats every **write** as something you sign off on.

By default, write actions are gated by an approval. The agent does its research, drafts the change, and then stops at an **approval card** above the composer until you decide. This is the **human-in-the-loop** model: the AI proposes, you dispose.

<Note>
  Each tool's behavior is set by a **write policy** — **Allow**, **Require approval**, or **Deny**. Tools set to *Require approval* produce the card described below. Owners and admins manage these policies on the [NetSuite connector](/connectors/netsuite-manage) and per agent.
</Note>

## The approval card

When the agent reaches a write step, an **Approval required** card appears just above the message composer.

<Steps>
  <Step title="Read the action">
    The card names the action the agent wants to run (for example, creating a record or updating a field) and explains why it needs approval.
  </Step>

  <Step title="Expand the change preview">
    Click **View details** to open the **Before / After** preview. It shows the current values next to the proposed values so you can confirm the change is correct. Click **Hide details** to collapse it.
  </Step>

  <Step title="Approve or reject">
    Click **Run action** (or **Run actions** when several are bundled) to let it proceed, or **Don't run** to reject it. The agent continues based on your choice.
  </Step>
</Steps>

<Tip>
  Approval decisions must use the authenticated **Run action** or **Don't run** controls on the current card. A chat reply is feedback only: it does not approve or reject the pending action. To revise the proposal, reject the current card, send the revised instructions, and review the replacement approval card.
</Tip>

For an approval linked to a task, the assigned approver remains visible, but any teammate with normal access to that task can use the card so the run does not stay stuck. The run records the person who actually decided and continues with its original run identity. Direct and private chat approvals remain available only to their assigned approver.

<Warning>
  Approving a card writes to your live NetSuite account (or other connected system). Always check the **Before / After** preview — amounts, record IDs, and which environment you are in — before clicking **Run action**. A standing reminder under the composer notes that AI can make mistakes, so check important details before acting.
</Warning>

## Auto-approve writes

If you are doing repetitive work and trust the agent's output, you can skip the per-action prompt. Open the **+** menu in the composer and turn on **Auto-approve writes**. While it is on, a disclaimer reading **Auto-approve writes enabled** shows under the composer, and writes run without stopping for the card.

<Frame caption="The composer + menu">
  <img src="https://mintcdn.com/erstan/VvzUuagDdyVkLVu5/images/chat-plus-menu.png?fit=max&auto=format&n=VvzUuagDdyVkLVu5&q=85&s=57c744a6bb2cbb3feb1fd445ee81c645" alt="The chat composer plus menu: Attach document, Attach image, Skills, Connections, Auto-approve writes, and Knowledge" width="2880" height="1800" data-path="images/chat-plus-menu.png" />
</Frame>

Auto-approve applies to your current **plain chat** with the default Erstan assistant. It is a personal setting that affects only you, so it does not change anything for your teammates and does not carry over to scoped agents that have their own governance.

<Warning>
  Auto-approve writes removes the approval step for ERP writes — the agent can create and change NetSuite records without asking. Use it only for low-risk, well-understood tasks, and turn it off when you are done. For anything financial or irreversible, leave approvals on.
</Warning>

## Other cards you may see

Not every card above the composer is an approval. Two look similar but mean different things.

<Tabs>
  <Tab title="Queued">
    A read-only **Queued** card — for example, **Queued — NetSuite** — appears when downstream work is briefly held, usually when the **"NetSuite is busy" queue** is throttling requests. It shows how many items are **ahead** and reads **This continues automatically — no action needed.** There are no buttons; the run resumes on its own once capacity frees up. This is informational, not an approval.
  </Tab>

  <Tab title="Authorization Required">
    An **Authorization Required** card appears when a tool needs access to a connected account you have not authorized yet. Click **Authorize account** to open the provider's sign-in window, complete it, then click **I've Completed Authorization** (or **Done**) to continue. NetSuite uses [per-user authorization](/connectors/netsuite-authorize), so each member authorizes their own access the first time an agent needs it.
  </Tab>
</Tabs>

<Info>
  Quick way to tell them apart: an **approval card** has **Run action** / **Don't run** buttons and a Before / After preview; a **Queued** card has no buttons and clears itself; an **Authorization Required** card has an **Authorize account** button.
</Info>

## FAQ

<AccordionGroup>
  <Accordion title="What happens after I click Don't run?">
    The write is skipped and the agent continues with that action rejected. You can tell it what to do instead, or ask it to revise the change and try again.
  </Accordion>

  <Accordion title="Why did an action run without asking me?">
    Either **Auto-approve writes** is on (check for the disclaimer under the composer), or the tool's write policy is set to **Allow**. Owners and admins can review policies on the [NetSuite connector](/connectors/netsuite-manage).
  </Accordion>

  <Accordion title="Can I see what was approved later?">
    Yes. Agent runs keep a trace of every step, including approved writes. See [run history and traces](/agents/run-history-traces).
  </Accordion>

  <Accordion title="A card appeared then disappeared on its own. Was that an approval?">
    No — that was a **Queued** card. Queue notices resume automatically and need no action. Only cards with **Run action** / **Don't run** buttons require your decision.
  </Accordion>
</AccordionGroup>

## Next steps

<CardGroup cols={2}>
  <Card title="Chat overview" icon="messages-square" href="/chat/overview">
    How chatting with Erstan works end to end.
  </Card>

  <Card title="Knowledge, tools & models" icon="sliders-horizontal" href="/chat/knowledge-tools-models">
    Control which connections and tools the AI can use.
  </Card>

  <Card title="Authorize NetSuite" icon="key" href="/connectors/netsuite-authorize">
    Set up your per-user NetSuite access.
  </Card>

  <Card title="Review and approve tasks" icon="circle-check" href="/tasks/review-approve">
    Approve agent work that lands in the task board.
  </Card>
</CardGroup>
