What would you like to know more about?

Show Page Sections

Texting Opt-In for Twilio Compliance

Establish a texting opt-in process that honors your contacts' preferences to receive text messages.

We recommend thinking carefully about the texting policy your organization uses or will use. Remember to adhere to Twilio's requirements in order to receive texting campaign approval. Twilio is looking for express written consent, double opt-in, and clear opt-out options. You can set up your process in MinistryPlatform to ensure compliance.

Set Up Your Opt-In Process

Texting Opt-In Types for Contacts

On Contact records, there's an option for Texting Opt In Type. This determines each contact's level of consent (preference) for receiving text messages. The values include Opted Out, No Response, Single Opt-In, and Double Opt-In. This is how the New Message Tool knows who should receive text messages and who should not.

What about the Do Not Text field on Contact records? Previously, that field has been used for this purpose. However, with changes to Twilio requirements, the Texting Opt In Type replaces that field and provides more flexibility for an opt-in process rather than an opt-out process.

Don't worry, we made the transition from using the Do Not Text field easy for you! Here's what happened with the November 2025 release:
  • If Do Not Text was set to Yes, then Texting Opt In Type was automatically set to Opted Out.
  • If you were already using a double opt-in process (that is, you had set up a webhook for inbound messages and set up opt-out keywords with Twilio, and contacts had sent keywords to your SMS number), then Texting Opt In Type was automatically set to Double Opt-In for contacts who had opted in. Whenever a contact sends an opt-in or opt-out keyword, the Texting Opt In Type is updated.
  • As contacts opt in and out with your new process, both the Texting Opt In Type and Do Not Text options are automatically updated.
  • You can continue to use the Do Not Text option during your transition from an opt-out process to an opt-in process. But note that we plan to deprecate this field once everyone is using an opt-in process (sometime in 2026).

In addition to the Texting Opt In Type field being updated when contacts opt in or out using keywords, the Platform prompts new users when they sign up. Anyone can change their texting preference at any time in their user profile.

Add Links for Your Terms of Service & Privacy Policy

Twilio requires that your organization's Terms of Service and Privacy Policy be visible to recipients of texting campaigns. You can add your links in the designated configuration settings so they display when prompting contacts to opt in. If you plan to register a campaign with Twilio, you must complete this step or your registration may be delayed or denied.

What if we don't have Terms of Service? Twilio offers boilerplate wording that you can use. See this Twilio help article for details.

  1. In the navigation menu, click Administration > Configuration Settings.
  2. Search for Application Code "COMMON" and Key Name "TermsOfService".
    1. If you find it, open it and click Edit Record.
    2. If you don't find it, click New Configuration Setting to add the record.
  3. For Value, confirm or enter the link to the Terms of Service on your organization's website.
  4. Click Save.
  5. Search for Application Code "COMMON" and Key Name "PrivacyPolicy".
    1. If you find it, open it and click Edit Record.
    2. If you don't find it, click New Configuration Setting to add the record.
  6. For Value, confirm or enter the link to the Privacy Policy on your organization's website.
  7. Click Save.

The changes should take effect within 10 minutes. The links you added display on the Sign Up page and the User Account Profile. When someone clicks the link, it opens in a new browser tab.

Invite Contacts to Opt In to Texting

When you're ready for your contacts to start using an opt-in process, there are several views and message templates that can help you invite people to provide their preference. The invitations include a link to opt in.
Tip: Want to customize the confirmation message that contacts see when they opt in? You can edit two application labels: oauth.optInTitlePart1 and oauth.optInTitlePart2. There's also an error message if they are not able to successfully update their preference: oauth.optInError.
See who has not opted in:
  1. In the navigation menu, click Contacts.
  2. Select the Contacts with No Texting Preference view.
  3. Review the contacts who have not opted in.
    Note: Contacts who do not have a mobile phone number and deceased contacts will not display in this view.
  4. Make a selection of contacts to send the invitation to.
Send an invitation to opt in:
  1. From the Actions menu, select Message.
  2. Make any necessary selections at the top of the window.
  3. On the Message tab, click Insert and select Templates > Contacts Page Templates > Opt In to Texting.
  4. Review the message. If needed, you can add or edit the wording.
  5. Click Send > Send.
See how people respond to your invitation:
  1. In the navigation menu, click Communications > Messages.
  2. Select the Texting Opt In Templates view.
  3. Review the Opt In to Texting messages (most recently sent display first).

The selected contacts will receive the email with a link to opt in. The link is valid for seven days after the email sent. When a contact opts in via the email, they'll see a confirmation message, and the Texting Opt In Type field is updated on their Contact record.

Customize Record Insights for Texting

  • To update the Contact Info insights, you must be comfortable editing SQL.

Record insights, such as the Contact Info record insight, can display a label that lets your staff know whether the person can be texted. By default, the label "do not text" displays for people who have opted out.

Example showing a Participant record that has the Contact Info insight with the label "allows texts" underneath the mobile phone number

You can customize the record insight labels to reflect your church's language for texting opt-in preferences.

Update the record insight labels:
  1. In the navigation menu, click System Lookups > Texting Opt In Types.
  2. Review the values in the Texting Opt In Label column.
    Note: If you are not using a double opt-in process, you can ignore that Type.
  3. Open the Type you want to update, and click Edit Record.
  4. For Texting Opt In Label, enter the text you want use for record insight labels. DO NOT change the Texting Opt In Type.
  5. Click Save.
