The company
Northbeam is a 40-person digital agency running paid media, branding, and web projects for ~25 active clients. Every engagement produces deliverables: strategy decks, media plans, design previews, and performance reports — 120+ documents a month.
The problem
Deliverables shipped three ways, all wrong:
- Email attachments hit mailbox limits (one 90MB brand deck bounced three times), versioned into confusion ("final_v2_FINAL"), and lived in inboxes forever — a client's old strategy deck is still sitting in a former employee's mailbox.
- Shared drives were the opposite failure: too open. Folders intended for one client were visible to anyone with the link, and access never expired.
- Generic file share links (the "anyone with the link can view" kind) offered no gate, no expiry, no visibility into whether the client had even opened the file.
Two real incidents drove the change: a deck for a competing client was accidentally shared with the wrong account, and a media plan link circulated to a vendor who was not supposed to see rates.
The requirements
- Deliverables must be gated — a password the client can't miss, delivered separately.
- Everything must expire — decks for a pitch that already happened should stop working on a date.
- The team needs visibility — did the client open it? When? From where?
- No new tools for clients — the gate must be a web page, not an app.
- Bulk-friendly — 120+ deliverables a month means per-document setup must take seconds.
The solution
Northbeam standardized on yas.sh password-protected links in one sprint.
The delivery playbook:
- Project lead uploads the deliverable to the client's own drive (still the storage layer — yas.sh is the access layer).
- A short link is created pointing at the file, with a password and an expiry tied to the milestone:
curl -X POST https://yas.sh/api/v1/links \
-H "Authorization: Bearer yas_live_..." -H "Content-Type: application/json" \
-d '{"originalUrl":"https://drive.client.com/final-deck-q3","customAlias":"acme-q3-deck","password":"<generated>","expiresAt":"2026-09-30T23:59:59Z","title":"Acme Q3 Strategy Deck"}'
- The client gets the link by email; the password arrives by Slack DM or SMS — the two-channel rule.
- When the client opens it, the gate page asks for the password, verifies it (bcrypt, rate-limited), and redirects to the file. The open is recorded in analytics.
- On the expiry date, the link returns 410 Gone — the deliverable's public life is over by design.
The automation layer: account managers use the dashboard for one-off decks and a saved script for recurring reports (weekly performance PDFs get a fresh link every Friday, expiring the following Friday — a rolling window that never leaves a report publicly reachable for more than a week).
Results after six months
| Metric | Before | After |
|---|---|---|
| Client deliverable leaks | 2 incidents in 12 months | 0 in 6 months |
| Time per deliverable setup | ~6 min | ~45 seconds |
| Expired-but-live client files | dozens, unknown | none — every link has an expiry |
| "Did the client see it?" | guesswork | data: opens, timing, device |
| Attachment bounce tickets | 3–5/month | 0 |
| New tools for clients | — | none (web gate page) |
The two-channel password rule took a week to become muscle memory. The expiry policy eliminated the "client asked for the old deck" class of requests entirely — the answer is a fresh link, not a hunt through a shared drive.
What the team says
"We went from hoping files stayed private to designing their death. Every deliverable now has a handshake (password), a lifespan (expiry), and a receipt (analytics). The clients actually like it — the gate feels professional, and the 410 page tells them the link is done instead of leaving them with a broken URL."
— Operations Director, Northbeam Agency
Lessons for agencies
- Two channels or nothing — link by one channel, password by another; this single rule prevented every future leak.
- Expiry is a feature clients understand — "this link is valid until the 30th" is clearer than any permission matrix.
- Visibility replaces anxiety — open timestamps answer the question every account manager asks twice a week.
- Scripts beat dashboards at volume — recurring deliverables are a cron job, not a ritual.
Build the same playbook
The pieces are free to start: password-protected links, expiry, and the API for the automation layer. The password links guide documents the security model Northbeam relies on.
