If you sell on Shopify or ring up sales on Square, the easiest texting option is the one already in your admin panel. Turn on a checkbox, collect phone numbers at checkout, pick a template, and send. For a lot of stores, that's the right call, and staying there makes sense.
The built-in route has real limits. They usually show up once you want behavior the add-on wasn't built for: two-way conversations with customers, texts triggered by your own systems, or a line item on the bill you can audit segment by segment. This post walks through setup on both platforms, what each piece costs in practice, and the point where an external provider (including Ready, which we make) earns its place.
How texting works inside Shopify
Shopify doesn't send marketing texts on its own in any serious way. Its native messaging tools center on email. SMS usually comes from an app in the Shopify App Store. The common pattern looks like this:
- Turn on SMS consent at checkout. In your checkout settings, enable the option that lets customers subscribe to SMS marketing. Shopify stores the opt-in on the customer record. That stored opt-in is your consent record, so keep it intact.
- Install an SMS app. The app reads your customer list and store events (cart created, order placed, order fulfilled) and turns them into flows.
- Let the app handle registration. Most apps register a sender for you, either a 10DLC number or a toll-free number. Ask which one, because the two have different throughput and approval paths.
- Build your flows first, campaigns second. Abandoned cart, welcome, and shipping updates are the triggered texts that pay for themselves. One-off promos come after.
We cover the app landscape in more detail in Shopify SMS marketing: options and rules. Timing and wording for the most valuable flow are in abandoned cart SMS.
What Shopify apps do well
The integration is the product. A Shopify-native app knows a cart was abandoned 47 minutes ago, which products were in it, and whether the customer already bought. Rebuilding that event plumbing from scratch is real engineering work. If your texting is mostly cart recovery and promos, a native app saves you that effort.
How texting works inside Square
Square's text marketing lives inside Square Marketing and is tied to your customer directory. Setup is shorter because it assumes a simpler use case:
- Collect opt-ins. Customers join through your checkout flow, an online form or a sign-up prompt, depending on your setup. Only customers who opted in can be texted.
- Verify your business details. Square needs these to register your sending on carrier routes.
- Pick a campaign type. Promotions, announcements, or a loyalty-style nudge.
- Send to a directory segment. Examples include customers who visited in the last 90 days, or customers who spent over a set amount.
Square's text marketing fits a coffee shop, salon or retail counter that wants to announce a sale or a new menu item. It isn't built for order-by-order automation or for a conversation inbox staffed by your team. Check Square's current plan page for pricing, since it's bundled into a subscription and changes over time.
The limits you'll hit with built-in tools
These are the walls we see merchants run into most often. Not every store will hit them.
- Subscription or bundled pricing you can't break down. Many add-ons charge a monthly plan plus message credits. That's fine until you want to know what one campaign actually cost.
- One-way bias. Replies may land in a basic inbox or nowhere useful. If customers text back "is this in a size 10?", someone has to answer.
- Locked to platform data. A Square campaign can't easily trigger from your warehouse system. A Shopify app can't text a wholesale customer who isn't in Shopify.
- Multiple sales channels, multiple lists. If you sell on Shopify online and Square in-store, you end up with two consent lists, two opt-out lists and two senders. A customer who texts STOP to one may still get texts from the other. That's a compliance problem, not just a tidiness problem.
- Registration you don't control. When the app owns the sender, a rejected or throttled campaign is a support ticket you wait on.
When an external provider makes sense
An external provider is worth considering once one of these is true:
- You want one sender and one opt-out list across Shopify, Square and anything else.
- You need two-way texting with a real inbox.
- Your developers want to fire texts from your own systems through an API.
- You want the bill itemized per segment with carrier fees shown separately.
To be straightforward about the tradeoff: Ready doesn't sit inside Shopify's or Square's admin. You either import consented contacts into the Ready app, or your developer sends from your systems through the messages API. You give up the click-to-install event plumbing in exchange for control.
A bulk send through the API looks like this. Batches go up to 100 recipients per call:
POST https://api.tryready.com/v1/messages/bulk
X-API-Key: <your key>
Idempotency-Key: 4f1c2a9e-8b3d-4c7a-9f21-6e0b5d3a7c11
{
"to": ["+12125550199", "+15559876543"],
"body": "Ready Goods: our spring restock is live. 15% off through Sunday with code SPRING. Reply STOP to opt out.",
"consent_attested": true
} consent_attested is your promise that each recipient agreed to texts. Ready records that attestation per send (who sent, to how many, when) as an audit trail. It is not a per-contact consent record, though. The opt-in Shopify or Square captured at checkout is still the record you keep. Opt-outs and numbers on your Ban list are refused up front and not charged. Texts timed during a recipient's quiet hours are held and sent later if the window opens within 6 hours; otherwise the API refuses them with 409 QUIET_HOURS_BLOCK and they must be resent.
What texting costs: a worked example
Ready's Standard rate is $0.0075 per segment, plus a $0.0045 carrier fee per segment. That all-in figure excludes the optional compliance surcharge: TCPA/DNC scrubbing and landline validation are $0.003 extra per segment each when switched on, and both are off by default.
Example assumptions: 5,000 opted-in customers, one promo.
| Message | Segments each | Total segments | Segment charges | Carrier fees |
|---|---|---|---|---|
| 150 characters, plain text | 1 | 5,000 | 5,000 × $0.0075 = $38 | 5,000 × $0.0045 |
| 175 characters with one emoji | 3 | 15,000 | 15,000 × $0.0075 = $113 | 15,000 × $0.0045 |
The emoji tripled the bill. One non-GSM character drops a segment from 160 characters to 70 (67 when the message runs to multiple parts), so 175 characters becomes three segments. Ready swaps curly quotes, long dashes and ellipses for plain characters automatically, but emoji stay as written. Replies are billed like sent texts, so a promo that sparks conversation costs a little more than the send alone.
Registration on Ready has no setup fee. You pay $25 at submit, which covers the first month. After that, the monthly cost is $25/mo for registration, and $2 per number, and most approvals take 2 to 7 days. The first 20 texts are free one-to-one sends, so use them to test before you register. A campaign is paid from its first text, and to send any text you need a card and a number ($2 a month, the first month charged when you get it). The 10DLC cost breakdown covers every fee line.
A note on comparison: Twilio and GoHighLevel/LeadConnector cost less per message than Ready Standard. If raw per-segment price is your only criterion, they win on that. What Ready includes is self-serve registration in-app, opt-out handling, quiet-hours holds, and a platform with CRM, pipeline, automations and a unified inbox. Whether that's worth it depends on how much of it you'd otherwise build or buy.
Throughput: the limit nobody mentions at setup
A fresh 10DLC campaign with no vetting typically gets roughly 1 to 4 segments per second. At an assumed 2 segments per second, the 15,000-segment emoji campaign above takes about two hours to finish sending.
T-Mobile also caps daily volume by brand trust score. The lowest tier sits around 2,000 messages a day, and higher tiers run to roughly 10,000, 40,000 and beyond. A 5,000-person list on a low-trust brand may not finish in one day. Brand vetting ($79 Standard / $179 Enhanced, one-time) can lift the daily cap if your score crosses a tier, but it doesn't change the per-second rate. Built-in tools face the same carrier caps; they just don't always show you the cap.
Compliance doesn't move with the tool
Whichever route you choose, compliance remains your responsibility as the sender. Before your first campaign, confirm the following:
- Every recipient opted in to marketing texts, and your store kept that record.
- Your first message names the store and says how to opt out.
- STOP is honored across every channel you send from.
- Your promo copy avoids the patterns carriers filter. See the content signals that get marketing texts filtered.
Scrubbing against known TCPA-litigator and DNC lists is a cheap risk reducer, given exposure of $500 to $1,500 per text. It lowers risk; it doesn't make you immune.
The practical takeaway
If your texting is cart recovery and the occasional promo, start with your platform's add-on. It's the shortest path. Move to an external provider when you need one opt-out list across channels, two-way conversations, API triggers, or a per-segment bill you can audit. If that's where you are, check the per-segment card on the pricing page, skim the quickstart, and sign up to send your 20 free test texts before you register.