> For the complete documentation index, see [llms.txt](https://docs.ebrain.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ebrain.ai/chatting-with-tim/approval-flows.md).

# Approval flows explained

Tim can read your information freely, but he never changes anything on your behalf without your explicit confirmation. Whenever Tim wants to perform a "write" action -- sending an email, creating or changing a calendar event, creating or deleting a task, setting up an automated Agent, and so on -- he does not just do it. He shows you an approval step first, and nothing happens until you say yes.

{% hint style="success" %}
**The core guarantee.** No silent writes. What you see is what runs. Reject, and nothing happens -- your data stays exactly as it was. This is built in, not a setting you can switch off.
{% endhint %}

## Reading is free, writing always asks

The simplest way to remember it: Tim looks things up without asking, and confirms with you before he changes anything.

| Read-only -- no approval needed                    | Write -- always asks first                                    |
| -------------------------------------------------- | ------------------------------------------------------------- |
| Searching and reading your mail                    | Sending an email or replying to one                           |
| Checking your calendar and availability            | Creating, updating, or deleting calendar events               |
| Listing and reading tasks and projects             | Creating, updating, assigning, or deleting tasks and projects |
| Researching, searching documents, and web searches | Saving an email as a draft (on WhatsApp)                      |
| Reading contacts and other lookups                 | Scheduling an automated Agent or creating a new Agent         |

In short: anything that creates, changes, or deletes your data goes through approval. Tim will not even ask "shall I do this?" in plain text first -- he goes straight to producing the approval card, because the card itself is the confirmation step.

## The two confirmations you will see in web chat

Depending on what Tim is doing, you will see one of two things.

{% tabs %}
{% tab title="Approval card" %}
A compact card that appears inline in the chat for most write actions (calendar, tasks, Agents, and a generic fallback for anything else). It shows an icon, an action title, and the key details, with two buttons: **Approve** and **Reject**.

You cannot edit the details on this card -- you either approve it as described or reject it. If you want different details, reject and ask Tim again.
{% endtab %}

{% tab title="Email draft card" %}
When Tim drafts an email or a reply in web chat, you do not get a plain approve/reject card. You get a fully editable email draft. You can change every field before sending, and the email only goes out when you click **Send**.

See [Sending email and drafts](/mail/sending-and-drafts.md) for the full email workflow.
{% endtab %}
{% endtabs %}

## What the approval card shows

While a card is waiting for you, it is highlighted (blue) and marked **Pending**. It shows:

* An **icon and action title** in your language, such as "Create calendar event", "Delete calendar event", "Schedule agent", or "Create agent".
* A short, human-readable **description** of exactly what will happen, naming the specific item (for example the event title and time, or the task being deleted).
* **Detail fields** relevant to the action. A few examples:
  * **Calendar:** Title, Start, End, Location, Guests, and a Note, with dates shown in a friendly long format.
  * **Schedule agent:** the Agent name and a human-readable "When" (the schedule).
  * **Create agent:** the agent's name, an "About" description, an estimated time saved per run, and an optional expandable "Show instructions" section.

## Reviewing and approving

{% stepper %}
{% step %}

## Ask Tim to do something

Ask in plain language -- for example, "schedule a meeting with Anna on Thursday at 3pm" or "delete the 'Draft proposal' task". Tim writes a short sentence describing what he is about to do, then shows the approval card directly underneath.
{% endstep %}

{% step %}

## Read the details

Check the title, description, and detail fields on the card. This is the moment to make sure the event time, the recipients, or the task is exactly what you meant. While a card is pending, the chat input is locked with the placeholder "Approve or reject the action first" -- so you decide on the pending action before continuing.
{% endstep %}

{% step %}

## Approve or reject

Click **Approve** to go ahead, or **Reject** to cancel. On the email draft card, you edit the fields you want and then click **Send** (or **Dismiss** to set it aside).
{% endstep %}

{% step %}

## See the result

After you approve, the button shows "Executing..." with a spinner while the action runs. On success the card turns green and shows "Approved" and "Action completed". If you rejected, the card turns red, shows "Rejected", and nothing is created, changed, or sent -- Tim acknowledges and asks how you would like to proceed.
{% endstep %}
{% endstepper %}

## Card states you might see

| State                           | What it means                                                                                                                                                                                                  |
| ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Pending**                     | Waiting for your decision. The chat input is locked until you approve or reject.                                                                                                                               |
| **Approved / Action completed** | You approved and the action ran successfully (card turns green).                                                                                                                                               |
| **Rejected**                    | You declined. Nothing happened, and your data is unchanged (card turns red).                                                                                                                                   |
| **Failed / Action failed**      | You approved, but the action could not finish -- for example, an account needs reconnecting. The card shows a plain-language explanation so you can fix it and try again. A failed action did not take effect. |
| **Expired**                     | The request sat unanswered too long and can no longer be approved. Just ask Tim again.                                                                                                                         |
| **Dismissed**                   | The card was set aside (shown struck-through and greyed out).                                                                                                                                                  |

{% hint style="info" %}
**Approval cards survive a page reload.** If you refresh while a card is still pending, it is restored so you do not lose it. And an action can only run once -- if you (or another channel) already approved or rejected it, a second attempt is safely ignored.
{% endhint %}

## There is a time limit

A pending action does not wait forever. If you do not approve or reject it within a limited window (around half an hour), it expires and can no longer be approved. When that happens, just ask Tim to do it again.

## Approving on WhatsApp

The same guarantee applies when you talk to Tim on WhatsApp, delivered as interactive buttons instead of a card. For each write action, Tim sends a message with **Approve** and **Decline** buttons, and nothing happens until you decide.

* Tap **Approve** to run the action -- Tim replies "Done."
* Tap **Decline** to cancel -- Tim replies "Okay, I won't perform that action."
* If it timed out: "That request has expired. Ask me again if you still want it."
* If it was already handled (for example, you approved it in the web app): "That request was already handled."

Approvals are synchronized across web and WhatsApp, so the same action can never be run twice. On WhatsApp, sending or drafting an email is also captured as one of these Approve/Decline actions rather than the editable web draft. For more, see [Using eBrain on WhatsApp](/ebrain-on-whatsapp/getting-started.md).

## A few useful distinctions

<details>

<summary>Why can't I edit a calendar or task card?</summary>

Only the email draft is editable. Calendar, task, and Agent cards are approve-or-reject only. If the details are not quite right, reject the card and ask Tim again with the change you want -- there is no inline "edit" button on those cards.

</details>

<details>

<summary>What is the difference between Dismiss and Reject?</summary>

On an email draft card, **Dismiss** simply hides the draft without sending it. **Reject** (on an approval card) formally records the action as rejected. Either way, nothing is sent or changed.

</details>

<details>

<summary>Does Tim ever send email automatically?</summary>

No. Because the email draft card requires you to press **Send**, eBrain never sends an email automatically from web chat -- you are always the one who clicks send, and you can edit the message first. Even eBrain's background mail automation only ever prepares drafts; it never sends on its own. See [Smart mail automation](/mail/smart-automation.md).

</details>

## Related pages

<table data-view="cards"><thead><tr><th>Topic</th><th data-card-target data-type="content-ref">Link</th></tr></thead><tbody><tr><td>Sending email and editing drafts</td><td><a href="/pages/AUwck6Q0rKUjFTzMuu8V">/pages/AUwck6Q0rKUjFTzMuu8V</a></td></tr><tr><td>Quick answers vs. deep work</td><td><a href="/pages/u5sAaqcitd3pbhveNUgq">/pages/u5sAaqcitd3pbhveNUgq</a></td></tr><tr><td>Talking to Tim on WhatsApp</td><td><a href="/pages/ElvdX9NZxkxrs7FDTNUt">/pages/ElvdX9NZxkxrs7FDTNUt</a></td></tr><tr><td>How Tim works overall</td><td><a href="/pages/omYTaN5jK46mNbpfwSqk">/pages/omYTaN5jK46mNbpfwSqk</a></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ebrain.ai/chatting-with-tim/approval-flows.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
