# Change what waits for me

URL: /agents/change-what-waits-for-me · Id: `guide:change-what-waits-for-me` · Status: `live`

> Set which Actions wait for your yes: one action class per rule, spend, sign, publish, price or send, each optionally above an amount.

An [approval](/agents/approvals) rule names one action class and an optional amount in USD. Above the amount, the seat's [Actions](/business/nouns/action) of that class wait for you; everything else, the agent does.

**Before it runs**

- You leave the chat: Never.

## What you get
- 1 approval rule on the support seat: every spend over $50 waits for you (Role)
- 1 request to you for each Action the rule catches, with the amount and the reason (Approval)
- 1 record of the change, on the seat’s history (Decision)

## Your agent does
**For agents**

- Guide: `guide:change-what-waits-for-me`, status `live`. Page: [/agents/change-what-waits-for-me.md](/agents/change-what-waits-for-me.md).
- Approval: none. Run it when the founder asks.
- Leaves the chat: never.
- Run: call the steps in order, each through the API, SDK, CLI or MCP tab below; a later step passes the `$id` an earlier one returns. Each value marked example is the sample business’s: pass the founder’s own.

| Step | Verb | Inputs (type, required, this guide’s value) | Returns |
| --- | --- | --- | --- |
| 1 | [`Role.update`](/business/nouns/role/update) (`verb:Role.update`) | `id` string, required: example `"customer-lead"`; `name` string: example `"Leaseline"`; `approvals` json: example `[{"class":"spend","above":50}]` | `role` Role |

Returns: the last call answers with `role` and its `action`, whose `status` is `done`, `pending` (waiting on an Approval or a Worker), `failed`, `canceled` or `refused`:

```json
{
  "api": "https://api.sb/leaseline.app",
  "role": {
    "$id": "https://api.sb/leaseline.app/roles/customer-lead",
    "$type": "Role",
    "approvals": [
      {
        "class": "spend",
        "above": 50
      }
    ]
  },
  "action": {
    "$id": "https://api.sb/leaseline.app/actions/act_br07HsG8MG",
    "operation": "Role.update",
    "status": "done"
  },
  "links": {
    "self": "https://api.sb/leaseline.app/actions/act_br07HsG8MG"
  }
}
```

Next: offer “Raise it to $200”, or “Ask me before every publish, on every seat”.

Calls: `Role.update`

Ask:

```text
Change which approvals come to me.
Ask me before any refund over $50.
Ask me before anything goes live.
```

API:

```bash
# Role.update
curl -X PATCH https://api.sb/leaseline.app/roles/customer-lead \
  -H "Authorization: Bearer $STARTUP_BUILDER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Leaseline","approvals":[{"class":"spend","above":50}]}'
```

SDK:

```ts
import { $ } from 'startup-builder'

await $.Role.update({ id: 'customer-lead', name: 'Leaseline', approvals: [{ class: 'spend', above: 50 }] })
```

CLI:

```bash
npx startup-builder do Role.update --json '{"id":"customer-lead","name":"Leaseline","approvals":[{"class":"spend","above":50}]}'
```

MCP:

```json
{
  "name": "do",
  "arguments": {
    "code": "return await $.Role.update({ id: 'customer-lead', name: 'Leaseline', approvals: [{ class: 'spend', above: 50 }] })"
  }
}
```

## Change it
- Raise it to $200.
- Ask me before every publish, on every seat.
- Stop asking me about sends to fewer than 100 people.

## Under the hood
- Systems: [Workforce](/systems/workforce), [Work queue](/agents/work-queue)
- Nouns: [Role](/business/nouns/role), [Approval](/business/nouns/approval), [Action](/business/nouns/action), [Decision](/business/nouns/decision)
- Events: `Role.updated`