You have configured your Contact Form 7 form to trigger an SMS notification through Twilio. You have entered your Account SID and Auth Token. And yet, no text message arrives on your phone after a form submission.
This is a frustratingly common problem. The good news? The issue is almost always one of four things, and each has a clear fix. This guide walks through the exact debugging process, common error patterns, and verified solutions.
Understanding the Data Flow
When a user submits your CF7 form with Twilio SMS notifications enabled, here is what should happen:
User submits form → Plugin captures data → POST request sent to Twilio API → SMS delivered
When it breaks, the failure happens at one of the last two stages. Your first diagnostic tool is the Twilio Console logs. It shows whether a request was sent at all, the exact message content, and the delivery status.
If no request appears in Twilio logs, the problem is on the WordPress side. For a deeper breakdown of that specific scenario, see this guide on Contact Form 7 data not reaching the API.
Failure #1: The Phone Number Format Problem
What you see: SMS History shows "sent" but no message arrives. Or the plugin throws a validation error.
Why it happens: Twilio requires phone numbers in E.164 format. This means a plus sign, country code, and the full number with no spaces or dashes. For example: +14155552671.
A common mistake is entering a domestic number without the country code. The plugin may accept it, but Twilio will reject or silently fail to deliver the message.
The fix:
| Setting | Correct Value |
|---|---|
| To (recipient) |
+14155552671 (country code + number) |
| From (Twilio number) |
+14155552671 (your active Twilio number) |
How to verify: Send a test SMS directly from your Twilio Console. If that works but the plugin does not, the issue is likely the number format in the plugin settings.
Failure #2: The Tags Not Working Problem
What you see: The SMS sends and arrives perfectly when using plain text. But when you add CF7 tags like [your-name] or [your-message], the message never arrives. Or it arrives empty.
Why it happens: This is a known issue in some CF7-to-Twilio integrations. The tags are not being replaced with actual form data before the SMS is sent. Possible causes include a plugin bug, a conflict with another form plugin, or an issue with how the tags are formatted.
The fix:
Option A: Check the SMS History tab. Some plugins have an SMS History feature that shows the actual content sent. If the history shows the raw tags (e.g., [your-name]) instead of the replaced values, the tag replacement is failing.
Option B: Test with a minimal payload. Create a simple form with just one text field. Add that field's tag to the SMS content. Submit the form and check if the tag is replaced. If not, the issue is in the plugin.
Option C: Contact the plugin developer. This is a known bug in some integrations. The developer may have a pre-release version that fixes the tag replacement issue. Provide them with your CF7 version, plugin version, and screenshots of the SMS History showing the unreplaced tags.
For a deeper dive into how field mapping works, read this guide on Contact Form 7 JSON mapping.
Failure #3: The Twilio Account Configuration Problem
What you see: No SMS record appears in Twilio logs at all. The form submits successfully, but Twilio never receives a request.
Why it happens: The plugin cannot authenticate with Twilio, or the Twilio number is not properly configured for SMS.
The fix:
Step 1: Verify your credentials. Go to Twilio Console homepage and confirm your Account SID and Auth Token are correct. Copy them fresh into the plugin settings.
Step 2: Check your Twilio number. Navigate to Phone Numbers > Manage > Active Numbers. Verify that your Twilio number has SMS capabilities. Numbers that cannot send SMS will not work for this integration.
Step 3: Check for trial account restrictions. If you are using a Twilio trial account, you can only send SMS to verified phone numbers. Add your recipient number to the verified list in Twilio Console, or upgrade your account.
Step 4: Check A2P 10DLC registration. As of September 2023, US carriers require A2P 10DLC registration for business SMS. If your registration is incomplete or failed, carriers will block your messages.
Failure #4: The API Error Response Problem
What you see: A specific error code appears in the plugin settings when you enable error display, or in Twilio logs.
Why it happens: Twilio is returning an error that tells you exactly what is wrong.
Common Twilio error codes and fixes:
| Error Code | Meaning | Fix |
|---|---|---|
| 21604 | "To" phone number is required | Add the recipient phone number in the plugin settings |
| 14101 | Invalid "To" attribute | Check number format and verify the number if using a trial account |
| 4XX | General API error | Look up the specific code in Twilio's error documentation |
The fix: Enable the "Show Error Message" option in your plugin settings. Submit the form again. Copy the exact error message and look it up in Twilio's API error documentation.
For a full breakdown of timeout issues that may affect SMS delivery, refer to this article on Contact Form 7 API timeout.
The Debugging Checklist
Work through this sequence every time an SMS fails to send:
| Step | Action | What It Tells You |
|---|---|---|
| 1 | Check Twilio Console logs | Was a request sent? If not, the problem is in WordPress. |
| 2 | Check plugin SMS History | What content was sent? Are tags replaced? |
| 3 | Enable error display | What specific error is returned? |
| 4 | Test with hardcoded values | Isolates tag issues from configuration issues. |
| 5 | Verify number format | E.164 format: +[country code][number] |
| 6 | Check trial account limits | Are you sending to a verified number? |
Beyond SMS: One Form, Multiple Destinations
Once your Twilio SMS integration works, you might want to send the same form submission to other tools: a CRM, an email marketing platform, or a help desk system.
A good connector plugin supports multiple API integrations from a single form submission. You can send an SMS via Twilio, create a Zendesk ticket, add the contact to HubSpot, and subscribe them to Mailchimp, all from one CF7 submission, without Zapier. For a cost comparison, see this article on Zapier vs a dedicated API plugin.
Key Takeaways
Phone numbers must be in E.164 format (+14155552671). Domestic-only formats will fail.
Tags not working is a known bug in some integrations. Test with plain text first, then add tags one at a time.
Twilio trial accounts can only send to verified numbers. Upgrade or verify your recipients.
A2P 10DLC registration is now required for US business SMS. Incomplete registration means blocked messages.
Twilio Console logs are your best debugging tool. Check them first, every time.
With the right number format, correct account configuration, and a quick check of the logs when things go wrong, your CF7-to-Twilio SMS notifications will work reliably every time.
Top comments (1)
Checking Twilio logs first is a useful way to separate a WordPress-side failure from a delivery issue. Including the message SID and final status would make the troubleshooting trail even clearer.