Opt-Out Handling
Trackly evaluates every inbound message for opt-out intent before it reaches your inbox. A matched opt-out takes effect immediately — the contact is unsubscribed and every future send to that number is blocked automatically.Detection layers
Opt-out intent is matched in priority order; the first layer to match wins. Opt-out, spam, complaint, and abuse signals always take precedence over re-subscribe (START) and HELP keywords, and are evaluated before any custom keyword auto-responses.Exact keywords
Glued STOP variants
stop is an instant opt-out — STOP2END, STOPEND, STOP2, STOPTEXTING. This catches recipients who run the words together and campaigns whose copy instructs a nonstandard keyword. (Longer sentences are not affected: “stopwatch sale today” does not opt out.)Common misspellings
STPO, STORP, STTOP, STP, STIP, SUTOP, ETOP, and ~15 more.Natural-language phrases
Obfuscated variants
st0p and sto p are normalized and caught.Spam, complaint & abuse
Matching rules
Case, spacing & punctuation are ignored
Case, spacing & punctuation are ignored
STOP, Stop!, and stop all match.Emoji reactions & iPhone tapbacks are NOT opt-outs
Emoji reactions & iPhone tapbacks are NOT opt-outs
Loved "…", 👍 to "…") are ignored — even when they quote one of your messages that contains the word STOP. Only text the recipient actually types is evaluated.Quoted & forwarded text is stripped
Quoted & forwarded text is stripped
>, “On … wrote:”, email headers), the quoted block is removed before matching, so a quoted “Reply STOP to opt out” does not cause a false opt-out. The recipient’s own added text is still checked.Compliance-first on ambiguous phrases
Compliance-first on ambiguous phrases
HELP is exact-match only
HELP is exact-match only
HELP and INFO trigger the help auto-response only when sent on their own. Conversational phrases like “please help” or “help me” are treated as normal replies.What happens on opt-out
- The inbound message is classified as an opt-out.
- The contact is marked unsubscribed (
active = false,consent_status = opted_out) with the reason and timestamp recorded. - Trackly sends the carrier-mandated opt-out confirmation reply.
- The number is added to the suppression list — all future sends are blocked, and an
unsubscribewebhook fires.
Re-Subscription
A previously unsubscribed contact can opt back in by texting a START keyword:START, UNSTOP, SUBSCRIBE, RESUBSCRIBE, OPTIN, or OPT IN. This reactivates the contact (consent_status = re_opted_in) and clears the suppression entry.
YES is intentionally not a re-subscribe keyword — it’s too common in normal conversation to safely treat as renewed consent. Re-subscription requires an explicit START-family keyword.Full opt-out & keyword reference
Full opt-out & keyword reference
Unsubscribe Reasons
Every unsubscribe records why it happened:Message Requirements
Required Elements
Every message should include:- Clear sender identification
- Opt-out instructions
Account Settings
Configure account-wide compliance text:- Go to Account Settings > Messaging
- Set Prepend text (added to start of message)
- Set Append text (added to end of message)
+1 prefix). Non-US sending lists receive the raw message without auto-applied compliance text.
TCPA Quiet Hours
Trackly enforces TCPA quiet hours for US phone numbers:- Allowed hours: 8:00 AM - 9:00 PM in the contact’s local time
- Timezone fallback chain: Contact timezone → Account default timezone → Eastern Time
- Messages scheduled outside the window are delayed to the next valid send time (not dropped)
- Transactional messages (e.g., OTP codes) can be configured as exempt from TCPA restrictions
Consent Management
Types of Consent
Documenting Consent
For each contact, track:- When they opted in
- How they opted in (web form, API, etc.)
- What they consented to
signup_method and signup_date.
Regulations
TCPA (US)
The Telephone Consumer Protection Act requires:- Prior express consent for marketing
- Identification of sender
- Opt-out mechanism
Setting Up TCPA Compliance
Configure Quiet Hours
Enable Opt-Out Keywords
Set Cooldown Periods
Record Consent
ip_address and url fields when creating contacts via API to record where and when consent was given.Test Your Setup
International Sending
When sending to non-US numbers:- TCPA quiet hours are not enforced — messages send at any time
- Message prepend/append text is not auto-applied — add opt-out instructions in your creatives
- STOP word auto-removal, spam complaint removal, and DLR error removal remain active globally as carrier best practice
CTIA Guidelines
Carrier guidelines recommend:- Clear opt-out in every message
- Immediate opt-out processing
- No messages to opted-out numbers
CAN-SPAM (Email-Adjacent)
While for email, principles apply:- Honest identification
- Clear opt-out
- Honor requests promptly
DLR Error Auto-Removal
Trackly automatically removes contacts from sending lists based on delivery report (DLR) error codes from SMS providers. This prevents repeated sends to unreachable numbers and protects your sender reputation.Immediate Removal
These error codes trigger immediate contact removal (unsubscribed with reasonbad_response):
Threshold Removal
These error codes trigger removal after 2 failures within 30 days:TCPA Quiet Hours
Trackly enforces TCPA quiet hours for US phone numbers only to ensure messages are sent during legal hours in the recipient’s local time.Rules
- Applies to: US sending list numbers only (+1 prefix)
- Allowed window: 8:00 AM – 9:00 PM in the contact’s local timezone
- Timezone source: Determined from carrier lookup at contact creation, or from click IP geolocation
- Transactional messages: Exempt from quiet hours
- No timezone data: If a contact’s timezone is unknown, messages are sent without quiet hour restrictions
- International numbers: Not subject to TCPA — messages send at any time
How It Works
- When a scheduled send is queued, the system checks if the sending list uses a US number
- For US numbers, it checks each contact’s timezone against the 8 AM – 9 PM window
- Messages outside the window are held and sent at the next valid window (8 AM in the contact’s local time)
- Non-US sending lists skip this check entirely
Toll-Free Verification
Submit Verification Request
Provide Sample Messages
Confirm Opt-In Method
Wait for Review
Spam Auto-Removal
Contacts are automatically removed when SMS providers report spam-related delivery failures. This protects your account from carrier penalties.Carrier Spam Codes
CM Spam Codes
Content Filtering
Trackly automatically blocks messages containing prohibited content at send time. Messages that match blocked patterns receive a status ofBLOCKED_CONTENT with the matched word and category.
Blocked Categories
Cryptocurrency Terms
Cryptocurrency Terms
Account Verification Phrases
Account Verification Phrases
Financial Institution Names — US
Financial Institution Names — US
Financial Institution Names — International
Financial Institution Names — International
Leet-Speak Detection
The content filter detects common character substitutions used to evade filtering:b1tc0in, cr4pt0, and 3th3r3um are all caught.
When Filtering Applies
- Content filtering is enforced at send time, not at creative creation
- Blocked messages are not sent and receive
BLOCKED_CONTENTstatus - The API response includes the matched word and category for debugging
- Filtering applies to the final message text (after template substitution and prepend/append)
Spam Prevention
Content Guidelines
Avoid:- Misleading claims
- Excessive caps/punctuation
- Shortened URLs from unknown shorteners
- Adult content
Volume Guidelines
- Don’t send too frequently
- Respect quiet hours
- Use frequency capping
List Hygiene
- Remove invalid numbers
- Honor opt-outs immediately
- Don’t purchase lists
Handling Complaints
If a carrier flags you:- Review the flagged content
- Identify the issue
- Update messaging practices
- Contact carrier if needed
Audit Trail
Trackly maintains:- When contacts subscribed
- When/why they unsubscribed
- All messages sent
- Opt-out requests received
10DLC Registration Checklist
Register Your Brand
Create a Campaign
Assign Numbers
Wait for Approval
Monitor Throughput
Best Practices
Always include opt-out
Always include opt-out
Document consent
Document consent
Honor opt-outs immediately
Honor opt-outs immediately
Use clear identification
Use clear identification