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

# Reply to act

> Answer an Attensira email by replying or with its buttons: the words a reply understands, what a button does, what it does, what a reply can never do (raise autonomy, raise spend, change connections, change where a change goes) and why, and what you get back.

## Which emails you can answer

These emails carry a reply address of their own. A reply belongs to:

| Email | A reply belongs to |
| - | - |
| The [morning brief](https://docs.attensira.com/agent/morning-brief.md), daily and Monday editions | That day's [Today thread](https://docs.attensira.com/agent/today.md), the same conversation the app opens on |
| An [Inbox](https://docs.attensira.com/agent/inbox.md) item waiting on you, or an approval about to expire | The decision that email is about |
| A [win](https://docs.attensira.com/agent/wins.md), the day's message or the [win alert](https://docs.attensira.com/account/alerts.md) | The win email it came from |
| A [rival alert](https://docs.attensira.com/account/alerts.md) | The alert: "counter it" (or "yes") puts the counter-move in your queue |
| The result of a [check](https://docs.attensira.com/measure/before-and-after.md) after a change went out | The change that email is about |

Every other email (welcome, credits, account notices, [client reports](https://docs.attensira.com/agencies/client-reports.md)) has a **no-reply** address as its Reply-To. Mail sent to it is not read; everything in those emails can be answered in the app.

No reply goes to a person's inbox, ours included.

## What the reply address is

The Reply-To of an answerable email looks like `r+<code>@reply.attensira.com`. The code is unique to that email and to you:

* It is signed. An edited or made-up code is refused.
* It names the one email it came from, the workspace, and who it was sent to. A teammate's copy of the brief has a code of its own, so a reply always counts as the person it was sent to.
* It is valid for **14 days** from when the email was queued. After that, answer in the app.
* It carries no permissions of its own. A reply can only do what you could do in the app, and anything irreversible still needs your explicit yes, as everywhere else ([approval](https://docs.attensira.com/agent/approval.md)).

Forwarding the email forwards the reply address with it, but not the right to answer it (see below). To share a decision with a teammate, share it from the app instead.

## Or press a button

The [morning brief](https://docs.attensira.com/agent/morning-brief.md) and the [Inbox email](https://docs.attensira.com/agent/inbox.md#one-email-a-day-at-most) also show their decisions under **Decide from here**, at most three. In the brief they carry the numbers a reply uses ("2 yes"):

| The decision | Its buttons |
| - | - |
| Can be undone | **Approve** and **Decline**, and **Open in the app** |
| Can't be undone | **Decide this one in the app** only. No button in an email approves it. |
| An approval about to expire, or a change whose kind we cannot read | **Decide this one in the app**. The email cannot tell whether it can be undone, so it is held to the same bar. |
| Something only you can do ("Connect GitHub") | **Decide this one in the app**. A button labelled Approve would not say what it does. |
| A group of Inbox items ("Connect GitHub · 7 waiting") | No buttons: answer it in the app, where every item in it is in view. In the Inbox email, only changes get buttons. |
| Already answered when the email went | No buttons. |

Every button works the same way:

* **Opening it does nothing.** It opens a page that says what it will do, with one button to confirm. Mail scanners open every link in an email, so opening a link never acts.
* **Confirming acts once, as you.** It is the same answer as pressing **Approve** or **Decline** in the app, held to the same [approval rules](https://docs.attensira.com/agent/approval.md). Pressing it again never acts a second time: within a day it shows the first result again, and after that it says **Already answered**. Pressing it while the first press is still being carried out says so and does nothing more.
* **Already answered.** If the decision was answered before you pressed (in the app, by the other button, or by a reply), the page says **Already answered**, with who and when where it knows, and nothing changes.
* **Expired.** A button works for **14 days** from when the email was queued. After that its page says it has expired, changes nothing, and links to the decision in the app.
* **Yours.** Each person's copy of an email has buttons of their own, and they work only while that person is still a member of the workspace. A button acts as the person it was sent to, whoever presses it, so forwarding the email hands its buttons on: to share a decision, share it from the app instead.
* **Only where a button confirms.** The note "Each button opens a page that asks you to confirm" appears only when the email has such a button; a link that opens the app opens the app.
* **Counter it.** A [rival alert](https://docs.attensira.com/account/alerts.md#counter-a-rival) has one button, **Counter it**: confirming it puts one counter-move in your queue as a change, which waits for your yes like any other. A rival alert has nothing to decline.
* **Never more room.** A button only approves or declines the decision it names, or counters the rival an alert names. No button raises an autonomy level, a budget, a cap or spend, or touches a connection or a key.

## Who can reply

Only the person the email was sent to. A reply counts when all of these hold:

* It comes **from the address the email was sent to**: yours for your copy, a teammate's for theirs. A teammate who has left the workspace can no longer answer their old copies.
* Your mail provider **vouches for it**: the reply passes the standard sender checks (SPF and DKIM) for your address's domain. Gmail, Outlook, Apple iCloud and every business mail service do this for you.
* It is sent to the email's own reply address within its 14 days.

A reply that fails any of these is ignored. It is not forwarded to anybody, and nothing is done with it, so a forwarded email or a spoofed sender cannot act on your workspace. Answer in the app if a reply of yours is not picked up.

Only what you write above the quoted email counts: the quoted message, your signature and footers such as "Sent from my iPhone" are left out. The same reply arriving twice counts once.

## What you can write

A reply is read in one of two ways: as a **short command** on the decisions the email listed, or as **words for your agents**.

A reply is a command only when every word in it is a command word, a decision's number, or a courtesy such as "thanks" or "please". One other word makes it words for your agents, and then it approves nothing: "yes but make it shorter" is not a yes.

| You write | What happens |
| - | - |
| `yes`, `approve` | Approves the decision. The only approval that counts for work that can't be undone (see below). |
| `ship it`, `ok`, `go ahead`, `lgtm`, 👍 | Approves the decision, if it can be undone. |
| `no`, `decline`, `skip`, `not now`, 👎 | Declines it. Nothing goes out. |
| `stop`, `hold`, `veto`, `don't ship it` | A change waiting out its 48-hour window does not ship. On a brief decision still waiting on you, it is a no. |
| `undo`, `revert`, `roll back` | Takes back a change that went out and can be undone. |
| `counter it`, `counter` | On a [rival alert](https://docs.attensira.com/account/alerts.md#counter-a-rival): puts the counter-move in your queue as a change. On any other email it changes nothing and says so. |
| `1 yes 2 no` | Answers each numbered decision, in the order the email listed them. |
| `yes to all` | Approves every open decision in the email that can be undone. |
| `thanks` | Nothing. No answer is sent. |
| Anything else | Goes to your agents in the same thread (below). |

When the email listed more than one decision, an unnumbered `yes` doesn't say which one, so nothing is done and you get the options back. The same goes for words that contradict each other (`yes no`, `1 yes 1 no`): nothing is guessed.

### Work that can't be undone

Anything that cannot be taken back once it ships needs **your explicit yes for that one decision**, as everywhere else in Attensira ([approval](https://docs.attensira.com/agent/approval.md)):

* Reply `yes` (or `1 yes`, naming it). `ok`, `ship it` and a thumbs-up don't count for it.
* `yes to all` approves only what can be undone. The reply says which decisions still need their own yes.
* A button in our reply never approves it. The button opens the decision in the app.

A yes from a reply is held to the same [approval rules](https://docs.attensira.com/agent/approval.md) as a press in the app: it can only do what you could do there.

### Words for your agents

A reply that isn't a command goes into the email's thread, as your message, so your agents read it and answer there.

* **Asking for a rewrite.** When the email has one open decision and it is a change with a draft, a reply such as "make it less salesy" or "shorten the intro" rewrites that draft's open sections under your words. The rewrite is held to your [rules](https://docs.attensira.com/agent/approval.md#which-rules): a phrase on your words-to-avoid (never-say) list is never used, and a rewrite that used one is written again without it. The change still waits for your yes. Sections you already accepted are kept as they are.
* **Anything else** (a question, a note, a rewrite when the email listed several changes) is a message in the thread, and your agents answer there with their usual tools. That includes asking for work in your own words, such as "undo the pricing page change": your agents find the change and act on it as you, under the rules in [Ask for it in words](https://docs.attensira.com/agent/today.md#ask-for-it-in-words).

## What a reply can never do

Some things are never done from an email or Slack, whoever writes the reply:

| A reply asking to | Gets instead |
| - | - |
| Raise or change an **autonomy level** ("set autonomy to L4", "stop asking me") | A sentence and a link to the autonomy screen in the app |
| Raise a **budget, cap or spend**, or change your **plan** | A sentence and a link to billing in the app |
| Connect, disconnect or change a **connection** (GitHub, your CMS, Google, Slack) | A sentence and a link to Connectors in the app |
| Make an **API key** | A sentence and a link to keys in the app |
| Change **where a change publishes, who it is sent to or which lane it runs in** ("publish this to another-site.com", "send this to all contacts", "forward it to [sam@example.com](mailto:sam@example.com)", "move this to the outreach lane") | A sentence and a link to the Inbox in the app |

Why:

* **Only a person, in the app, gives agents more room.** A level is raised by you, signed in, after seeing what the step allows ([only a person raises a level](https://docs.attensira.com/agent/approval.md#only-a-person-raises-a-level)). An email can be forwarded and a mailbox can be shared, so a reply is enough to answer the decision it was about and nothing wider.
* **Money moves only where you can see it.** A higher budget or cap is set on the billing screen, never from a line in a reply.
* **Credentials go through the other service's own sign-in.** A connection is made by signing in to that service yourself, in the app. Never send a password or a key by email or Slack: we never ask for one.
* **A change's destination is set where you can see it.** Where a change publishes, who it goes to and which lane it runs in are part of the change you approve in the app. A reply can rewrite a draft's words, never where it goes.

Nothing is changed by such a reply, and nobody at Attensira is told: the link is the way to do it yourself. The same limits hold one layer down: the actions a reply turns into ([`POST /v1/actions`](https://docs.attensira.com/api/endpoints#post-/v1/actions), the same verb as `act` over [MCP](https://docs.attensira.com/mcp/tools.md)) never change autonomy, spend, connections or keys, for any caller.

## What you get back

Every reply that asked for something is answered in the same mail thread:

* **It was done.** One line per decision ("Approved: …", "Declined: …", "Stopped: …"), with an **Undo** link when one change was approved and it can be undone. The same lines are written into the thread in the app, after your reply, so the [Today thread](https://docs.attensira.com/agent/today.md) shows what you wrote and what it did.
* **It wasn't, or not all of it.** A sentence saying why (unclear, already answered, needs a plain yes, or something a reply never does), then each open decision with **Approve** and **Decline** buttons. A decision that can't be undone has a button to approve it in the app instead.

The answer itself comes from a no-reply address. To answer a decision it lists, use its buttons, or reply to the original email.

Nothing you send is routed to a person at Attensira. An answer always gives you a way to finish it yourself.

### The buttons

Each button is a link signed for you, that decision and that action, valid for **14 days**.

* **Opening it does nothing.** The page shows what it will do and a button to confirm. Mail scanners open every link in an email, so opening never acts.
* **Confirming acts once.** Pressing it again never acts a second time, and pressing it after the decision was answered somewhere else says **Already answered** and changes nothing.
* **Expired.** After its 14 days the page says the button has expired and links to the decision in the app.
* It works only while you are still a member of the workspace, and it is held to the same approval rules as the app.

## Slack

Decisions posted to Slack are answered with their **Ship** and **Not now** buttons ([Slack](https://docs.attensira.com/account/slack.md#answering-decisions-from-slack)), or by replying in the note's Slack thread exactly as you would reply to its email ([Slack](https://docs.attensira.com/account/slack.md#replying-in-a-notes-thread)): commands act, anything else goes to your agents on the same thread, and the answer comes back in the Slack thread. The same rules apply: the same approval rules, the same explicit yes for work that can't be undone, and the same things a reply can never do.

## Over MCP and the API

A reply is not a power of its own. It becomes the same calls any client makes, as you, through the door you used:

* A command is `act` on the decision (`approve`, `decline`, `stop`, `undo`, and `counter` on a rival alert): [`POST /v1/actions`](https://docs.attensira.com/api/endpoints#post-/v1/actions) and `act` over [MCP](https://docs.attensira.com/mcp/tools.md). A decision in the Today thread is answered as [`POST /v1/today/{id}/asks/{askId}`](https://docs.attensira.com/api/endpoints) answers it.
* A rewrite is `act` with `regenerate` and your words as the `instruction`.
* Words for your agents are a message in the thread, as `ask` on that thread.

The change's history records who acted and through which door (`via=email`, or `via=slack`).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.