Skip to main content
Shopify is the deepest store integration in Senderz. Once connected, it syncs your customers and order history, streams live store events into automations, keeps a product catalog in sync, serves popups through a theme app embed, and can bill your Senderz plan on your Shopify invoice.
What is live today. Connect from the App Store or from inside Senderz, customer sync, order back-fill, live order and customer webhooks, product catalog sync, the storefront web pixel, the theme app embed for popups, Shopify billing for plans and SMS credit packs, and the mandatory privacy webhooks. All of this is built and running. The public App Store listing itself is still pending, so today you install through the link Senderz gives you rather than by searching the Shopify App Store.

Before you start

You need a Shopify account that can install apps and approve app charges, and a Senderz account where you are the owner or an admin of at least one workspace. A viewer, editor or designer cannot connect a store. Keep the store’s permanent your-store.myshopify.com address handy. A custom storefront domain such as example.com is not the identifier Shopify uses during connection.
Find the permanent address in Shopify under Settings, then Domains. It always ends in .myshopify.com, even when shoppers visit a custom domain.
If you plan to publish Senderz popups on the storefront, your published theme must support Shopify app embeds. You never paste a script into the theme and you never edit Liquid files.

Installing no longer creates a Senderz account

This changed on 6 August 2026. Read it before you install, because the old behaviour is what most people expect. Installing the app from Shopify proves you control that shop. It does not prove anything about a Senderz identity, so Senderz no longer creates an account, matches an account, or verifies an email address from your Shopify store email. What happens instead:
1

Shopify hands off to Senderz

Approving the install parks a pending connection that stays valid for 30 minutes, then opens Senderz in a new browser tab.
2

You sign in or register normally

You go through the normal Senderz sign-in, including two-factor authentication if you use it, or you register a new account and verify your email. Your store email is used only to pre-fill the email field. It never signs you in on its own.
3

You choose the destination workspace

Senderz shows a Connect screen headed with your store name, listing every workspace where you are an owner or admin, plus an option to create a new one. You pick the workspace that should receive this store’s customers, orders and storefront events.
4

You confirm before anything is imported

A confirmation dialog restates the store address and the destination workspace side by side. Nothing is imported and no charge is created until you confirm.
The workspace you pick owns the imported audience, store events, popups, segments and automations from that store, and it becomes the workspace billed through Shopify. Moving a store afterwards means disconnecting it from the first workspace.
If the handoff sits for more than 30 minutes you will see Shopify installation expired. Reopen Senderz from your Shopify admin to start a fresh connection.

Two ways to connect

Install the Senderz app in your Shopify admin and approve the requested permissions. Shopify then opens Senderz in a new tab and you complete the identity and workspace steps above. You never type your shop domain, because Shopify already told us which store you are installing on.This path is the one that also switches your Senderz billing to Shopify.
Allow popups for Senderz before using the in-app path. If your browser blocks the popup you will see Your browser blocked the popup. Allow popups and try again.

One store belongs to exactly one workspace

A Shopify store can be connected to a single Senderz workspace at a time, and a single workspace can hold one Shopify store. The two connect paths enforce that differently, and the difference matters.
Connecting a store from inside Senderz when it already belongs to another workspace will take it over. The old workspace stops receiving orders and customer updates and its stored Shopify credential is removed. Contact support before moving a live store so your history and audience ownership are handled deliberately.
Contacts, orders and analytics already recorded in the old workspace are kept. They simply stop receiving new store data.

Finish setup inside Shopify

After connecting, open Senderz inside your Shopify admin. The Setup & analytics card is the single place to confirm everything is wired. Work down the rows.
1

Shopify connection

Should read Connected. If it reads Reconnect required, your store access has lapsed. Click Reconnect Shopify and approve again.
2

Required scopes

Should read Approved. If it reads Permissions required, the row lists exactly which permissions are missing. Click Approve permissions, accept them in Shopify, then come back.
3

Web pixel

