For the complete documentation index, see llms.txt. This page is also available as Markdown.

SMS Compliance & Deliverability

Registering your SMS number, staying compliant with TCPA and carrier rules, and troubleshooting when messages don't send.

Sending SMS through Gleantap has three parts: the right number, carrier registration, and compliant content. Get all three right and your delivery rate stays high. Get one wrong and messages fail, numbers get flagged as spam, or carriers suspend sending outright.

This page covers what to know and what to do. For the initial setup of your number and opt-in messages, see Configure SMS first.


SMS number types

Gleantap supports three number types. Which one is right for you depends on your business and how much volume you send.

Number type
Format
Best for
Registration required

10DLC (10-Digit Long Code)

Standard US 10-digit number, e.g., (512) 555-0123

Most single-location studios and gyms in the US. Cheapest per-message, decent throughput after registration

Yes β€” brand + campaign registration

Toll-free

1-800/833/844/855/866/877/888 number

US businesses that want a memorable number, or that need faster provisioning while 10DLC registration is pending

Yes β€” toll-free verification

International long code

Local number in the country you're texting into

Studios outside the US (UK, Netherlands, Australia, Denmark, UAE, Lebanon)

Varies by country

Short codes (5-6 digit numbers like 313131) are not supported directly today. If you need a keyword-triggered opt-in campaign, you can achieve the same effect with a 10DLC number β€” see Keyword-triggered opt-in below.


Registering your number

US 10DLC and toll-free numbers must be registered with the carriers before they'll reliably deliver. Unregistered US numbers get filtered aggressively β€” sometimes silently β€” as spam.

Registration is self-serve.

  1. Click the gear icon at the top-right β†’ Configure Numbers.

  2. Find your number and click Verify next to it.

  3. Fill in the registration form (business name, address, use-case description, sample messages).

  4. Submit.

Timeline: toll-free verification typically approves in a few business days. 10DLC brand + campaign registration can take a week or two, and includes carrier fees Gleantap passes through. You can send during the review period, but throughput is throttled until approval lands.

If you need help filling out the form or aren't sure which fields matter, email support@gleantap.com and Customer Success can walk you through it.

What carriers are looking for

The registration form asks you to describe how you'll use SMS. Carriers reject applications that are vague or that resemble spam patterns. Some things that help approval:

  • A specific use case. "Class reminders and promotional offers for members of my yoga studio" is much better than "marketing".

  • Clear opt-in language. Say exactly how people opt in (website form, in-club signup, keyword-triggered).

  • Sample messages that include your business name and STOP instructions. e.g., Sunrise Yoga: Your 9am Vinyasa class is confirmed for tomorrow. Reply STOP to opt out.

  • A public-facing privacy policy on your website that mentions SMS use.

If registration fails

Carriers send back rejection reasons. Common ones and their fixes:

  • "Use case unclear" β€” expand the description; give a real example of when a customer would get a message.

  • "Sample messages non-compliant" β€” add your business name and STOP instructions to every sample.

  • "No privacy policy" β€” add one to your website that explicitly mentions SMS.

  • "Business info doesn't match" β€” the business name and address you submitted must match your legal registration exactly.

Resubmit through Configure Numbers β†’ Verify. If you're stuck, contact support.


In the US, the Telephone Consumer Protection Act (TCPA) governs commercial SMS. The short version:

  • You must have prior express consent before texting anyone marketing content. Consent means an active opt-in β€” a checkbox that says "I agree to receive SMS from Sunrise Yoga," a keyword texted to your number, a signature on an intake form, etc.

  • Consent doesn't transfer. If someone gave their number to your CRM to book a class, that's not automatic consent for marketing SMS.

  • Every message needs an easy way out. STOP must always work. HELP must always return support info.

  • Quiet hours are law, not just etiquette. Sending outside of 8am–9pm in the recipient's timezone risks TCPA violations. See Quiet Hours below.

Gleantap enforces STOP/HELP handling automatically, and Quiet Hours by default block sends outside your configured window. But the burden of having consent in the first place is on you.

Outside the US, similar rules apply (CASL in Canada, GDPR in the EU, Spam Act 2003 + the 2025 amendments in Australia). Local nuances matter β€” if you're sending to non-US recipients, check your country's requirements before you scale up.


Content restrictions β€” SHAFT-C

US carriers block or filter messages that contain content in six restricted categories, collectively called SHAFT-C:

  • Sex

  • Hate speech

  • Alcohol (for unregistered senders; regulated alcohol senders need age-gating)

  • Firearms

  • Tobacco / vaping

  • Cannabis / CBD

Even legitimate businesses hit SHAFT-C filters unintentionally β€” a wellness studio mentioning CBD, a bar's happy-hour promo, a gym referencing supplements. Some rules of thumb:

  • Don't mention these categories unless your registration explicitly says you will and you've age-gated where required.

  • URL shorteners (bit.ly, tinyurl) trigger extra filtering. Use your own domain or Gleantap's built-in link generator.

  • All-caps, excessive emojis, or "URGENT!!!" style formatting looks like spam and can trip filters.

  • Public URL redirects to gated content (age-gated pages, etc.) will get flagged if the underlying content is SHAFT-C.

If a carrier flags a specific campaign, you'll see failed delivery reports for a subset of your recipients. That's a signal to review the content.


Opt-in flows

