Postscript

Postscript 2025 | Compliance Internal Tool, Onboarding, & Offer Management
B2B Product Design • Mar 2025 - Nov 2025
Postscript is an SMS marketing platform for ecommerce, backed by Y Combinator and Greylock, serving 18,000+ Shopify stores. I owned end-to-end design across compliance, onboarding, and promotions. During my time at Postscript, I delivered 10+ high-impact design solutions that accelerated product activation and significantly reduced friction across customer-facing and internal compliance workflows.
Problem
To verify SMS opt-ins for The Campaign Registry, the Compliance team must upload screenshot evidence provided by merchants and match each file to a specific opt-in instance (Source ID). This workflow is required before new merchants go live with Postscript.
Evidence uploads were handled one screenshot at a time, requiring manual lookup and matching for each Source ID. A single audit could take hours of repetitive work, creating bottlenecks that delayed merchant activation. I conducted user interviews with the Compliance team alongside Product, walking through their end-to-end verification process.
This surfaced several key pain points:
  • Uploading evidence was tedious and repetitive (no bulk actions)
  • Manually finding the screenshots and matching it with the opt-in instances (Source ID) was time-consuming and error-prone
  • Improved confidence and accuracy in file-to-source matching
Product Design
1. Bulk Uploading Files
I replaced the one-by-one upload flow with a bulk upload experience. The system supports partial success, providing clear file-level errors without blocking progress. To ensure performance and reliability at scale, I worked with engineering to define upload limits around file count and size. This approach removed repetitive actions and dramatically increased throughput for large compliance audits.
2. Automated Source ID ↔ File Name Matching
During research, I observed the Compliance team already followed consistent file-naming conventions to manually match screenshots to Source IDs. I leveraged this existing behavior by designing an automated system that extracts Source IDs directly from file names. Undetermined or ambiguous matches are flagged for user confirmation. This reduced lookup time and improved matching accuracy.
3. Auto-Approval for Internal Uploads
To reduce unnecessary compliance overhead, I designed an auto-approval system for files uploaded by trusted internal users with a @postscript.io email address. This allowed the team to focus on higher-risk reviews.
4. Modal-Based Review Experience
I explored reusing the existing table layout to display newly uploaded files, but found it introduced unnecessary complexity by mixing new uploads with previously approved evidence. Instead, I designed a modal-based experience that clearly scoped which files were being submitted. This simplified the mental model and avoided edge cases like disabling bulk uploads during pending verification.
5. Error Handling & UX Refinements
Through iteration, I added a confirmation step, improved error contrast for accessibility, and increased friction around cancellation to prevent accidental data loss.
Impact
User feedback
  • Reduced upload time from ~1 hour to minutes for typical audits
  • Eliminated bottlenecks in the file-to-approval workflow, enabling audits to be completed in one day instead of multiple days
  • Improved confidence and accuracy in file-to-source matching