Made self-serve safe, so brands paid for what Shopify gave free.
Plan the failure before the launch.
Hero image: status tag cycling Draft → Pending approval → Active over the CSM review page
tl;dr
- Problem
- Brands wanted to send order and subscription texts through Attentive, and Shopify offered the same thing for free. To compete, clients needed to edit their own messages, but one promo line in a transactional text could break carrier rules and put the brand’s shortcode at risk.
- Solution
- A self-serve builder with approval designed in: clients edit freely, changes go to their CSM for a quick compliance check, and every journey state is clear to both sides.
- Results
- 230 brands chose it over Shopify’s free texts, 15+ switched from Shopify, and the product grew to 230 live clients and over 1M texts a month within three months of launch.
What I did
- Laid out three ways to keep clients compliant and recommended approval over locking clients out
- Designed both sides of the approval loop: the client who submits and the CSM who reviews
- Mapped every edit, approval and cloning path before build so no state was a surprise
- Iterated on beta feedback from clients and CSMs before launch
Defining the problem
Demand was already there. 25 of Attentive’s top 28 Shopify clients were sending order texts, mostly through Shopify’s free built-in tool. Clients wanted three things from them: a better post-purchase experience, fewer support tickets about orders, and a little revenue on the side.
Winning them over meant offering what Shopify didn’t, starting with reporting and one shortcode for all of a brand’s texts. But a proof of concept had shown the catch: only internal teams could edit messages, which was slow for clients and costly for CS.
Opening editing to clients carried real risk. Carrier rules (CTIA) and the TCPA treat transactional texts as strictly informational. One coupon in an order update sent to a transactional-only subscriber could get a brand’s shortcode shut off or invite a lawsuit.
Even if we lose a little money to create the best customer experience, I’m all for it.
Alex, Respawn
Diverging on solutions
The core question: how much control can clients have before the risk becomes ours? With my PM, I mapped three paths and sketched the flow for each.
| Option | Compliance risk | Client experience | Cost to CS |
|---|---|---|---|
| Only internal users edit | Very low | Slow; every change is an email | High |
| Clients edit, changes need approval | Very low | Full flexibility, short wait | Low |
| Clients edit, copy is restricted | Some | Flexible, but rules feel arbitrary | None, but ongoing eng work |
I recommended approval. It kept risk as low as locking clients out, gave them full control of their copy, and turned a quick CSM check into the safety net. It also left room to tighten things later: we designed a per-company setting that could require approval always, never, or only when copy matched a list of promo words.
Converging on solutions
Planning for every way it could go wrong. Before handoff, I mapped nine edit paths, one for each journey state (active, inactive, draft) crossed with each approval state (pending, changes required), plus cloning. Each one needed a clear answer to “what happens to the live message while this is in review?”
A status system both sides could read. Every journey carries two tags: where it stands (active, inactive, draft) and where it is in review (pending, declined, changes not yet active). Each tag has a tooltip in plain words that says what happens next and links to the compliance guidelines.
Designing for the reviewer, too. Clients submit with a short explanation of why review exists. CSMs get an alert and land on a review page with the guidelines pinned, the message one click away, and Approve and activate or Reject.
What beta changed.
- Clients found the “Draft” tag confusing on journeys that were already live, so we replaced it with “Changes unactivated.”
- CSMs missed review requests buried in a shared Slack channel, so we added personal alerts by email or Slack.
- Clients wanted to reach shoppers who’d opted into both marketing and order texts, so journeys gained a branch by subscription type. Promo content goes only to those who agreed to it.
It’d be awesome if we could get tagged automatically to check these journeys out instead of sorting through the channel.
CSM, beta feedback
Results and next steps
The Shopify beta cleared every exit goal, and the product launched on schedule in February 2021.
| Beta goal | Target | Result |
|---|---|---|
| Live clients | 25 | 47 sending (15+ switched from Shopify) |
| Clients planning to pay | 75% | 100% |
| Client satisfaction | 4/5 | 4.9/5 |
| Opt-out rate (guardrail) | under 0.5% | 0.33% |
| Revenue per message | above $0 | $1.53 |
The approval step held up from both sides. CSMs rated it 4.2/5, and over 85% said they felt confident reviewing journeys for compliance.
Why clients paid instead of using Shopify’s free option: reporting they couldn’t get from Shopify, order texts from the same number as their marketing texts, a growing list of transactional subscribers, and a little revenue per message. My approval flow is what made it possible to offer all of that self-serve.
Three months after launch: 230 live clients (11% of Shopify clients), over 1M texts a month, and about $2.75 in revenue per message.
I didn’t get any metrics from Shopify, and it is great to see these with Attentive.
Hunter, Barbell Apparel
Transactional is working well, it’s actually reducing the feedback we’re getting from customer service.
Elton, LA Apparel
Next steps
- Add the triggers clients asked for most: out for delivery and delivered
- Let CSMs approve without activating, and skip review on their own edits
- Turn on promo-word approval only if review time for CSMs grows
- Show transactional and marketing subscribers separately