Skip to contentSkip to navigationSkip to topbar
Page toolsOn this page

Compliance Toolkit for Programmable Messaging


(new)

Public Beta

Programmable Messaging customers can activate the Public Beta of the Compliance Toolkit from the Twilio Console(link takes you to an external page).

This feature supports SMS messages terminating in the United States written in English and Spanish languages only.

Compliance Toolkit is available as a Public Beta release and the information contained in this document is subject to change. Some features are not yet implemented and others may be changed before the product is declared as Generally Available. Public Beta products are not covered by the Twilio Support Terms or the Twilio Service Level Agreement.

To learn how Twilio supports products in public beta, see Twilio Beta Product Support(link takes you to an external page).

(warning)

HIPAA incompatible

Compliance Toolkit shouldn't be used in workflows subject to HIPAA regulations.

(information)

Pricing

To learn about Compliance Toolkit pricing for Programmable Messaging, see the SMS Pricing(link takes you to an external page) page or contact Sales(link takes you to an external page).

Compliance Toolkit helps you mitigate your compliance exposure by using artificial intelligence and machine learning to proactively detect possible regulatory violations and prevent or reschedule their transmission.


Get started with Compliance Toolkit

get-started-with-compliance-toolkit page anchor

To activate Compliance Toolkit, go to your account settings in the Twilio Console.

  1. Log in to the Twilio Console(link takes you to an external page)
  2. Go to Messaging > Settings > General(link takes you to an external page).
  3. Select Enabled. The Compliance Toolkit modal displays.
  4. Review the text of this modal, then acknowledge that you have read the Twilio Compliance Toolkit: AI/ML and Product Terms Addendum(link takes you to an external page).
  5. Click Done then Save. Once activated, the toolkit runs on your existing messaging flows. This requires no further action on your part.

To identify and resolve possible violations of the following regulations, Twilio passes all US outbound SMS traffic through Compliance Toolkit.

Quiet Hours enforcement

quiet-hours-enforcement page anchor

Quiet Hours check

quiet-hours-check page anchor

When Twilio tries to send a message, Compliance Toolkit checks if it falls within Quiet Hours. The US Federal Communications Commission defines these hours under the Telephone Consumer Protection Act(link takes you to an external page)(TCPA) as 9:00 PM to 8:00 AM in the recipient's local time zone in the US. Twilio infers the time zone using the recipient's phone number area code.

(information)

Recommended

To improve accuracy, you can provide the most known ZIP codes of the your recipients with the Contact API. When available, Compliance Toolkit uses the ZIP codes as entered in the Contacts API to enforce Quiet Hours.

If the message falls within Quiet Hours, Compliance Toolkit classifies the message using AI/ML model as essential or non-essential. This classification is based on the message content and context.

If you want to override the defaults and bypass Compliance Toolkit's classification model and set specific messages as essential, use the MessageIntent parameter.

Examples of non-essential messages

examples-of-non-essential-messages page anchor
  • Marketing and promotional campaigns like discounts, loyalty points, and flash sales
  • Charity or events-related broadcasts

Examples of essential messages

examples-of-essential-messages page anchor
  • Fraud alerts or suspicious activity notifications
  • Shipping and delivery updates
  • Customer support messages
  • Emergency announcements
  • School alerts to parents and students
  • Receipts or confirmations requested through SMS
  • Replies to recent inbound messages
  • Opt-in and unsubscribe confirmations

If Compliance Toolkit classifies a message as non-essential and it falls within Quiet Hours, it will not be sent immediately. Instead, by default the message is automatically rescheduled to be delivered after Quiet Hours, and the message metadata in the following ways:

  • The delivery status changes to scheduled.
  • It adds a ScheduledAt timestamp in the Message Logs that states when it plans to deliver the message.

You can track the scheduled status with existing webhooks, logs and Messaging Insights experience.

This feature delivers messages while respecting both compliance requirements and recipient experience.

You can set your preference for Quiet Hours message handling as one of two options:

  • Reschedule (default): The default behavior that reschedules the message with a new delivery time.
  • Block: This blocks the non-essential message sent during Quiet Hours and returns a 30610 error code.

State Specific Quiet Hours enforcement

state-specific-quiet-hours-enforcement page anchor

In addition to TCPA requirements, Compliance Toolkit enforces state-specific quiet hours in the following states. This ensures that non-essential messages are not delivered to recipients during the following time windows.

Compliance Toolkit applies these Quiet hours based on the recipient's location. It determines this from either from the area code of the phone number (default) or from the location provided with the Contact API. Non-essential messages that fall into these restricted windows get rescheduled and delivered once Quiet Hours end.

(warning)

Note

The following US states have additional Quiet Hour requirements like non-essential messages prohibited or different Quiet Hour windows on weekends. Compliance Toolkit doesn't enforce any restrictions or requirements outside what's in this table. When using any Twilio Services, customers should check with counsel for any additional requirements and ensure compliance.

State(s)Quiet Hours Enforced (Local Time)
Alabama8:00 PM – 8:00 AM
Connecticut8:00 PM – 9:00 AM
Florida8:00 PM – 8:00 AM
Louisiana8:00 PM – 8:00 AM
Maryland8:00 PM – 8:00 AM
Mississippi8:00 PM – 8:00 AM
Oklahoma8:00 PM – 8:00 AM
Tennessee8:00 PM – 8:00 AM
Texas9:00 PM – 8:00 AM
Washington8:00 PM – 8:00 AM

