Skip to content
Y
YAS.SH
Case Study

Northbeam Agency: Password-Gated Client Links That Never Leak

How a 40-person agency replaced email attachments with password-protected, expiring yas.sh links for 120+ client deliverables a month.

yas-team4 min readagencysecuritypassword
Northbeam Agency: Password-Gated Client Links That Never Leak
Featured imageNorthbeam Agency: Password-Gated Client Links That Never Leak

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:

  1. Project lead uploads the deliverable to the client's own drive (still the storage layer — yas.sh is the access layer).
  2. 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"}'
  1. The client gets the link by email; the password arrives by Slack DM or SMS — the two-channel rule.
  2. 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.
  3. 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

  1. Two channels or nothing — link by one channel, password by another; this single rule prevented every future leak.
  2. Expiry is a feature clients understand — "this link is valid until the 30th" is clearer than any permission matrix.
  3. Visibility replaces anxiety — open timestamps answer the question every account manager asks twice a week.
  4. 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.

Frequently asked questions

Why did Northbeam move away from email attachments?

Attachments hit mailbox size limits, versioned poorly, and lingered in inboxes forever. Gated links with expiry gave them delivery with a lifecycle.

How is the password delivered?

Two channels: the link by email, the password by Slack DM (or SMS for non-Slack clients). Separate channels are the rule for anything sensitive.

What did the audit trail look like?

Bot-filtered click counts per deliverable, device mix, and open timing — enough to know whether and when the client actually opened the deck.

Was this helpful? Share
🍪 Cookies & privacy. yas.sh uses only essential cookies to keep you signed in and remember your preferences. We do not run third-party trackers. See our cookie policy and privacy policy.
Settings