Channels
SMS & Push Notifications
Bring your own Twilio account for SMS and RCS, and switch on browser push, which is unlimited on every plan.
Email is just one channel. xUpsell also lets you reach customers through text messages (SMS/MMS) and push notifications. This page covers how to set up both.
SMS & MMS (Text Messages)
SMS lets you send text messages directly to your customers’ phones. It’s one of the most effective marketing channels — SMS messages have a 98% open rate compared to ~20% for email.
What You Need
To send SMS through xUpsell, you need a Twilio account. Twilio is the messaging service that handles the actual delivery — xUpsell connects to it and sends messages on your behalf.
Why Twilio?
Twilio is the industry standard for business text messaging. It’s used by companies like Airbnb, Uber, and Shopify itself. It gives you:
- A real phone number to send from
- Reliable delivery worldwide
- Support for both SMS (text) and MMS (pictures)
- Compliance with US messaging regulations
- Pay-per-message pricing (no monthly minimum)
Setting Up Twilio — Step by Step
Step 1: Create a Twilio Account
- Go to twilio.com
- Click Sign Up
- Enter your email and create a password
- Verify your phone number
- Complete the short onboarding questionnaire
Twilio’s trial credits: Twilio gives new accounts credits to test with. While you’re on those credits, Twilio only delivers to phone numbers you’ve verified in your Twilio console. Upgrade your Twilio account when you’re ready to send to customers.
Step 2: Get Your Credentials
You need two pieces of information from Twilio:
- Log into your Twilio Console
- On the dashboard, you’ll see:
- Account SID — your account identifier (starts with “AC”)
- Auth Token — your secret key (click to reveal)
- Copy both values
Keep your Auth Token secret. Treat it like a password. Don’t share it or put it in emails.
Step 3: Connect Twilio to xUpsell
- In xUpsell, go to Settings → SMS & Communications
- Click Connect — the Enter Twilio Credentials window opens
- Enter your Account SID
- Enter your Auth Token
- Click Save
- The card now shows your Account SID and “Account connected” ✅, and the first step of the Twilio setup progress bar is ticked
You only enter these two values — Account SID and Auth Token. There is no separate phone-number field to fill in; xUpsell reads your numbers directly from your Twilio account once connected. Your Auth Token is validated and stored server-side — it’s never exposed back to the browser.
Once connected, a View Usage Statistics link appears on the card. It shows your Twilio account balance and usage records (SMS, MMS, calls, phone numbers) for the last 7, 30 or 90 days, or all time — handy for checking what Twilio is actually charging you.
Step 4: Get a Phone Number
You need a Twilio phone number to send messages from. Once your account is connected, xUpsell automatically lists any numbers already on your Twilio account. If you don’t have one yet, you can buy one without leaving xUpsell:
- Go to Settings → SMS & Communications
- Click Buy Number (on the Active Phone Numbers card, or in the setup progress bar)
- Choose a country — United States, Canada, United Kingdom or Australia — and optionally a type (Local or Toll-Free). You can also type digits to search for numbers containing them
- Click Search. Each result shows its location, its capability badges (SMS, MMS, Voice), whether an address is required, and the monthly Twilio price
- Select one number, then confirm the purchase
Make sure the number you pick has the SMS badge (and MMS too if you plan to send images).
The number you buy is purchased on your own Twilio account and appears in your Active Phone Numbers list automatically — ready to send from.
Releasing a number: select it in the Active Phone Numbers list and choose Remove number(s). This releases it in Twilio, so Twilio stops charging you the monthly fee. It cannot be undone.
Which number do messages come from? If you own several numbers, xUpsell sends from the first one with an In Use status. (If you enable RCS, sending goes through your Messaging Service instead — see below.)
Step 5: A2P 10DLC Registration (US Only)
If you’re sending SMS in the United States, you need to register for A2P 10DLC. This is a requirement from US mobile carriers — without it, your messages may be filtered or blocked.
What is A2P 10DLC?
A2P stands for “Application-to-Person.” 10DLC stands for “10-Digit Long Code.” It’s a registration system that tells carriers your business is a legitimate sender, not a spammer.
How to register:
- Log into your Twilio Console
- Go to Messaging → Trust Hub
- Register your business:
| Information Needed | Details |
|---|---|
| Business name | Your legal business name |
| Business type | Sole proprietor, LLC, corporation, etc. |
| EIN / Tax ID | Your US business tax identification number |
| Website | Your store URL |
| Use case | Select “Marketing” |
- Register your brand
- Create a messaging campaign (describe your SMS use case)
- Submit for approval
Approval time: Usually 1–5 business days. You can still send to verified numbers while waiting, but delivery to unverified numbers may be limited.
Step 6: Send a Test Message
There are two ways to check your setup end to end:
If you’ve enabled RCS (see the next section), use the Send test button on the RCS Messaging card. Enter your own phone number with its country code and xUpsell sends a real message to it.
Otherwise, send a campaign to a single subscriber:
- Go to Subscribers and open your own subscriber record (it needs a phone number on its profile)
- Click Send campaign — the campaign is pre-filled to target only that subscriber
- Add your SMS message and run it
- Check your phone
Test messages are real messages. They go out through Twilio (so Twilio bills you) and they count as one send against your xUpsell plan limit, exactly like any other SMS.
If the test arrives, your SMS setup is complete.
RCS Messaging (Optional Upgrade)
RCS (Rich Communication Services) is a modern upgrade to standard texting. Instead of a plain message from an unknown number, your customers see a branded message — with your business name, logo, and support for rich media. It looks polished and trustworthy, which can improve engagement.
RCS is optional. If you don’t set it up, your text messages still send normally as SMS/MMS.
How It Works
When RCS is enabled, xUpsell sends every text message through your Twilio Messaging Service, which tries RCS first. If a customer’s phone or carrier supports RCS, they get the branded rich message. If it doesn’t, Twilio delivers that same message as a regular SMS instead — provided your Messaging Service’s Sender Pool also contains a phone number. That number is what the fallback is sent from. With an RCS Sender alone in the pool, customers without RCS receive nothing. xUpsell guards against that twice: it checks for the number when you enable RCS and tells you if it’s missing, and it checks again every time a text is about to go out — if the pool has been emptied in Twilio since, the send stops with a message naming the problem instead of failing silently at Twilio’s end.
Setting Up RCS
RCS is configured on its own card in Settings → SMS & Communications, below your Twilio connection and your phone numbers. Until you set it up, the card shows a Not configured badge. You’ll need a Twilio Messaging Service that has an RCS Sender attached.
- In your Twilio Console, create an RCS Sender (Twilio Console → RCS → Senders)
- Create a Messaging Service (Twilio Console → Messaging → Services)
- Add your RCS Sender and phone number to that Messaging Service
- Copy the Messaging Service SID — it starts with “MG” and is 34 characters long
- Back in xUpsell, paste it into the RCS Messaging card and click Enable RCS
xUpsell verifies the SID with Twilio before saving it — three checks: the service exists, it has an RCS Sender in its Sender Pool, and it has a phone number there for SMS fallback. A service with no RCS Sender is refused with a message telling you where to add one. A service with an RCS Sender but no phone number is accepted, and the card shows a No SMS fallback warning. That warning appears in the session where you entered the SID — after a page reload the card no longer knows the result and stops showing it, so don’t take its absence as confirmation that a fallback number exists. Re-enter the SID to check again. Once accepted, the card shows a Connected badge along with your Messaging Service name, and three buttons: Send test, Change and Disable.
What Changes Once RCS Is On
| Standard SMS | With RCS enabled | |
|---|---|---|
| Message length in the editor | 160 characters | 1,600 characters |
| The step is labelled | SMS/MMS | SMS/MMS/RCS, with an RCS badge |
| Sent through | your first active phone number | your Messaging Service (RCS first, then SMS from the phone number in its Sender Pool) |
| If no number is available | the step fails with “No active phone numbers available” | the step fails with “Your Twilio Messaging Service has no phone number in its Sender Pool” |
Turning RCS off: Use the Disable button on the RCS card at any time and confirm. Your messages go back to sending as standard SMS/MMS, and the editor’s limit returns to 160 characters. Your Twilio Messaging Service and RCS Sender are not affected, so you can re-enable RCS later by pasting the SID again.
Disconnecting Twilio
To unlink your Twilio account, click Disconnect on the Twilio card in Settings → SMS & Communications and confirm.
Disconnecting will:
- Stop all SMS/MMS sending from xUpsell
- Remove the Twilio account link from xUpsell
Disconnecting will not:
- Release your phone numbers from Twilio
- Stop Twilio from billing you for those numbers
Important: if you’re disconnecting to stop paying Twilio, release your phone numbers first — select them in Active Phone Numbers and choose Remove number(s). Once xUpsell is disconnected, you’d have to release them from the Twilio console instead. Reconnecting later is just a matter of entering your Account SID and Auth Token again.
SMS Best Practices
What to Do
| Practice | Why |
|---|---|
| Keep messages short | The message editor stops you at 160 characters (1,600 with RCS enabled), so write tight |
| Identify your brand | Start with your store name so customers know who’s texting |
| Include a clear call-to-action | Tell customers exactly what to do (click this link, use this code) |
| Respect timing | Only send between 9 AM – 9 PM in the customer’s timezone |
| Include opt-out info | Include “Reply STOP to unsubscribe” so customers know how to opt out |
A note on consent and STOP handling: SMS opt-in and opt-out (STOP) are managed at the Twilio and carrier level, not by xUpsell. Twilio automatically honors STOP replies for your account and won’t deliver to numbers that have opted out. It’s your responsibility to only text customers who have consented, and to follow the SMS regulations that apply to you.
Personalization tags don’t work in messages. Text like
{{user.name}},{{cart_url}}or{{product.title}}would be delivered to your customer exactly as you typed it.{{discount_code}}works in SMS, email and push notifications alike — but only when a Discount step ran earlier in the same workflow, so there’s a code to insert. In SMS steps only, four link tags also work and are replaced with real URLs for your store:{{store}},{{cart_page}},{{checkout_page}}and{{product_page}}. Anything else you type in double braces is delivered to your customer exactly as written.
What Not to Do
| Avoid | Why |
|---|---|
| Sending without consent | Illegal in many jurisdictions. Customers must consent to SMS marketing before you text them |
| All caps messages | Reads as shouting. Looks spammy |
| Too many messages | 2–4 SMS per month is the sweet spot. More causes opt-outs |
| Late night texts | Annoying and may violate regulations |
Best Sending Times for SMS
| Use Case | When to Send |
|---|---|
| Abandoned cart recovery | Within 1–2 hours of abandonment |
| Promotional offers | Midday (11 AM – 2 PM) |
| Flash sales | When the sale starts |
| Reminders | Morning (9–10 AM) |
SMS Pricing
Twilio charges per message sent. xUpsell does not add any extra SMS fees — you only pay Twilio’s rates.
| Region | Approximate Cost per SMS |
|---|---|
| United States | ~$0.0079 |
| Canada | ~$0.0075 |
| United Kingdom | ~$0.0420 |
| Australia | ~$0.0525 |
Check twilio.com/sms/pricing for current rates in your region.
MMS (messages with images) costs more — roughly $0.02 per MMS in the US.
Two separate costs to keep in mind. Twilio charges you per message, and every SMS or MMS delivered also uses one of your xUpsell plan’s sends (100 on free, 500 on Basic, unlimited on Pro and Premium — shared with email). See Plans & Billing for how that pool works.
Push Notifications
Push notifications are browser-based alerts that appear on your customer’s desktop or mobile device — even when they’re not on your website.
The Good News: Nothing to Connect
Unlike email and SMS, push notifications need no external service — no API keys, no accounts, no per-message fees. There’s just one switch to flip in your theme.
Here’s what happens:
- Turn on the push notifications block in your theme. Go to Settings → Theme management and click Enable on Enable push notifications. Your Shopify theme editor opens in a new tab — activate the block there and save. (The Turn on browser notifications task in your Home Setup Guide opens the same editor.)
- Customers visit your store and see the browser’s notification permission prompt
- If they click Allow, they become a push notification subscriber
- You can now send them push notifications through workflows and campaigns
Back in Settings → Theme management the card shows “enable notifications enabled” once the block is active. Two other blocks live on the same tab — Lead magnet (the discount popup) and Enable custom events subscription — and work the same way.
Nothing sends until the block is live. With the block switched off, your store never asks for permission, so you collect no push subscribers and push steps in your workflows have nobody to reach.
Push Notifications Are Always Unlimited
Push is unlimited on every plan, including free, and it is excluded from your send total — a push notification never uses one of your email/SMS sends and is never billed. That also means push keeps working when your email and SMS sending is paused because you hit a plan limit, which makes it a useful safety net at the end of a billing period.
How Push Notifications Look
Push notifications appear as small banners on the customer’s device:
- Desktop: Small popup in the corner of the screen
- Mobile: Standard notification on the phone’s lock screen or notification tray
What you can put in one, straight from the notification step in the workflow editor:
| Field | Limit |
|---|---|
| Title | Up to 65 characters (required) |
| Message | Up to 240 characters (required) |
| Logo / icon and image | Optional |
| Buttons | Up to 2, each with its own label and link |
| Click destination | The page the notification opens |
The editor shows a live preview as you type, so you can see how it will look before you save.
Using Push Notifications in Workflows
You can add push notification steps to any workflow. They work alongside email and SMS:
Example multi-channel abandoned cart workflow:
- Customer abandons cart
- Wait 1 hour → Send push notification: “You left something in your cart!”
- Wait 4 hours → Send email with cart details and product images
- Wait 1 day → Send SMS with a discount code
Push Notification Tips
| Tip | Details |
|---|---|
| Keep it short | You have limited space — get to the point in 10 words or fewer |
| Use urgency | ”Your cart expires soon” works better than “Don’t forget your cart” |
| Don’t overuse | 1–2 push notifications per workflow is enough. Too many and customers disable them |
| Pair with other channels | Push works best as the first touchpoint, followed by email or SMS |
Combining All Three Channels
The real power of xUpsell is using email, SMS, and push notifications together in a single workflow. Here’s why:
| Channel | Strengths | Weaknesses |
|---|---|---|
| Rich content, images, links, detailed info | Lower open rates (~20%), can land in spam | |
| SMS | 98% open rate, immediate, personal | Character limits, costs per message, opt-in required |
| Push | Instant, free, no opt-in friction | Limited content, easily dismissed, requires browser permission |
Recommended Multi-Channel Strategy
For abandoned cart recovery:
| Step | Channel | Timing | Why |
|---|---|---|---|
| 1 | Push notification | 1 hour after | Instant reminder, free, catches them while browsing |
| 2 | 4 hours after | Detailed reminder with product images and cart link | |
| 3 | SMS | 24 hours after | Personal nudge with a discount code to close the deal |
For welcome series:
| Step | Channel | Timing | Why |
|---|---|---|---|
| 1 | Immediately | Welcome message with brand story and what to expect | |
| 2 | Push notification | Day 2 | Quick reminder about a new arrival or bestseller |
| 3 | Day 4 | Product recommendations based on browsing | |
| 4 | SMS | Day 7 | Exclusive first-purchase discount |
Tip: Use Conditions in your workflows to check if a customer already purchased before sending the next message. No point sending a cart recovery email to someone who already bought.
Troubleshooting
SMS Issues
”Connection Failed”
- Verify your Account SID is correct (starts with “AC”)
- Verify your Auth Token is correct
- Check that your Twilio account is active (not suspended)
- Make sure you’re not on a free trial that has expired
”SMS Not Delivering”
| Check | Solution |
|---|---|
| No plan selected | Until you choose a plan in Settings → Plans & billing, all email and SMS sending is blocked. The free plan counts |
| Send limit reached | If your plan’s sends are used up, SMS steps are skipped and marked failed. Check the Home page banner |
| No active phone number | You need at least one number with an In Use status on your Twilio account, otherwise the step fails with “No active phone numbers available” |
| Subscriber has no phone | An SMS step fails with “No phone number found” if that subscriber’s profile has no phone number. Only subscribers with a phone number can be texted |
| Phone number format | Must include country code: +1XXXXXXXXXX |
| Twilio balance | Make sure you have credits. Top up at twilio.com |
| A2P 10DLC | Register if sending to US numbers. Without it, carriers may filter messages |
| Twilio error logs | Check your Twilio Console → Logs → Errors for specific error codes |
| Recipient opted out | If someone replied STOP, Twilio blocks delivery to that number at the carrier level |
”Invalid Phone Number”
- Must include country code (+1 for US, +44 for UK, etc.)
- Spaces, brackets and dashes are fine — xUpsell strips them before sending, so
+1 (212) 555-1234works as well as+12125551234 - Some VoIP numbers (Google Voice, etc.) may not receive SMS
Push Notification Issues
”Customers Aren’t Getting Push Notifications”
- Make sure Enable push notifications is switched on in Settings → Theme management — and that you saved the block in the theme editor
- Customers must click Allow when prompted — if they clicked Block, they won’t receive notifications
- Check the Push notifications count on the Subscribers page. It counts only visitors who granted permission, so if it’s 0 nobody has said yes yet (visitors who declined still appear in the subscriber list, just without push)
- Some browsers (especially private/incognito mode) don’t support push notifications
Frequently Asked Questions
Do I need Twilio to use xUpsell?
No. Twilio is only needed for SMS/MMS. You can use xUpsell for email-only and push notification-only without Twilio.
How much does SMS cost?
Twilio charges per message (approximately $0.0079 per SMS in the US). xUpsell does not add any extra SMS fees. You only pay Twilio directly.
Do SMS count toward my xUpsell plan limit?
Yes. Email and SMS sends share one pool: 100 on free, 500 on Basic, and unlimited on Pro and Premium. A text to 50 subscribers is 50 sends. Only messages Twilio actually accepts are counted — failed sends don’t count. Push notifications never count.
Can I send MMS (text messages with images)?
Yes, if your Twilio phone number has the MMS capability. Add an image to the SMS step and it’s sent as an MMS. Note that MMS costs more than plain SMS at Twilio. Images, audio, video and file attachments on the step are all passed to Twilio as media — but whether a recipient actually receives them depends on their carrier and handset, and on your Twilio number supporting MMS.
How long does A2P 10DLC registration take?
Usually 1–5 business days. You can still send to numbers you’ve verified in Twilio while waiting.
Do customers need to opt in for SMS?
Yes. SMS marketing requires explicit customer consent in most countries, and it’s your responsibility to only text customers who have agreed to receive messages. Consent and STOP (opt-out) handling are managed at the Twilio and carrier level — Twilio automatically honors STOP replies and won’t deliver to numbers that have opted out.
Are push notifications free?
Yes. There’s no per-message cost, they’re unlimited on every plan (including free), and they don’t count toward your xUpsell send limit. They also keep working if your email and SMS sending is paused because you’ve hit a plan limit.
Do I need Twilio or SendGrid to use push notifications?
No. Push is the one channel with nothing external to connect — just switch on Enable push notifications in Settings → Theme management.
What if a customer blocks push notifications?
There’s nothing you can do — that’s a browser-level setting controlled by the customer. Focus on reaching them through email or SMS instead. This is why multi-channel workflows are so powerful.
Can I send push notifications on mobile?
Push notifications from web apps work on Android browsers. iOS support depends on the browser version and whether the customer added your site to their home screen.