Skip to main content
All tools

Case Study

Email Approvals

Get stakeholder sign-off on campaign emails without the zip file.

Email Approvals interface
EvidenceCase Study

The problem

Before every major send, someone had to get approval from people who weren't in HubSpot.

The old process: send yourself a test email. Screenshot every version. Drop them in a folder. Zip it. Email the zip to the right people. Wait for feedback to come back however it came back — email, Slack, a hallway conversation — then track down who had actually approved and who was still outstanding.

Then do it again if anything changed.

It was 2026 and we were approving marketing emails like it was 2009.

How to think about this problem

Approval processes fail when the feedback lives everywhere.

One person replies to an email. Someone comments in Slack. Someone gives verbal approval. Someone asks for a change in a meeting. And then, right before send, nobody can answer the only question that matters:

Are we actually approved?

The old process was not broken because people were bad at approving emails.

It was broken because the approval state had no home.

That is the pattern I look for.

If a decision matters, it needs a place to live.

What it does

Load the campaign. Generate a shareable link. Anyone with the link can see every email rendered exactly as it will look in an inbox — no login required. They approve or request changes directly on the page. The moment they do, a Slack notification fires automatically.

No zip files. No screenshot folders. No “did you get my email?” No manual approval tracking.

How it works

Campaign URL in → select the emails → generate approval link → share it → stakeholders see every email rendered in full → they approve or request changes on the page → Slack notification fires automatically → approval history logged in one place.

  1. 01Campaign URL
  2. 02Generate link
  3. 03Share
  4. 04Stakeholders approve
  5. 05Slack notification fires
  6. 06Done

Why it's helpful

What used to take an hour of screenshot logistics is now one link and a Slack message. Stakeholders don't need a HubSpot login. Feedback lives in one place. And nobody has to ask “are we approved to send?” because the answer is right there in the approval history.

See it

Screenshots and a walkthrough coming soon.

Under the hood

Python / Flask, HubSpot API, Slack webhooks, deployed on Railway.