To identify users who have opted out of receiving your messages, Twilio checks against its opt-out database.

By sending a reply to your messages with one of the following keywords, these previous subscribers opted out.

  • STOP
  • UNSUBSCRIBE
  • END
  • QUIT
  • STOPALL
  • REVOKE
  • OPTOUT
  • CANCEL

If the associated recipient replied to a message with the appropriate opt-out command after the recorded opt-in date, Twilio blocks the message and returns error 21610. To learn more about opt out, see Twilio support for opt-out keywords(link takes you to an external page).

Twilio also checks the recipient's consent status using the Consent Management API. If a recipient opted out, Twilio blocks your message to that specific user and returns error 21610.

Compliance Toolkit verifies that the intended recipient's phone number belongs to the original subscriber who consented to communications. This verification happens through tracking and updating customer's consent against the US FCC's reassigned phone number database. If the a carrier reassigned this phone number to a different consumer after the date of the on-record consent, Twilio blocks the message and returns error 21610.

After the first reassigned number check on a particular phone number, this feature checks that number for new messages every 30 days.


Tune your Compliance Toolkit setup

tune-your-compliance-toolkit-setup page anchor

To meet your specific messaging needs, Twilio Compliance Toolkit provides customization options through three API resources.

  1. Contact API can set the known ZIP code for each end user. By using the recipient's location instead of their phone number's area code, this improves Quiet Hours accuracy.
  2. Twilio Programmable Messaging API.
    • The riskCheck parameter lets you set which messages the Compliance Toolkit evaluates. When set to disable, Compliance Toolkit doesn't evaluate that message. You also don't incur associated charges.
  3. Consent Management API allows you to set each subscriber's opt-in or opt-out status. Twilio uses these up-to-date, verified preferences to block or permit messages.
    • The messageIntent parameter lets you set the use case of the message.
      • If you set the messageIntent as an essential use case value like otp and notifications using this parameter, Twilio exempts it from Quiet Hours checks and delivers it.
      • If you set the messageIntent as non-essential use case value like marketing using this parameter, Twilio reschedules its delivery after Quiet Hours.

The following table lists which use cases you can configure for the messageIntent parameter and the Quiet Hours Mapping assigned for that use case.

Use caseMessageIntent parameter valueQuiet Hours Mapping
Two-factor auth (2FA) and one-time passcodes (OTP)otpEssential
Account notifications, two-way conversational messagingnotificationsEssential
Fraud alertsfraudEssential
Security alerts, emergencysecurityEssential
Customer carecustomercareEssential
Delivery notificationsdeliveryEssential
EducationeducationNon-Essential
Event marketingeventsNon-Essential
Polling and voting (non-political)pollingNon-Essential
Public service announcement (non-emergency)announcementsNon-Essential
General and campaign marketingmarketingNon-Essential

When Compliance Toolkit blocks an SMS delivery due to Opt-Out or Reassigned Phone Number identification, Twilio returns an error 21610. This message displays in the Twilio error logs and the API response.

When Compliance Toolkit detects a marketing message being sent during Quiet Hours, it doesn't deliver it. It sets the delivery status to scheduled and the ScheduledAt timestamp for after the end of Quiet Hours, up to 4 hours later. When you opt to block, rather than reschedule these messages, Compliance Toolkit returns error 30610 is displayed in the Twilio error logs and the API response.

To analyze aggregate trends and drill into Compliance Toolkit outcomes, use Messaging Logs and Insights in the Twilio Console.


Can I use Compliance Toolkit only for specific messages or subaccounts?

can-i-use-compliance-toolkit-only-for-specific-messages-or-subaccounts page anchor

Yes. From the Twilio Console, you can activate Compliance Toolkit only for specific subaccounts. To invoke Compliance Toolkit per message, use the riskCheck parameter in the Twilio Programmable Messaging API. This controls when Compliance Toolkit gets applied.

How does this differ from Twilio's Message Scheduling feature?

how-does-this-differ-from-twilios-message-scheduling-feature page anchor

Twilio Message Scheduling within the Engagement Suite activates users so they can schedule messages for delivery at a future date and time. Twilio Message Scheduling doesn't analyze the message type nor prevent flagged messages from being sent during Quiet Hours.

How does Compliance Toolkit determine a recipient's timezone for Quiet Hours?

how-does-compliance-toolkit-determine-a-recipients-timezone-for-quiet-hours page anchor

By default, Compliance Toolkit infers the timezone from one of two data points:


Twilio AI Nutrition Facts(link takes you to an external page) provide an overview of this AI feature. This overview helps you better understand how AI works with your data. The following Nutrition Facts label outlines the qualities of Compliance Toolkit.

AI Nutrition Facts

Compliance Toolkit for Programmable Messaging

Description
Compliance Toolkit is a product available to Twilio Messaging customers that uses Artificial Intelligence to help manage their obligations with respect to certain local regulatory or compliance requirements.
Privacy Ladder Level
3
Feature is Optional
Yes
Model Type
Machine Learning
Base Model
Logisitic Regression

Trust Ingredients

Base Model Trained with Customer Data
Yes

Customer messaging traffic metadata is used for model training.

Customer Data is Shared with Model Vendor
No
Training Data Anonymized
Yes
Data Deletion
Yes
Human in the Loop
Yes
Data Retention
30 days

Compliance

Logging & Auditing
Yes

Standard service logging is applied and logs are stored for future review.

Guardrails
Yes
Input/Output Consistency
Yes
Other Resources