# Per-recipient links: one private link per person, and an alert when they open it

> Give each client their own private link to the page your agent built. See exactly who opened it, get an email when they do, and add a passphrase, an expiry or revoke it.

A single public link tells you nothing once it gets forwarded. With Outbox you send one link per person: every open is recorded under that person's name, you get an email the moment they open it, and you can switch off one link without touching the others.

## What a per-recipient link is

Your agent publishes a page once: a proposal, a monthly report, a technical write-up. Then, instead of one shared URL, you create a separate share link for each person who should read it, labelled with their name (up to 80 characters, for example `Laura · Acme`). Everyone sees the same page; each link is its own key to it.

Because every link belongs to one person, every open is recorded under that name. The page's opens read `link:Laura · Acme` and `link:Tom · Acme` instead of an anonymous counter, so you know which of the three stakeholders actually read the proposal before the call.

## What you control on each link

| Control | What it does | Default |
| --- | --- | --- |
| Recipient name | Labels every open through the link with that person's name | Optional |
| Open alert | Emails whoever created the link when it is opened (at most once per link, per person, per day) | On; you can turn off open emails in your email preferences |
| Not-opened reminder | One email if the link is still unopened after the hours you choose (1 to 336) | 48 hours when the link names a recipient |
| Expiry | The link stops working after 1 to 365 days, or never | 7 days |
| Renew on open | Each open pushes the expiry forward, so an active reader is never locked out | Off |
| Passphrase | The reader types it before seeing the page (4 to 256 characters, stored only as a hash, with a limit on wrong attempts) | Off |
| Revoke | Kills that one link immediately; the page and every other link keep working | Anytime |

## See exactly who opened it

In the web app, Library → What I share lists every link with how many times it was opened and when, or "not opened yet". Opens are counted once per person per day, so a reader who reloads the page doesn't inflate the number.

Your agent can answer the same question in the conversation. "Did the client open the Q3 report?" reads the page's opens (`GET /api/u/<user>/<slug>/views`), and "who hasn't opened the proposal?" lists the links nobody opened yet (`GET /api/share?unopened=1`). An agent key can read the opens of pages it is allowed to read; it never sees anyone else's.

What Outbox does not do: it records opens, not page-by-page engagement analytics, and it uses no third-party trackers on the pages you share.

## How to create one

The fastest way is to ask the agent that wrote the page. With the [Outbox skill](https://out-box.dev/en/agents/claude-code) or the [MCP server](https://out-box.dev/en/mcp) installed, say: "Publish this proposal as clients/acme/proposal and give me a link for Laura at Acme with a passphrase, valid for 14 days." Under the hood that is one API call:

```
curl -X POST https://api.out-box.dev/api/share \
  -H "Authorization: Bearer $OUTBOX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"resource":"clients/acme/proposal","resourceType":"post",
       "recipient":"Laura · Acme","expiresInDays":14,
       "passphrase":"a-long-phrase-you-send-separately"}'
```

The response carries the `url` to send and the link's `token`. Send the passphrase through a different channel than the link. Agent keys need the `share` verb to create links, so a key scoped to publishing only can't hand out access by itself.

Prefer clicking? In Library → What I share you can create a link with a passphrase and an expiry for any page. Team workspaces also let each member create named links for the company's pages from the team panel.

## Update the page, keep the links

When the client asks for changes, the agent republishes to the same slug. Every link keeps working and shows the new version; Outbox keeps the original plus the 14 most recent versions, with a diff and one-step rollback. If a passphrase leaks you can rotate it and the link itself stays the same.

## Where per-recipient links fit

- A proposal that goes to the champion, the CFO and procurement: three links, three names, and you know who to follow up with.
- Monthly [client reports](https://out-box.dev/en/use-cases/client-reports) your agent writes: one link per client contact, with a reminder if nobody opens it in two days.
- Investor or board updates that should stop working after the meeting: a 7-day expiry and a passphrase.
- Agency deliverables reviewed by several people on the client side: revoke the link of someone who left the project without re-sending to everyone else.

## How it compares

A Claude artifact's public link has no passphrase, no expiry and no record of who opened it (see [Outbox vs Claude Artifacts](https://out-box.dev/en/guides/vs/claude-artifacts)). DocSend tracks per-link views too, but it is built around PDFs and slides, not the HTML your agents produce ([Outbox vs DocSend](https://out-box.dev/en/guides/vs/docsend)). Outbox puts the per-person link, the open alert and the agent integration in one place.

## Frequently asked questions

### Do recipients need an Outbox account?

No. They open the link in any browser. If the link has a passphrase, they type it once before the page loads.

### If I send the same link to three people, can I tell who opened it?

No, and that is the point of per-recipient links. Opens through a link without a name are counted, but not attributed. Create one link per person to know who read it.

### What happens when a link expires or I revoke it?

It stops working right away. The page stays in your library, private, and any other links to it keep working.

### Can my agent create the links for me?

Yes. With a key that has the `share` verb, the agent can create named links, set a passphrase and an expiry, and later tell you who opened them.

### Which plans include it?

Share links, passphrases, expiry and open alerts are available on every plan, including Free. See [pricing](https://out-box.dev/pricing).

## Related

- [Share AI-built client reports and proposals](https://out-box.dev/en/use-cases/client-reports)
- [Outbox MCP server](https://out-box.dev/en/mcp)
- [How to share a Claude artifact with a password](https://out-box.dev/en/guides/share-claude-artifact-with-password)
- [Outbox for AI assistants (fact sheet)](https://out-box.dev/en/ai)

---

Updated 2026-10-11. HTML version: https://out-box.dev/en/per-recipient-links
