Text-to-Give
The GiveWP Text-to-Give add-on allows donors to give via text message (SMS), using the Twilio service to facilitate the connection to your GiveWP donation site. This document walks you through how to configure the add-on to get started collecting donations via SMS.
Important note: If you plan to send text messages to phone numbers in the US, you must register and be approved for A2P 10DLC messaging prior to sending. This process can take several weeks, and messages will be blocked until it is complete. Plan your Text-to-Give campaign with this delay in mind. Learn more about A2P 10DLC messaging.
Before Getting Started With Text-to-Give
In order to use GiveWP’s Text-to-Give add-on, you need a few things already lined up:
- A site with GiveWP installed and active
- A site minimum requirement of MySQL version 5.6 or higher
- A Stripe account (free)
- The Stripe account connected to the GiveWP site
- A Twilio account and phone number
Note before you get started: SMS works differently in every country. Be sure that your country allows for two-way SMS by checking the Twilio messaging guidelines. If your country does not support two-way SMS, you will not be able to use GiveWP’s Text-to-Give integration.
Follow the documentation on setting up Stripe with GiveWP and note that to remove the additional 2% fee from Stripe you’ll need to activate the premium Stripe add-on.
The Text-to-Give add-on currently requires Stripe as the payment gateway.
Note: Text-to-Give requires being connected via the OAuth method in Stripe (the blue Connect button). Connecting via API keys is not supported by Text-to-Give.
Getting your account set up at Twilio
Text-to-Give functionality uses the Twilio platform. Twilio is a developer-focused platform with wide-ranging capabilities, so setting it up can seem intimidating for non-developers, but don’t worry! The documentation here will walk you through exactly what you need to sign up for within Twilio to create Text-to-Give powered donation forms with GiveWP without all the technical jargon.
Here are the steps:
- Create an account
- Buy a phone number
- Register for A2P 10DLC Messaging (if sending to US phone numbers)
- Find the account SID
- Create API credentials for your phone number
- Paste Credentials into your GiveWP settings on your website
Create a Twilio Account
Visit https://www.twilio.com/try-twilio to create a Twilio account if you don’t yet have an account.
At this point, Twilio will ask you to verify the email address that you signed up with as well as a phone number. You must verify your email to continue the account creation process. Once verified, you’ll be taken to a screen asking what you plan to build with Twilio.
The answers to these questions don’t affect your access to any of Twilio’s services or products, but probably do affect how the team there interacts with you. Select “SMS” as the product you are here to use, and “Other” for the question about what you plan to build. Select “no code at all” and “3rd party integrations” for the last two questions.
That will put you into your Console, which is the command center for Twilio.
Buy a Phone Number
To use the Twilio SMS service, you’ll need to buy a number. The interface to purchase a number is built into the platform. Select “Buy a Number” under the Manage tab of the Phone number interface. Numbers are available to many countries. As mentioned above, make sure that your country supports two-way SMS before buying a phone number.
IMPORTANT: If you already have a Twilio account and phone number, you should still buy a new number specifically for Text-to-Give. This will avoid any potential conflicts with others services you are using Twilio for.
In order to connect to GiveWP, you’ll need three things: the Account SID, the API Key SID, and the API Key secret.
Register for A2P 10DLC Messaging
Note: this step is only required if you are sending text messages to US-based phone numbers.
Effective September 1, 2023, all SMS and MMS messages sent to US phone numbers from unregistered 10DLC phone numbers have been fully blocked. If you are an existing user of the Text-to-Give add-on, you should have received notifications from Twilio about the registration requirement and the shutdown of unregistered messaging.
Does Text-to-Give use A2P 10DLC messaging?
For the purposes of compliance with US regulations, text messages sent and received via the Text-to-Give add-on are classified as application-to-person (“A2P”) messages. “10DLC” refers to 10-digit long code phone numbers, which is an industry term for the standard phone number(s) you will use with the Text-to-Give add-on. You can learn more in this article from Twilio: What is A2P 10DLC?
What’s involved in registering for A2P 10DLC messaging?
The registration process can only be initiated by an Owner or Admin user of your Twilio account (if you just created your account, then you are most likely the account Owner).
The basic registration process involves consists of these steps:
- Create a Twilio Business Profile for your organization in the Twilio Trust Hub. Be sure to have this key information about your organization handy.
- Register your US A2P Brand and pay the one-time Brand registration fee. If you expect to send fewer than 6,000 messages per day, then you qualify to register as a Low-Volume Standard Brand, which will get your approval processed more quickly by avoiding a secondary vetting step.
- Register a Campaign for your fundraising efforts and select a use case. Campaign Registration fees are determined by the use case that you select and are billed on a monthly basis. Note that if your organization has 501(c)(3) status, you are eligible to register for the Charity / 501(c)(3) Nonprofit special use case, which results in lower fees. Keep in mind that the mobile carriers charge additional fees on a per-message basis, and these vary. Read more about fees associated with the A2P 10DLC service here.
- Associate a Twilio phone number with the Campaign. You may use any existing number that you’ve purchased in your Twilio account for your Campaign as the Sender number.
- Wait for the manual vetting process to complete. This can take several weeks.
For detailed, step-by-step instructions (including screenshots) on registering for A2P 10DLC messaging, follow this guide from Twilio.
Find the Account SID
First, locate the Account SID by navigating to Account > General Settings in the top navigation menu, and then you should see the SID on that page.
Copy that Account SID to a secure place, you’ll need that for later.
Create API credentials
The last two things you need from the Twilio side are the API key and Secret to add to the GiveWP settings. To get that, you’ll need to create a new API key. From the Account settings at the top of the page, select “API Keys” from the “Keys and Credentials” section, and click to create a new key.
Give the key a name that you will recognize like “My Site Text-to-Give” and select “Main” from the key type dropdown.
IMPORTANT: the API Secret is only shown once, on the next page. It’s a critical piece of the integration, and something you don’t want to store publicly anywhere, but definitely copy and paste it to a temporary document on your computer in order to add it to the settings on the GiveWP side.
Once you follow all of the steps in this section, you’re ready to integrate your new Twilio account with GiveWP.
Configuring your GiveWP site for Text-to-Give
Once you’ve installed and activated GiveWP and the Text-to-Give add-on, connecting to Twilio is as easy as pasting in the credentials you saved from the previous steps in this documentation into the settings at Donations > Settings > Text-to-Give.
Click the red button to connect to Twilio, and enter in the credentials you gathered in the previous steps. These will be used “behind the scenes” to interact with your Twilio account via the Twilio Api.
Once connected, there are two more settings that you must configure to get up and running with Text-to-Give. The first is to select a phone number from the dropdown list. Any purchased numbers in your Twilio account will show up in the dropdown list.
Since Twilio phone numbers can only be used for one service at a time, it’s important that you select a phone number from your account that is not already being used by another service. Once you choose a number, a confirmation message will appear for you to confirm the update. After confirming, a “webhook” endpoint will be assigned to your Twilio phone number that will enable your GiveWP-powered site to accept and process text messages.
Next, select a donation form to associate SMS donations with. All donations that come in via text will be associated with this form. Donors will be able to see the title of the donation form on things like their receipt and their Donor Dashboard, so be sure to make this not just some internal title.
Note: Text-to-Give does not currently support configuring multiple numbers or multiple forms for use on a single site. This feature is on the long-term roadmap for Text-to-Give, after Recurring Donations support, which is also not currently available. For now, select a form on the site that is not a recurring form.
With Twilio connected, a phone number selected, and a donation form selected, you’re ready to receive donations via SMS.
Testing SMS Donations
When new donors are directed to your site to register & donate for the first time via text, they will technically be using the Stripe Payment Gateway to complete their donation. That means the steps to test the gateway are the same as in the Testing Stripe Credit Card documentation.
The short version is that you should ensure GiveWP is in Test Mode, and then use a credit Card number like 4242 4242 4242 4242 (with any future expiration date) for testing successful transactions. There are methods for testing a failed transaction outlined in the document linked above.
Donor Information
Donor information is stored and displayed the same way as donor information collected by a traditional donation form. You can view your donor information by navigating to Donations > Donors. Text-to-Give donors will be visible just like regular donors.
Donation Information
Donation information is displayed differently depending on whether you select the New View, or the Legacy View in GiveWP. All donation information can be found by navigating to Donations > Donations. Text-to-Give donations are recorded the same way donations collected by a traditional donation form are recorded.
In the New View, donation records look exactly the same as traditional donations.
In the Legacy View, donations records generated by Text-to-Give will have a notation of “sms” beside them.
Notes on Twilio Billing
Twilio accounts have a free trial period that you can use while getting started and testing, but there are some limitations. The main limitation for the purposes of setting up and testing GiveWP’s Text-to-Give add-on is that you can’t test the service from unverified phone numbers (set within the Twilio account) which means that during testing you are limited to those numbers. Once you get things tested, you’ll need to upgrade to a paid account to begin accepting donations via text message.
Twilio (at the time of this writing) is a pay-as-you-go service that charges based on usage, so be sure in setting up Twilio that you configure it so that you are not surprised by any usage and billing. By default and unless configured otherwise, all incoming calls and texts to your new number will be billed to you. GiveWP support can’t help at all with billing-related issues for your Twilio account.
Frequently Asked Questions
As long as your country is supported by the Stripe payment gateway, and allows for 2-way SMS communication, Text-to-Give is supported in your country.
SMS works differently in every country. Be sure that your country allows for two-way SMS by checking the Twilio messaging guidelines. If your country does not support two-way SMS, you will not be able to use GiveWP’s Text-to-Give integration.
“Shortcodes” in SMS terminology are reserved 5-6 number codes that are used for texting services.
Twilio does support the use of shortcodes, but at this time the GiveWP team decided not to extend support for shortcodes, based on a few factors, most notably that SMS Shortcodes are prohibitively expensive for most GiveWP customers. There’s a fee to set up shortcodes and then the monthly fees to own a shortcode start in the $1000 USD range.
If there’s enough interest, the team may look into adding that support. Please add your vote and comment on the GiveWP feedback Site for that feature request.
Currently Stripe is the only supported gateway for Text-to-Give. One “hidden feature” is that you don’t even have to have the gateway technically enabled in the settings at Donations > Settings > Payment Gateways in order to use it with the Text-to-Give add-on. You only need to have the site connected to Stripe in the settings at Donations > Settings > Payment Gateways > Stripe > General Settings.
That makes it so that you can accept donations with a different gateway on donation forms on the site, and still use Stripe to collect donations via SMS.
No, Recurring functionality is not currently supported. There’s a plan to add that support, but no firm timeline.
For now, even if you mistakenly associate SMS donations with a recurring-only form, it will not create subscriptions nor will the resulting donations match the metadata of donations created through that form.
The following add-ons are not compatible with Text-to-Give at this time:
Fee Recovery
Gift Aid
Recurring Donations
Form Field Manager
Tributes
One thing Twilio will want to know is that you are never sending messages to people without their consent. This is true because GiveWP’s integration only responds to texts, it never initiates them. The line in Twilio’s Messaging Policy that is key here is under the bullet point “Contact initiated by an individual”
If an individual sends a message to you, you are free to respond in an exchange with that individual.
Another thing they will want to know is that folks submitting donations have been made aware of how that data will be used. That’s handled in the Mandate settings on the registration page settings, and you should point them to two realities:
- It’s OK, legal, and expected for organizations raising money to keep records of their donors
- At any time, replying with the unregister keyword (set in the settings) will remove the payment method from the donor record, and prevent GiveWP from charging them again without the payment method being added to the donor record again.
Another key thing to recognize (for PCI compliance) is that “payment method” in this context does not mean “card number.” It is an anonymized string like pm_12345678
that is sent to the gateway, where the actual card number is stored. Card numbers never touch your server with the Text-to-Give add-on.