Last week, our SMS signup flow started getting rejected. Twilio error 30923: "consent-not-required-for-service." The message was clear—we weren't being explicit enough about what users were opting into.
The Problem
SMS compliance isn't optional. Carriers and platforms like Twilio enforce strict consent requirements to prevent spam and protect users. Our original signup form had a checkbox for SMS updates, but it didn't explicitly state that receiving messages was optional and not required to use the service.
That distinction matters. If users think they must opt in to access your product, you're not getting genuine consent—you're creating a barrier. And Twilio caught it.
What We Changed
We updated the SMS signup form in two places. First, we added a clear disclosure in the hero section: "SMS updates are optional and not required for service." Second, we changed the checkbox label from a simple agreement to an explicit opt-in: "I agree to receive SMS updates (optional, not required for service)."
The change is small, but the impact is real. Users now understand they're choosing to receive messages, not being forced. And Twilio's compliance engine is happy.
Why It Matters
This isn't just about avoiding rejections. It's about building trust. When you're transparent about what's optional and what's required, users make informed decisions. They're more likely to stay opted in because they chose to be there.
Compliance requirements exist for a reason. They protect users from being spammed and companies from cutting corners. Meeting them isn't a burden—it's a forcing function for better UX.
What's Next
We're auditing all user-facing forms for similar clarity issues. If one consent flow was ambiguous, others might be too. We're also documenting these compliance patterns in Strug Ops so future forms get it right from the start.
The fix was straightforward, but the lesson is bigger: compliance and user experience aren't in conflict. When you're honest about what you're asking for and why, both improve.