💬 SalesByte

Shopify

Turn every Shopify order into automatic WhatsApp updates, audience filters, and follow-up journeys.

Connect Shopify and every order that comes in becomes a contact automatically, with WhatsApp updates sent at each step — order confirmed, Cash on Delivery confirmed, shipped, delivered — plus the customer data you need to filter, retarget, and build abandoned-cart follow-ups.

Every message type below is off by default. Turn on only what you need in Settings → Shopify.

Connect your store

  1. Go to Settings → Shopify
  2. Enter your store domain (your-store.myshopify.com)
  3. Click Connect Shopify and approve the request on Shopify's own screen
  4. You're back on the Shopify settings page, now showing Connected

If the connection ever shows Needs reconnecting, click Reconnect. If orders stop arriving after you change something on the Shopify side (a new domain, an app permission), use Refresh connection — it re-registers the webhooks without you having to reconnect from scratch.

Automatic WhatsApp order messages

Under Order messages, turn on any combination of:

MessageSent when
Order confirmationThe order is paid
Cash on Delivery confirmationThe order's payment method is COD — SalesByte detects this automatically and asks the customer to confirm, which cuts down failed/refused deliveries
Order has shippedShopify marks the order as fulfilled
Order deliveredYour courier reports delivery back to Shopify — many local/COD couriers don't report this, so this one won't fire for every order

Each needs its own approved WhatsApp utility template (text-only header, or no header — no image/video/document headers).

Choosing what fills each variable

Once you pick a template, SalesByte shows one dropdown per {{n}} placeholder the template actually has, and you choose what fills each one:

SourceFills with
Customer nameThe contact's name
Order numbere.g. #1234
Order totalAmount and currency
Product name(s)Up to 3 product names, "& N more" beyond that
Tracking linkShopify's tracking URL (shipping/delivery messages only)
Shipping addressOne-line address

This mapping is remembered per template — if you switch to a different template with a different number of placeholders, SalesByte resets the mapping to match rather than leaving a stale choice behind.

Cart recovery

A single reminder for anyone who starts checking out and doesn't finish:

  1. Turn on Remind customers who left items in their cart
  2. Set how many minutes to wait before sending
  3. Pick a template

The reminder links back to the customer's own cart, pre-filled with what they were buying.

If you build a Shopify cart abandoned journey (below) for the same purpose, turn this toggle off — otherwise a customer gets both the single reminder and your journey's messages for the same abandoned cart.

Add customers to a Sequence or Journey

Turn on Add customers to a Sequence or Journey when they order and pick one. This fires once per real order, on top of any messages above — useful for a longer follow-up flow beyond a single confirmation.

For branching, multi-step follow-ups (send after 1 hour, a stronger nudge after 6 hours, stop early if they've already bought), build a Journey instead — see below.

Bring in your existing data

Under Setup:

ActionWhat it does
Import existing customersBrings in everyone who was already a customer before you connected Shopify, as contacts
Sync order historyBrings in orders placed before you connected, so filters like "ordered more than 90 days ago" or "total spent" see your full history, not just orders from today onward
Sync productsPopulates the product list used by product-based journey triggers and filters

None of these three send any messages — they only backfill data, so your automatic order messages never fire retroactively for old orders.

Set a Review link (your Judge.me, Loox, or similar review page) once, and it becomes available to any journey message as a "Review link" variable — see Journey message variables below.

Filter your audience by Shopify data

Once orders are flowing in, these become available anywhere you already filter contacts — the Contacts page, a campaign's audience builder, and a journey's If/else step, since all three share the same filter panel:

FilterExample
Number of orders3 or more orders
Total spentMore than ₹5,000
Last orderIn the last 30 days, or more than 90 days ago (including customers who've never ordered)
Product purchasedBought "Night Cream"
Shipping state / countryState is Karnataka
Traffic source / medium / campaignCame from a Meta ad

See Audience Filters for how to combine these with your other filters.

Journeys built for Shopify

Two journey triggers exist specifically for Shopify stores, plus template variables that pull from a real order or cart. Full journey concepts are covered in Journeys — this section covers what's Shopify-specific.

"A Shopify order is placed"

Starts a journey when an order comes in. Configure:

  • When: as soon as it's placed, once it's paid, or once it's delivered
  • Cash on Delivery only — narrow to just COD orders
  • Specific products — only orders containing the products you pick, so a night-cream journey doesn't fire for a sunscreen order

"A Shopify cart is abandoned"

Starts a journey when someone begins checking out on your store and doesn't finish — before Shopify's cart even becomes an order. Unlike the single Cart recovery reminder above, a journey lets you build a real sequence: a nudge after an hour, a stronger one after 6 hours, and so on, using ordinary Wait steps.

Turn off Cart recovery's toggle if you use this trigger for the same store, or a customer can receive both.

The "Check cart status" step

Drop this logic step into a cart-abandoned journey to check whether the cart it's following up on has already been bought. It branches into:

  • Already bought — skip the remaining follow-up messages
  • Still abandoned — continue the sequence

This is what lets a 3-step nudge sequence stop early the moment someone actually checks out.

Shopify variables in journey messages

Inside a journey's message step, these are available alongside the usual {{name}}-style variables:

VariableResolves to
Track order linkThe order's Shopify order-status page
Reorder linkA pre-filled cart with what was in that order
Cart recovery linkThe abandoned cart itself, pre-filled
Review linkYour configured review page
Shopify: customer nameThe customer's name on the order or cart
Shopify: product name(s)What was ordered or is in the cart
Shopify: addressOne-line shipping address
Shopify: order numbere.g. #1234 (order-triggered journeys only — an abandoned cart has no order number yet)
Shopify: order/cart totalThe amount, whichever the journey was triggered from

Troubleshooting

Orders stopped coming in — try Refresh connection first (Settings → Shopify). If that doesn't help, Reconnect.

A filter shows an empty result for older orders — run Sync order history first; filters only see orders that have actually reached SalesByte, and webhooks only cover orders placed after you connected.

Connection shows "Needs reconnecting" — Shopify expired or revoked the connection. Click Reconnect.

Still stuck? Contact support or email support@salesbyte.app.