Gleantap supports several opt-in patterns. Configure them under gear icon β†’ Configure SMS (see Configure SMS for the full setup UI). The high-level options are:

Single opt-in

The contact consents once (form checkbox, in-person signup, or keyword) and starts receiving messages. Simple, fast to grow a list. Legal if consent language is clear.

Double opt-in

The contact opts in once, then receives a confirmation SMS asking them to reply YES (or another opt-in keyword). Only after that reply are they added to your active list. Slower list growth, but a stronger legal record and better engagement rates.

Keyword-triggered opt-in

Publish a keyword and ask people to text it to your number. Anyone who sends the keyword is opted in and gets an auto-response.

Example: print "Text BOWLING to (512) 555-0123 for 10% off your next class" on flyers. When someone texts BOWLING, they're opted in and receive your discount message.

To set this up:

  1. Go to Campaigns β†’ Keyword Campaigns and create a new campaign. See Keyword Campaign.

  2. Set the keyword (e.g., BOWLING) and the auto-response with the discount details.

  3. Publish. The keyword is now active on your SMS number.

Keyword matching is case-insensitive and matches the whole message β€” so texting bowling, BOWLING, or Bowling all trigger the campaign, but I want BOWLING info does not.

Note on short codes: true short codes (like 313131) require carrier provisioning and aren't offered today. Use a 10DLC or toll-free number as the destination for keyword campaigns instead.


Quiet Hours and frequency caps

Quiet Hours block automated SMS sends during time windows you configure. Set them under gear icon β†’ Configure SMS. Default is 7:30pm–9am. Legal recommendation is at least 10pm–4am; better is 9pm–8am aligned with TCPA.

Messages queued during quiet hours are held and released when quiet hours end. Manual sends from Inbox are not affected β€” quiet hours apply to automated campaigns and flows.

Frequency caps limit how many SMS messages a single contact receives across all your campaigns:

  • Max SMS per day per contact β€” hard cap on daily sends

  • Max SMS per week per contact β€” hard cap on weekly sends

If a contact would exceed a cap, subsequent messages are queued rather than dropped. Useful if a contact is in multiple flows/campaigns firing on the same day.


Troubleshooting

"Why are all my SMS messages failing?"

Walk through in order:

  1. Is your number registered? Unregistered 10DLC / toll-free numbers get filtered by carriers. Check Configure Numbers β€” if the status isn't "Verified", registration is the problem. See Registering your number.

  2. Is the number suspended? Twilio can suspend numbers that receive high spam complaint rates. Look for a suspension notice on the Configure Numbers page or in an email from Gleantap. If suspended, contact support.

  3. Is the message being sent during Quiet Hours? Automated sends during quiet hours are queued, not sent. Check the campaign send time.

  4. Does the content trigger SHAFT-C? Review the message for restricted categories. Even a passing mention (of alcohol, cannabis, etc.) can filter to zero delivery.

  5. Is the destination number valid and opted in? Check the contact profile β€” a number flagged undeliverable stays suppressed. See Understanding Suppression.

"My number shows up as 'Likely Spam' on recipients' phones"

This happens when a number accumulates spam complaints or when carriers detect unregistered/misregistered traffic.

Steps:

  1. Confirm registration is complete. Unregistered numbers get flagged first. Configure Numbers β†’ Verify.

  2. Audit recent content. Review sent campaigns from the past 30 days. Are they compliant (opt-in language, STOP instructions, no SHAFT-C content)?

  3. Contact support. For a number that's already flagged, you may need to submit a re-registration or switch to a different number. Support can help evaluate.

  4. Prevent recurrence β€” review Best Practices for SMS.

"Twilio suspended my number β€” how do I reconnect?"

Twilio suspensions require dispute or replacement:

  1. Email support@gleantap.com with the suspended number and a summary of what happened.

  2. If the suspension was for cause (spam complaints, non-compliant content), we'll usually recommend a new number and help you migrate.

  3. If you disagree with the suspension, we can help file a review with Twilio.

While a number is suspended, no sends will complete. Any queued campaigns will fail until the number is restored or replaced.

"I want to send SMS to Australia (or another country outside the US)"

International SMS is supported via country-specific numbers we provision on your behalf.

  1. Email support@gleantap.com with the country you want to send to.

  2. We'll provision a local long-code number and configure the necessary registration for that country.

  3. Note: some countries have stricter rules than the US. Australia's 2025 SMS Sender ID Register requires additional registration; the EU's GDPR has its own consent framework; Canada's CASL has explicit-consent requirements.

Supported countries today: UK, Netherlands, Australia, Denmark, UAE, Lebanon (plus US and Canada). Other countries: reach out to support and we'll assess feasibility.

"How do I set custom opt-in / opt-out keywords?"

Under gear icon β†’ Configure SMS, add your custom keywords. Defaults:

  • Opt-in: START, JOIN

  • Opt-out: STOP, UNSUBSCRIBE

You can add custom keywords like YES, BEGIN, END, CANCEL. STOP and HELP are always honored regardless of your configuration β€” carriers require this. Matching is case-insensitive and matches the whole message.


  • Configure SMS β€” initial SMS setup and opt-in wording

  • Keyword Campaign β€” how to set up keyword-triggered campaigns

  • Best Practices for SMS β€” general guidance for engagement

  • Understanding Suppression β€” why a contact might be blocked from SMS sends

Was this helpful?