OpenTree DashboardSign in

$ set_email_gate

Give a client the deliverable, not a login

A private link they open in a browser: no account, no portal invitation, no password reset three weeks later. You keep the ability to gate it, revoke it, and see whether they read it.

The problem with every client portal

The portal is for you, not for them. From the client's side it is one more account, one more password, and a place they have to remember exists — for a report they were going to read once. Meanwhile the alternative, an emailed attachment, cannot be revoked, cannot be corrected, and lands differently in every mail client.

What to send instead

One link. It opens privately in whatever browser they have; nothing to install, nothing to join. You decide what stands in front of it.

publish_html({
  content: "<h1>Acme · Weekly status</h1>…",
  expires_in_hours: 720,
  allowed_email_domain: "acme.com"
})

Pick the gate that matches the relationship

GateRight when
Unguessable link onlyAn ongoing thread with someone you talk to weekly.
PasscodeYou have a side channel — a call, a contract, an existing thread.
Work-email gateThe audience is a company, and you do not know which person will open it.
Burn after readA one-time handover.

Put your own domain in front of it

A deliverable on share.yourstudio.com reads as your work. Two DNS records and a verification call — custom domains.

Let them comment on it

Enable the toolbar and the client can leave a comment attached to the exact number they are questioning, without an account. You read it back as structured data — the feedback loop.

Know whether it landed

Opens and unique viewers, per page. Did they read the report before the call? is a question you can now answer instead of guessing:

curl https://read.botook.ai/sites/SITE_ID/engagement \
  -H "Authorization: Bearer otr_live_YOUR_KEY"

How it looks when they paste it

Client work usually gets forwarded — into a group chat, into a thread with someone who was not on the call. What the chat app renders is a preview card built from a real screenshot of the current revision, so the person who arrives second sees the deliverable rather than a bare domain name.

A page behind a password or an email-domain gate is never photographed: the card falls back to a plain placeholder, because a preview that leaked the first screen would defeat the gate. If you take a gate off later, the screenshot is retaken on its own, without waiting for someone to request it.

Correcting a mistake after you sent it

This is where a link beats an attachment permanently. Fix the page, replace it in place, and the client refreshes the same URL:

update_site({ site_id: "…", content: "<!doctype html>…" })

Ending the engagement

Delete the page, or let the expiry do it. Give each client their own share token and you can close one relationship without disturbing another.

A weekly rhythm

  1. The agent generates the report from whatever the source of truth is.
  2. It replaces the content behind the same link — no new URL, ever.
  3. You send one line in the existing email thread.
  4. The client opens it; you see that they did, and read what they flagged.

What the client never has to do

Compared with the alternatives

Reader frictionRevocableCorrectable
Email attachmentLowNoNo
Shared document toolAn accountYesYes
A page in NotionPublic link, or an accountPartlyYes
A private link hereNoneYesYes, in place

Multiple stakeholders

Mint a share token per audience — one for the client, one for their agency, one for your own review channel. Each has its own counters and its own revocation.

curl -X POST https://read.botook.ai/share-tokens \
  -H "Authorization: Bearer otr_live_YOUR_KEY" \
  -H "content-type: application/json" \
  -d '{"site_id":"SITE_ID","label":"acme-exec","max_views":50}'

Questions

Can the client forward it?

They can forward the link. Whether that gets anyone in depends on the gate — a work-email gate stops a forward outside the company.

Can I see who opened it?

By count, not by name. With an email gate, the confirmation is your evidence.

Can they download it?

It is a web page; they can save it like any other. Gates control access, not what a legitimate reader does afterwards.

Keep reading