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

# External approvals

> Send an approval to someone outside Thread with a no-login link, and see the decision flow back into your Inbox.

Not every decision belongs to someone with a Thread login. The account executive who owns the relationship, a partner, a stakeholder on the customer's side — sometimes they're the right person to approve a draft. External approvals let them decide from a link, verified by a one-time code, with no account and no sign-in.

There are two ways an approval reaches an outside person:

* **You send it from the Inbox** — any approval you could decide yourself can be routed out.
* **An agent requests it directly** — an agent can be instructed to seek an outside approver as part of its work, delivered by email or as a Slack DM.

Either way, the link and code are minted server-side and the decision commits through the same path as an in-app approval.

## Sending an approval from the Inbox

<Steps>
  <Step title="Open the approval">
    Find the approval in your Inbox and open its **···** menu (on the row or in the detail pane).
  </Step>

  <Step title="Choose 'Send to external approver…'">
    A dialog asks for the approver's email and, optionally, their name. Typing the address is the
    deliberate gate — this mints a live approval link to someone outside your org, so it can't fire
    by accident.
  </Step>

  <Step title="Send">
    Thread emails them a no-login approval link plus a one-time verification code. Your inbox row
    slides into the <strong>Waiting on external</strong> section, showing who it's waiting on.
  </Step>
</Steps>

<Note>
  Sending doesn't hand the decision away. The item stays in your Inbox and you can still decide it
  yourself at any time, or pick a different approver via <strong>Change external approver…</strong>.
  Whoever decides first, decides.
</Note>

## What the external approver sees

The link opens a branded approval page — no Thread login, no account creation:

1. **Verify identity.** The page asks for the one-time code from the message (or sends a fresh one to the approver's email — codes are short-lived, and a resend is one click). Only the address the approval was sent to can pass the gate.
2. **Review the item as drafted.** The page renders the full draft read-only — the email body, the proposed action, the calendar event. There is no edit surface for external approvers: the choice is approve as drafted or reject.
3. **Decide.** **Approve**, or **Reject** with a reason that goes back to the agent.

Once decided, revisiting the link shows a calm "already decided" page — a link can never commit the same decision twice.

## Slack DM delivery

When an agent is set up to deliver an external approval over Slack, the approver gets a DM instead of an email. For straightforward decisions — drafted emails, stage advances, proposed agent actions, calendar events — the DM carries **Approve** and **Reject** buttons right in Slack, plus an **Open in Thread** button to the full approval page. Richer items (CRM record writes, long-form documents) always route through the link, so nobody approves a complex change from a two-line card.

Slack delivery resolves the recipient by exact email match against your connected Slack workspace. If the person can't be found there, the request fails visibly — it never silently falls back to a different recipient.

## The pending-items page

An external approver with several open items doesn't have to dig through old emails. From any approval page, a verified approver can open their **pending items** page: every open, still-actionable item addressed to their email in your org, with the one they clicked from listed first.

The page is read-only — each item links through to its own approval page to act. The session is scoped to that verified email and expires; when it does, the approver simply verifies again. If your org has invited them to become a full Thread user, the page mentions the pending invite.

## How the decision flows back

The external decision commits through the same trust boundary as an in-app decision — nothing about the outcome is different because it came from outside:

* **On approve**, the paused agent resumes and carries out the work as drafted.
* **On reject**, the agent receives the reason and adjusts or escalates, exactly as if you had rejected it in the Inbox.
* Your inbox row leaves **Waiting on external** and resolves into your history shelves on its own — there's nothing to tidy up.

If an approval expires undecided, the link stops working and the item re-surfaces in your Inbox as an **exception**, so a stalled outside approver becomes your problem to solve rather than a silent gap.

## Related pages

<CardGroup cols={2}>
  <Card title="Working the Inbox" icon="list-check" href="/inbox/triage">
    Deciding approvals in place, and the Waiting on external section.
  </Card>

  <Card title="Motion agents" icon="robot" href="/motions/agents">
    Per-action autonomy and how agents request approvals in the first place.
  </Card>
</CardGroup>
