---
title: "Approve drafts before they send"
description: "Review the drafts your agents save in the MachineMail dashboard: edit them, send now or retry a failed send, undo a send in the first seconds, or delete them."
canonical: "https://machinemail.dev/docs/guides/approve-drafts"
---

# Approve drafts before they send

> Review the drafts your agents save in the MachineMail dashboard: edit them, send now or retry a failed send, undo a send in the first seconds, or delete them.

Source: https://machinemail.dev/docs/guides/approve-drafts

An agent can save a reply as a draft instead of sending it. A person then reads it in the dashboard and decides: send it, fix it first, or throw it away. This guide covers the person's side.

The agent's side is in [Drafts](https://machinemail.dev/docs/concepts/drafts): how an agent creates drafts, and how to give it a key that can draft but not send.

## Open your drafts

Open [machinemail.dev/app/drafts](https://machinemail.dev/app/drafts), or choose **Drafts** in the sidebar. Every unsent draft in the organization is listed on the left. Select one to read it on the right.

A thread with an unsent reply also shows a **Draft reply** bar above its messages. Choose **Review in Drafts** to jump to it.

Each draft has a status:

| Status                   | Meaning                                                                |
| ------------------------ | ---------------------------------------------------------------------- |
| **Draft**                | Waiting for a person. It never sends on its own.                       |
| **Scheduled · sends in** | The agent set a send time. It goes out automatically at that time.     |
| **Sending soon**         | Its send time has passed and it is still queued to send automatically. |
| **Sending**              | It is going out now.                                                   |
| **Send failed**          | The scheduled send failed. It is not retried automatically.            |

## Read the draft

The header shows **From** (the inbox), **To**, **Cc** and **Bcc**, **Sends** for a scheduled draft, and when it was drafted or last edited.

A reply draft quotes the message it answers. Choose **Open thread** to read the whole conversation first.

## Edit it if needed

1. Choose **Edit**.
2. Change **To**, **Cc**, **Subject** or the **Body**. You can attach files or remove attachments. Bcc is kept as it is.
3. Choose **Save**, or press ⌘↵ (Ctrl+↵ on Windows and Linux).

To stop editing, choose **Cancel** or press Esc. If you made changes, the dashboard asks &#x2A;*Discard your changes?** Choose **Keep editing** or **Discard changes**.

A scheduled draft keeps its send time while you edit. The editor shows how long is left before it sends automatically. Save before then.

## Send it

1) Choose **Send now**.
2) Check the recipients in the **Send draft now** dialog.
3) Choose **Send now** again.

A scheduled draft goes out at once instead of at its scheduled time. Once sent, the draft leaves the list and becomes a normal message in its thread.

**Send now** is turned off while the draft has no recipients.

## Undo a send

When **Undo send** is on, a send from the dashboard waits 5 seconds before it goes out. While it waits, the bar at the bottom shows a countdown and an **Undo** button. Choose **Undo** or press Z to take the send back. The draft stays as it was.

Undo send is on for new organizations. To change it, open [Settings → Organization](https://machinemail.dev/app/settings#organization) and use the **Undo send** switch. It applies to everyone in the organization, and only to sends from the dashboard. After the 5 seconds, sent mail can't be recalled.

## Retry a failed send

A scheduled send can fail. The draft then shows **Send failed** and the note "The scheduled send failed and is not retried automatically."

1. Fix what is wrong, for example a recipient address, with **Edit**.
2. Choose **Retry send**.
3. Confirm in the **Retry sending this draft** dialog with **Retry send**.

## Delete a draft

1. Choose **Delete**.
2. Type `DELETE` and choose **Delete draft**.

The draft is deleted without being sent. A scheduled send is cancelled. The agent is not told.

> **Not in the dashboard:** The dashboard can't set a send time. Agents create drafts with the API or the MCP `create_draft` tool. A message you close in the dashboard's composer is also kept as a draft; see [Write a new
> message in the dashboard](https://machinemail.dev/docs/guides/send-from-the-dashboard).

## Troubleshooting

| Symptom                                | Fix                                                                                                                                                                              |
| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| A draft sent before anyone reviewed it | The agent set a send time, and a draft with a send time goes out on its own. Ask the agent to leave `send_at` empty. See [Drafts](https://machinemail.dev/docs/concepts/drafts). |
| **Send now** is greyed out             | The draft has no recipients, or it is already sending. Add a recipient with **Edit**.                                                                                            |
| "That draft no longer exists"          | Someone sent or deleted it, or it went out on schedule, while you had it open.                                                                                                   |
| **Undo** never appears                 | **Undo send** is off for the organization. Turn it on in **Settings → Organization**.                                                                                            |

## Related

- [Drafts](https://machinemail.dev/docs/concepts/drafts)
- [Reply in thread](https://machinemail.dev/docs/guides/reply-in-thread)
- [Write a new message in the dashboard](https://machinemail.dev/docs/guides/send-from-the-dashboard)
- [Create a key for an agent](https://machinemail.dev/docs/guides/api-key-for-an-agent)