Should read Connected. Senderz creates and repairs its own pixel, so the row may also report that it created the missing pixel or refreshed its settings. Both of those are healthy. If setup failed, use Try pixel setup again. Only reconnect Shopify when the row says permissions are required.
4

Senderz App Embed

Click Enable in theme editor. Shopify opens your current theme editor on the App embeds panel. Switch on Senderz Popup, then click Save in the theme editor.Return to the Senderz tab and click Check again. The row should change to Enabled. The check reads your published theme, so enabling the embed on an unpublished theme will not clear it.
5

Initial data import

Shows the current status and the number of orders processed so far, with the history window underneath. You can close this page while it runs.
The remaining rows are read-only evidence that data is arriving. They are covered in Check that data is arriving.
Enabling the app embed makes storefront features available. It does not publish a popup. Build, target and publish popups in the full Senderz app. See Installing popups on your store.

The app inside Shopify admin

The Senderz app embedded in Shopify admin is a small shell, not the whole product. It covers connecting, checking setup, watching data arrive and choosing a plan. Campaigns, automations, popups, segments, templates and reporting all live in the full Senderz app. It has three screens in the left navigation:
  • Home, with your plan, store, sync state, contact usage and the Setup & analytics card.
  • Plans & pricing, where you pick or change a plan.
  • Help & FAQ, the built-in answers.
Open Senderz on the home screen takes you to the full app in a new tab. While the first import is running you also get Continue setup, which drops you into onboarding with that import already in view. Manage Billing goes to the plan screen.
Sign-in is per browser. Opening the full app in a new tab uses your normal Senderz session, so if you are signed out there you sign in as usual.

Permissions Senderz requests

Shopify shows you the full list on the approval screen. This is what each one is for. Shopify also grants read-level customer access automatically alongside the customer permission, which is what the Required scopes row checks.
A new permission is never granted to an existing installation automatically. When Senderz adds a permission, already-installed stores keep the old set until someone reconnects. If a feature reports missing permissions, reconnect the store and approve the full list.

Protected Customer Data

Customer email, name and phone are Protected Customer Data in Shopify’s terms. Shopify has to approve the app for those fields, and the approval has to reach your individual installation. If it has not, the customer sync stops with Shopify needs to approve customer data access and points you at the Shopify Partner Dashboard. The store stays connected and the next sync is expected to succeed once approval lands. No merchant action is needed beyond waiting, unless you own the Partner account making the request.

read_all_orders and your real history window

The 60 day limit is not a Senderz limit. Shopify’s standard order permission only exposes the most recent 60 days. Everything you may have read about a 730 day import applies only after Shopify grants the separate read_all_orders permission to your installation.
The Initial data import row tells you which one you are on:
  • 60-day history · read_all_orders approval required for 730 days means you are on the standard window.
  • 730-day history enabled means the extended permission is granted and Senderz will pull up to two years.
Shopify approving the app and the permission reaching your specific store are related but separate. If you still see the 60 day message after approval, reconnect Shopify so your store can grant the updated permission.

What syncs

Customers

Existing customers import on connect. New and updated customers arrive by webhook afterwards. Marketing consent is read from Shopify’s own subscription state, never assumed.

Orders

The last 60 days of order history import by default, or up to 730 days with the extended permission. Live orders then drive the full event pipeline.

Products

The catalog syncs when you connect and again every hour, so product data stays current for templates, coupons and product events.

Storefront behaviour

A Shopify web pixel reports product views, cart activity, collection views, searches and started checkouts, linked to identified contacts.
Senderz reads each customer’s Shopify marketing state per channel. A customer is only marked subscribed for email if their Shopify email marketing state is subscribed, and the same applies independently to SMS. Everyone else is stored so their order history and segmentation work, but they receive no marketing. A store signal can never re-subscribe somebody who opted out directly with Senderz. See Consent.

The order back-fill has a ceiling

A single back-fill run imports at most 25,000 orders. A run that reaches the ceiling is reported as incomplete with the reason order_limit_reached rather than stopping quietly, so you can see it happened. On the extended 730 day window, Shopify processes the export as a background job and Senderz polls it. A large catalogue of history can legitimately sit in a running state for a long time. Leave it alone. The row updates as Shopify makes progress.