Update the Contact Info insights:
  1. In the navigation menu, click System Setup > Insights.
  2. Review the insight information in the Template column. You can open the record to see the full insight.
    Note: If you've never edited the insight, the default template displays. The default uses [select isnull(contact_id_table_texting_opt_in_type_id_table.texting_opt_in_label..., so if you see that, you don't need to update the insight. If all your Contact Info insights use the default template, you can skip this part!
  3. Open the Contact Info insight you want to update, and click Edit Record.
  4. For Template, replace any code using the Do Not Text option with the code for the Texting Opt In Type.
    If you're editing the insight for the Participants or Care Cases page, replace [(SELECT CASE WHEN Contact_ID_Table.Do_Not_Text = 0 THEN 'Allows Texts' ELSE 'Do Not Text' END)] with [(SELECT ISNULL(Contact_ID_Table_Texting_Opt_In_Type_ID_Table.Texting_Opt_In_Label, Contact_ID_Table_Texting_Opt_In_Type_ID_Table.Texting_Opt_In_Type))].

    If you're editing the insight for the Donations page, replace that code with [(SELECT ISNULL(Donor_ID_Table_Contact_ID_Table_Texting_Opt_In_Type_ID_Table.Texting_Opt_In_Label, Donor_ID_Table_Contact_ID_Table_Texting_Opt_In_Type_ID_Table.Texting_Opt_In_Type))].

    If you're editing the insight for the Donation Distributions page, replace that code with [(SELECT ISNULL(Donation_ID_Table_Donor_ID_Table_Contact_ID_Table_Texting_Opt_In_Type_ID_Table.Texting_Opt_In_Label, Donation_ID_Table_Donor_ID_Table_Contact_ID_Table_Texting_Opt_In_Type_ID_Table.Texting_Opt_In_Type))].

  5. Click Save.
  6. Repeat this for the Contact Info insights on different pages, such as Participants, Donors, and so on.

The record insights display the designated label based on the person's Texting Opt In Type.

Switch to an Opt-In Process

You can continue using the Do Not Text field as needed. However, at some point in 2026, we will deprecate this field in favor of the Texting Opt In Type. We recommend updating from an opt-out process to an opt-in process as soon as you can.

Ready to Switch? Once you have everything in place for the texting opt-in feature, you can make the switch to an opt-in process so you can honor contact texting preferences. You can do this per SMS number since some groups/ministries may be ready to do this before others.

  1. In the navigation menu, click Communications > Outbound SMS Numbers.
  2. Open the record of the phone number you want to switch to an opt-in process, and click Edit Record.
  3. For Texting Compliance Level, select either Single Opt-in (most common) or Double Opt-in (only if you have the Twilio webhook and opt-in keywords set up).
  4. For Sender Label, enter the name of the church, department, group, or other entity that sends text messages from this number. This information will be prepended to any text sent from this number so the recipients know who it's from.
  5. Click Save.

When you send a text message from the updated Outbound SMS Number, the New Message Tool checks each contact's texting preference. If any of the contacts you selected has opted out of receiving text messages, the text will not be sent to them. You'll see the number of recipients who have opted in at the bottom of the New Message window.

After you update an Outbound SMS Number to an opt-in process (either Single Opt-In or Double Opt-In), you'll also see the Sender field (which comes from the Sender Label on the Outbound SMS Number record) and the Text Message Preview pane.

Example of the New Message Tool showing a note at the bottom of the text window with the number of recipients who have opted in to receive text messages

Send Emergency Text Messages to Everyone

  • You must have a security role that has Texting Override set to Yes.
Attention: Be careful about sending messages to people who have requested not to receive texts. You should only do this in cases where important information must be texted to the person. Otherwise, please be respectful of your contacts' preference.

If necessary, you can override a contact's request not to receive text messages. For example, there may be an emergency where important information must be communicated in the fastest way possible. Use this option sparingly, if ever.

  1. Launch the New Message Tool:
    • If you want to search for each individual to select as a recipient, go to your Home page, and click the My Messages tab.
    • If you want to select a group of people as recipients, go to the relevant page, and make your selection. Then, from the Actions menu, select Message.
    The New Message Tool opens.
Prepare your text:
  1. For Message Type, select Text Message.
    Note: If your system is not configured to send text messages through Twilio, you won't see the message type options. You will only be able to send an email.
  2. If you haven't already selected your recipients, you can enter each person's name or click the magnifying glass icon to search for and select individuals. See Message Recipients for additional options.
  3. Click the Recipients drop-down list to review your options.
  4. To send the message to the the parents of the selected recipients (that is, any Head of Household who has a valid email address and is not inactive/deceased as well as any Non-Custodial Parent associated via Other Households), select Send to Parents.
  5. Enter the content of your message.
    • Click the Insert menu to include any templates or fields.
    • Keep an eye on the number of characters you have remaining for your message.
  6. If needed, click the Attachments tab to upload files to attach to your message.
Review your text:
  1. Read over your message content.
  2. To change the "Sending from" phone number, click the Advanced tab and select a number in the From SMS Number drop-down list.
  3. On the Advanced tab, select the option under "Bulk Text" to Also send this message to recipients who have opted out or have not provided consent to receive texts.
    Note: If you don't see this option, you do not have a security role that allows for Texting Override. Contact your SPoC or administrator if you think you should have this ability.
Send your text:
  1. When you're ready to send the message to the selected recipients, click Send then Send.

The message sends within about five minutes after you click Send unless you scheduled it to send in the future.

Want to see who actually received your message? Go to Communications > Messages and check out the Action Status.

Did you get an error when sending your message? Check out our troubleshooting topic for help.