Per-recipient links: one private link per person, and an alert when they open 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 or the MCP server 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 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). DocSend tracks per-link views too, but it is built around PDFs and slides, not the HTML your agents produce (Outbox 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.
Related
Updated 2026-10-11. Markdown version