Customers re-sync every day

Beyond live webhooks, Senderz re-runs the customer sync for every connected Shopify store once a day, overnight. It catches anything a webhook delivery missed. The daily run covers customers only. Order back-fill and product sync are re-run when you trigger a sync yourself, not on the daily pass. To force everything now, open Integrations, then the Shopify card, and use Sync now. The Historical data card on the same page has a Re-import action for pulling customers and orders again after a long disconnection.

Orders are reconciled every 30 minutes

Shopify occasionally fails to deliver a webhook. Every 30 minutes, Senderz re-pulls recently changed orders for every connected store, with a 10 minute overlap so nothing falls between runs, and records anything that never arrived. You see this as Last reconciliation in the Setup & analytics card. A recent timestamp means the safety net ran. Not run yet on a store connected minutes ago is normal.
An order recovered by reconciliation lands in your reports, revenue and customer timeline, but it does not trigger automations. Reconciliation exists to keep your numbers correct, not to fire a post-purchase flow hours late. Live webhooks are what start automations.

File synced customers into a list

Open Integrations, then the Shopify card, and use the Customer sync list card to pick a Senderz list that every customer synced from this store joins. Leave it on Do not file synced customers if you do not want one. Joining a list is not consent. What you may send is still decided by each contact’s own email and SMS opt-in.

Storefront pixel and theme app embed

These are two separate pieces and they do different jobs.
Senderz creates and maintains its own Shopify web pixel. You do not install it and there is nothing to paste. It reports product views, add to cart, remove from cart, cart views, collection views, searches, page views and started checkouts.Shopify runs the pixel in its sandboxed environment and only releases events a visitor’s privacy choice allows. A visitor who declines analytics consent produces no storefront event by design, so pixel totals are legitimately lower than raw storefront traffic.
The Senderz Popup app embed loads the Senderz storefront runtime on your published theme. Popups cannot render without it.Turn it on once under Online Store, then Themes, Customize on your published theme, then App embeds. Switching your published theme later can require enabling it again on the new theme.The embed has one advanced setting for the Senderz address. Leave it on its default unless Senderz support asks you to change it.

Which events flow in

Shopify webhooks map to Senderz events that can trigger automations and outbound webhooks.
Placing an order removes the customer from cart recovery automations, so somebody who buys stops receiving abandoned cart reminders.
Shipment events carry the tracking number, carrier and tracking URL where Shopify provides them, so shipping notifications can include them. See Flow triggers.

Check that data is arriving

The Setup & analytics card carries six timestamps: Last storefront event, Last popup impression, Last popup conversion, Last order placed, Last order paid and Last reconciliation. A newly connected store can correctly show No event yet until somebody actually performs that action. For an end to end check:
1

Open the storefront in a private window

Use your published storefront, not a preview link.
2

Accept the privacy prompt if your store shows one

Declining analytics consent will intentionally produce no storefront event, which looks like a broken pixel but is not.
3

View a product and add it to the cart

Both are storefront pixel events.
4

Trigger a popup if you have one published

Open it, and submit it if you want to test conversions.
5

Return to Senderz in Shopify admin and click Check again

The relevant timestamp should update within a moment.
You can also see the same event counts, with today’s totals, on the Shopify card under Integrations in the full Senderz app.

Notifications you will receive

Senderz raises an in-app notification for the events worth knowing about. They appear on the bell in the Senderz app.

Why authorisation expires

Shopify access is time limited by design. The working credential lasts about an hour and Senderz refreshes it silently in the background. The right to refresh lasts 90 days. That means a store nobody opens and nothing syncs for 90 days will eventually stop, and you have to reconnect it. In normal use the daily sync and live webhooks keep it refreshed, so this mostly affects dormant stores.

Billing through Shopify

This changed on 13 August 2026. There is no Shopify hosted plan page in the flow any more. You pick your tier inside Senderz and approve the charge on a Shopify confirmation screen.
When a store is connected by installing the app, that workspace is billed through Shopify and the charge appears on your regular Shopify invoice. Senderz never asks for a card in the embedded app.
1

