# Meta Muse

Meta Muse can use a ReplyLayer mailbox as your agent's own email address. Muse
builds a custom connector from ReplyLayer's public API description and calls the
REST API. It does not use the [MCP server](/docs/mcp). ReplyLayer is separate
from Gmail: this setup does not connect a Gmail account.

## Before you start

- **A mailbox that lets agents send.** In the dashboard, open **Mailboxes**,
  choose the mailbox, and check that **What agents can do** is **Send and
  draft**. With **Draft only** or **Read only**, the test send fails with
  `AGENT_SENDING_DISABLED`. Saving the change asks you to confirm your sign-in.
- **A mailbox that can start a new email.** After you upgrade from the trial,
  the trial mailbox keeps receiving and can reply in existing threads, but a new
  email from it fails with `ESTATE_CONTINUITY_REPLY_ONLY`. Use a mailbox on your
  own ReplyLayer domain. See [Tiers, quotas, and sandbox limits](/docs/limits).
- **An agent key for that mailbox**, created on app.replylayer.ai. The full key
  is shown once. A key from a different ReplyLayer environment, such as a test or
  staging dashboard, is refused. See
  [Creating a key](/docs/authentication#creating-a-key).
- **The test address allowed, if the mailbox uses a recipient allowlist.** The
  test sends to `delivered@simulator.replylayer.net`, the
  [email simulator](/docs/guides/simulator)'s success address. On an allowlist
  mailbox, allow that address first. **Connect Agent** has a button for it. See
  [Recipient allowlist](/docs/guides/recipient-allowlist).

## Connect Muse

1. In the dashboard, open **Connect Agent**, choose the mailbox, open the
   **REST API** tab, and choose **Meta Muse**.
2. Create the agent key in Step 2 if you do not have one.
3. Copy the test prompt. It names your mailbox and a test token. It never
   contains your key.
4. Start a new chat in Muse and paste the prompt.
5. When Muse shows its ReplyLayer connector card, choose **Connect** and paste
   the key into the credential prompt that opens. This is the only place the key
   goes. Never paste it into the chat.
6. When Muse asks to share info with `api.replylayer.ai`, allow it.

Muse lists your mailboxes, sends one email to the simulator, and reports the
result.

## Reading the result

Muse reports `email_effect.effect_status` and the message id.
[Send outcomes](/agents/send-outcomes) defines every value.

- `sent`: ReplyLayer accepted the test email. It does not confirm delivery.
- `held_for_review`: the email is waiting for a person on your account to
  approve or deny it in the dashboard. Muse cannot approve it.
- `held_infrastructure`: a temporary problem held the email before it was
  checked. Wait, then choose **Start a new test** on Connect Agent and paste the
  new prompt. The same prompt returns the same hold.
- `blocked`: ReplyLayer refused the email. Do not ask Muse to rewrite it. See
  [Content scanning](/docs/guides/content-scanning).

Pasting the same prompt again never sends a second email. ReplyLayer returns the
first result for the same `Idempotency-Key`.

## If Muse reports an error

| Muse reports | What to do |
|---|---|
| `401` | ReplyLayer refused the key. Check that it is an active agent key created on app.replylayer.ai for this mailbox. If you no longer have it, create a new one and give it to Muse through its credential prompt. |
| `429` | Too many requests. Wait before trying again, and do not ask Muse to retry in a loop. If it follows a `401`, fix the key first. |
| `AGENT_SENDING_DISABLED` | Set **What agents can do** to **Send and draft** on the mailbox page, then paste the same prompt again. |
| `ESTATE_CONTINUITY_REPLY_ONLY` | Choose a mailbox on your own ReplyLayer domain on Connect Agent, create a key for it, and paste the new prompt. |
| `RECIPIENT_NOT_ON_ALLOWLIST` | Allow `delivered@simulator.replylayer.net` on that mailbox, then paste the same prompt again. |
| `RECIPIENT_AGENT_CONTAINED` | Stop. [Why a send was refused](/agents/send-gates) explains who can lift it. |
| An answer with no new request | Muse may answer from an earlier result. Ask it to make the HTTP request again with the same `Idempotency-Key`. |

## After the test

Muse keeps the connector. It can call other operations in the API description,
limited to what an agent key for this mailbox may do. See
[Roles: admin vs agent](/docs/authentication#roles-admin-vs-agent).

Muse has no settings page for a connector's key. To replace the key, create a new
agent key, then ask Muse in a chat to replace the API key for its ReplyLayer
connector. Muse shows the connector card again: choose **Connect** and enter the
new key in the window that opens, never in the chat. Check that Muse can list
your mailboxes, then revoke the old key. See
[Rotating keys](/docs/authentication#rotating-keys). A revoked key stops working
in Muse at once.
