Documentation  ·  Revolutionary SMS 0.2.0

Revolutionary SMS, set up and explained.

How to connect an SMS provider, send your first text, record consent and handle STOP, START and HELP.

Released version 0.2.0

Current release setup and checks

Send text messages through your SMS provider, with a consent list and automatic opt-out handling.

  • Choose a provider on the Providers screen, save its credentials, then run Test Connection and Send Test.
  • Add the incoming-message webhook URL, with its key, to your provider so STOP, START and HELP reach the plugin.
  • US business texting needs A2P 10DLC or toll-free registration with your provider; the plugin does not register you.

Check your setup

  • Text only your own phone from a test installation before sending to customers.
  • Check that a number marked opted out is shown as blocked in the log, and keep real phone numbers out of screenshots.

Quick start

Up and running in minutes

Step 1

Install and activate

Upload the plugin zip in Plugins, Add New, then Activate.

Step 2

Pick a provider

SMS, Providers. Choose your service and enter its credentials, then Save provider.

Step 3

Test the connection

Click Test Connection where the provider offers it, then use Send Test to text your own phone.

Step 4

Set up consent

Add the incoming-message webhook URL to your provider so STOP, START and HELP reach the plugin.

Start here

Where everything lives

Everything is under Revolutionary Plugins, SMS: Dashboard, Providers, Send Test, Consent, Log and Settings.

Requirements

WordPress 5.8 or later and PHP 7.4 or later.

License and updates

Enter your Revolutionary bundle key once in Multipurpose Dashboard, Welcome. The plugin uses it only for updates.

Connect

Providers

Choose an active provider, and optionally a fallback that is tried once when the active one fails.

ProviderWhat it does
TwilioSMS and MMS. Account SID with an Auth Token or API Key, and an optional Messaging Service.
RingCentralSMS through the JWT flow. Tokens are cached encrypted and refreshed automatically.
SimpleTextingAPI v2, US and Canada.
EZ TextingSMS and MMS, US and Canada.
TextellentSMS and MMS, including partner accounts.
KlaviyoPosts an event; a Klaviyo Flow sends the text.
SlickTextBroadcast to lists or segments only.
Custom HTTPAny single-request SMS API. Textdrip, Textmunication, TextSpot and UniFi Talk are presets.

Custom HTTP templates

Use a JSON or form body template. Placeholders are substituted inside parsed values, so message text cannot break the request.

Developers

Sending from code

One call sends a text through the active provider.

$result = rev_sms_send( $to, $message, [ 'purpose' => 'marketing' ] ); Then check $result->ok, and read $result->error for the reason when it is false. Attach images with media_urls on providers that support MMS.

Plugins that should not depend on this one can call do_action( 'rev_sms_send', $to, $message );. Messages are limited to 1600 characters.

  • rev_sms_pre_send filter: block or reroute a message
  • rev_sms_sent and rev_sms_failed actions
  • rev_sms_providers filter: register your own adapter

Compliance

SMS, Consent shows every number's status and a history of each opt-in, opt-out and HELP request.

Each history row keeps the source, IP address, page and the exact wording agreed to. Search and filter the list, open a number's history, add an entry by hand (an opt-in needs a note saying how the person agreed) and export the full history to CSV.

PurposeRule
Any messageA number that opted out gets nothing but consent notices.
MarketingNeeds a recorded opt-in.
TransactionalAllowed unless Require consent for every message is on.
Staff alertsNever held back for missing consent.

A refused send returns the status blocked and appears in the log without calling the provider.

Incoming messages

STOP, START and HELP

Point your provider's incoming-message webhook at your site.

The address is /wp-json/rev-sms/v1/inbound/<provider>?key=.... The key is generated per site and can be replaced. Twilio's fields are read exactly and it gets an empty TwiML reply; other providers are read from common field names, and the rev_sms_inbound_parse filter can parse anything else.

Stop words follow the CTIA guidelines and the FCC's 2025 list, and a message that starts with one counts as STOP. Twilio error 21610, meaning the number texted STOP to your sending number, is recorded as an opt-out automatically.

Confirmation and replies

Send new subscribers an opt-in confirmation text. STOP, START and HELP replies are optional and off by default because Twilio answers them itself. Use the {brand} and {help_contact} placeholders.

Reporting

Log and settings

SMS, Log records every send with its status, provider message ID and error text.

Old rows are pruned by the retention setting, and you can choose not to store message text.

Encryption key

Provider secrets are encrypted at rest with AES-256-GCM. Define REV_SMS_ENCRYPTION_KEY in wp-config.php to keep the key outside the database.

Phone numbers

Numbers are normalized to E.164 using the default country code in Settings.

Troubleshooting

Common questions

Open SMS, Log. A blocked status means the consent rules refused it: the number opted out, or a marketing text had no recorded opt-in.

SlickText is broadcast only. Send to a list or segment, or use another provider for one-to-one texts.

Check that the incoming-message webhook URL, with its key, is saved in your provider's settings.

Stuck on something?

Search the forums, open a ticket, or write to us. A real person reads every message.