Open Plans & pricing in the embedded app

From the Senderz app inside Shopify admin, use Plans & pricing in the left navigation, or View plans on the home card.
2

Review the recommended tier

Senderz recommends the smallest tier that fits your current active contact count and shows its monthly price.
3

Accept the contact-limit terms

Tick the acknowledgement that reaching your contact limit requires approving the next plan in Shopify, and that overflow contacts stay synced but are held out of marketing until you do.
4

Approve the charge in Shopify

Click Choose a plan in Shopify, or Change plan in Shopify if you already pay. Shopify shows its own approval screen. Approve it and you land back in Senderz with the plan active.
Plans bill every 30 days. Changing tier replaces the existing subscription rather than stacking a second one, so a downgrade does not bill you twice in the same period.

SMS credit packs

SMS credits are prepaid packs, not part of your plan. On a Shopify-billed workspace they are charged as a Shopify one-time charge, on the same invoice, and credits land in your wallet once Shopify confirms the charge. See SMS.

Moving from web billing to Shopify billing

If your workspace already pays through the Senderz web checkout and you then install the Shopify app, the workspace is moved onto Shopify billing. This is required by Shopify’s rules for installed apps.
The move does not cancel your existing web subscription. Contact Senderz support after installing so the old subscription is cancelled or refunded and you are not billed twice.
Connecting a store from inside Senderz for sync only does not move you onto Shopify billing.

What happens to your plan on uninstall

Uninstalling the app in Shopify ends Shopify billing, because the subscription belongs to the installation. The workspace returns to platform billing and its plan is reset to unpaid, which stops marketing sends until you choose a plan again. Your contacts, order history and analytics are kept. Reinstalling reconnects the store, and you then pick a plan again.

Privacy and data requests

Senderz handles Shopify’s mandatory privacy webhooks.
Senderz gathers what it holds for that customer, including the profile, the consent history count and the message history count, and emails it to the workspace owner with the subject “Customer data request from your store”. Nothing is changed or deleted.
The matching contact is anonymised, not hard deleted. Email, phone, name, timezone, locale, tags, notes, custom properties and consent evidence are cleared, both channels are set to unsubscribed, and the contact is soft deleted. Message subjects and metadata are scrubbed.Anonymising rather than deleting keeps your aggregate analytics and audit trail intact.
Applied across every contact in the workspace, along with removing the Shopify connection and its stored credential.
Uninstalling the app on its own does not erase your Senderz workspace. If you want the workspace closed as well, contact support so the correct store and retention request are confirmed.

Help inside the app

The embedded app ships its own FAQ under Help & FAQ in the left navigation, covering getting started, the web pixel and app embed, customers and syncing, consent and compliance, and plans and limits. It is the fastest answer while you are already in Shopify admin.

Troubleshooting

Disconnecting or uninstalling

Disconnecting from the Shopify card under Integrations does all of the following:
  • Stops customer and order sync and stops live store events.
  • Removes the store webhooks Senderz provisioned.
  • Revokes Senderz’s permission at Shopify, so reconnecting means approving the permissions again.
  • Deletes the stored Shopify credential.
  • Takes this store’s metric mappings out of service, keeping your own customisations so a reconnect restores them rather than reverting to defaults.
  • Returns the workspace to platform billing and resets the plan to unpaid.
Uninstalling Senderz in your Shopify admin has the same effect on syncing, plus it stops the theme embed and the web pixel from running. Your contacts, order history, analytics and audit trail are kept in both cases, so a deliberate reconnect does not destroy the workspace. Shopify privacy requests are handled separately and are the only path that clears personal data.

Install popups on your storefront

Turn on the app embed and confirm your popups are actually serving.

Build an automation

Use live cart, checkout, customer, order and shipping events to trigger messages.

Review consent

Understand how Shopify marketing state controls who you may send to.

Create store coupons

Provision real Shopify discount codes for campaigns and automated rewards.