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 on that list (
consent_statusbecomesopted_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.
replied stop, blocks future sends to the contact, and fires its own unsubscribe webhook, but does not send a confirmation message. The setting is off by default, does not change opt-outs received before it was turned on, and applies only to the account it is turned on in, not to its parent account or sub-accounts. A contact who later signs up again or texts START to a list rejoins only that list, under that list’s re-subscribe rules.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 based on the recipient’s phone number — any number starting with +1, regardless of which number the message is sent from:- Allowed hours: 8:00 AM - 9:00 PM in the contact’s local time
- Timezone source: Determined from carrier lookup at contact creation, or from click IP geolocation
- Timezone fallback chain: Contact timezone → Account default timezone → Eastern Time. Quiet hours are still enforced under this fallback.
- International numbers: Not subject to TCPA quiet hours
- Scheduled sends blocked by quiet hours are skipped (
tcpa_timezone) and not sent; journey, click-trigger, and double-opt-in steps are instead held and resumed at the next valid window - 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 reasondlr error 603 or dlr error 351 (matching the triggering code):
Threshold Removal
These error codes trigger removal after 5 consecutive matching failures within 30 days — all five of the most recent delivery reports for that number must carry one of these codes:30003, 30005, 30006, 30007, 30008) with a 3 consecutive failure threshold.
DLR auto-removal is enforced by default on all accounts. The only configurable setting is turning DLR error auto-removal on or off for a list or account — failure thresholds are not adjustable.
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 — first when you save a creative, schedule, or journey step, and again at send time. Messages that match blocked patterns are not sent and 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 and 3th3r3um are both caught.
When Filtering Applies
- Content filtering runs when you save a creative, a schedule’s message variants, or a journey step’s inline message — the save is rejected with a
400that names the matched word and category. Creative endpoints return it as error codeBLOCKED_CONTENT; schedule and journey saves return the same detail in the error message text. - Content filtering runs again at send time; blocked messages are not sent and receive
BLOCKED_CONTENTstatus - 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