Skip to main content
Magento is the one store connector that does not work like the others, and it is worth understanding why before you set it up. Every other platform Senderz connects to pushes events out. Shopify, WooCommerce and Konimbo all call Senderz the moment an order is placed. Magento Open Source has no outbound webhooks available to us. Adobe I/O Events is a paid Adobe Commerce feature that only works with App Builder, and Adobe Commerce Webhooks are synchronous calls made during checkout, which is not a mechanism a marketing platform should sit inside. So Senderz polls. You paste an access token, and Senderz asks your store every ten minutes what has changed. This is forced by the platform. It is not a shortcut, and it is not a temporary stub.

What this means in practice

Orders arrive within ten minutes

Not instantly. An automation that reacts to an order fires on the next poll, so allow up to ten minutes.

Nothing is missed

Each poll re-reads a five-minute overlap on top of the last one, so an order that lands mid-poll is still caught. Repeats are matched, not duplicated.

No storefront features

Popups, web push and on-site tracking do not run on Magento at all. See What is not built.

No product catalog sync

Senderz does not import your Magento product catalog.

Before you start

  • You need owner or admin access to the Senderz workspace.
  • You need Magento admin access to create an integration.
  • Your store must be reachable at a public HTTPS address on the standard port, and that address must not redirect. https://store.com works. An address with a custom port, or one that bounces to another domain, is rejected at connect time.

Connecting

1

Create an integration in Magento

In Magento Admin go to System → Extensions → Integrations and add a new integration. Under API, grant it Sales and Customers access. Senderz reads orders and customers and writes nothing.
2

Activate the integration

Save it, then click Activate and approve it. Magento only issues the access token once you activate. An integration that is saved but never activated has no usable token.
3

Copy the access token

Magento shows four values. You need the Access Token, not the consumer key, consumer secret, or access token secret.
4

Enable standalone bearer tokens

On Magento 2.4.4 and newer this is off by default and the connection will fail without it. See The 401 that catches everyone.
5

Paste both values into Senderz

Go to Settings → Integrations, find Magento, and click Connect. Enter your Magento store URL and the Integration access token, then click Connect Magento. Senderz calls your store to verify the token before saving anything.

What the connect form asks for

required
Your storefront base address, for example https://store.com. Senderz reads the REST API at /rest/V1 under that address.
required
The Access Token from System → Extensions → Integrations. Stored as a secret, never shown back to you.

The 401 that catches everyone

This is the single most common reason a Magento connection fails, and the error message cannot tell you which of two causes it is.
On Magento 2.4.4 and newer, standalone bearer tokens are disabled by default. Enable “Allow OAuth Access Tokens to be used as standalone Bearer tokens” under Stores → Configuration → Services → OAuth → Consumer Settings, save, and flush the cache. Without it your integration token is valid but Magento refuses every API call.
The trap is that a store with bearer tokens turned off and a store with a missing permission return the exact same 401 from Magento. There is no way to tell them apart from the response, so the Senderz error message names both causes rather than guessing and sending you down the wrong path. If Magento does name the resource it wanted, Senderz repeats that name back to you in the error. Grant that resource to your integration under System → Extensions → Integrations and reconnect.

Every connect error and what it means

What syncs, and how fresh it is

1

On connect: customers

Senderz imports your Magento customer accounts, with name, email, phone and country taken from their address book. This stops at 50,000 customers.
2

On connect: order history

The last 60 days of orders back-fill, up to 25,000 orders, so lifetime value and predictive scores work from day one. Historical orders are recorded as revenue and timeline entries but deliberately do not start automations. An old order is not a reason to message someone today.
3

Every ten minutes: order changes

Senderz asks Magento for orders changed since the last poll, plus a five-minute overlap so nothing slips between runs. Each poll reads at most 1,000 orders. These do start automations and fire your outbound webhooks.
4

Once a day: customers again

Customer accounts re-import automatically once a day, so profile edits and new accounts made in Magento catch up without you doing anything.
The ten-minute poll reads orders only. New customer accounts that have never ordered arrive on the daily customer sync, not within ten minutes. A customer who places an order is created from that order on the next poll.

Forcing a sync now

You do not have to wait. On the Magento integration page, the Historical data card has a Re-import button. It re-imports customers and re-runs the 60-day order back-fill straight away. Nothing is duplicated.

Order state to Senderz event

Magento order triggers key on the order state, never on the status. Those are two different fields. state is Magento’s fixed eight-value machine and is the same on every store. status is merchant-defined, has no fixed list, and is often renamed or translated, so it cannot be mapped reliably.
An order sitting in On Hold or Payment Review produces no Senderz event at all. That is deliberate rather than an oversight: neither state tells you whether the sale happened. When the order leaves that state, the next poll picks up whatever it moved to. Nothing is lost, but nothing fires while it is parked there either.
An order that Senderz sees for the first time and that is already complete is recorded as an order completed, not a fulfilment. Otherwise a store that auto-completes its orders would record fulfilments with no revenue behind them.
If your store uses the eight states in an unusual way, the state-to-event mapping can be overridden for your workspace. Contact support with what you need.

Timestamps are handled correctly

Magento reports timestamps with no timezone marker at all, even though the values are UTC. Read naively they would land in the wrong timezone. Senderz treats them as UTC and stamps each back-filled order at the date it actually happened, so lifetime value, cohorts and predictive scoring windows stay accurate rather than treating two-year-old orders as if they were placed today.
Senderz reads the newsletter subscription flag on each Magento customer account and treats it as an email opt-in only.
A Magento sync can only ever add consent. It never unsubscribes anyone and it never overturns an opt-out someone made through your preference center or by replying STOP. Magento does not report SMS or WhatsApp consent, so contacts synced from Magento start unsubscribed on those channels.
Senderz only subscribes a customer when Magento explicitly says they are subscribed. A blank or false value is read as “no information”, not as an opt-out, because Magento’s customer list is not reliable enough on that flag to treat a false as a withdrawal. Magento orders carry no consent at all, so a guest who checks out without an account arrives as a contact who is not subscribed. To collect consent from Magento shoppers, use an embedded form on your storefront. See Consent and suppression.

Filing synced customers into a list

On the Magento integration page, the Customer sync list card lets you pick a list that every customer synced from this store joins.
Joining a list is not consent. What you may actually send a contact is still decided by their own email and SMS opt-in.

Checking that data is arriving

The per-event Recent data counters panel is only shown for Shopify and WooCommerce today. It is not rendered on the Magento integration page, so do not go looking for it there.
To confirm Magento data is landing:
  • Open Contacts and look for contacts whose source is Magento.
  • Open a customer who ordered recently and read the activity timeline. You should see the order and its products.
  • Read the Historical data card on the Magento integration page. It shows when the last import ran.
  • Place a test order in Magento, move it to Processing, and check back after ten minutes.

What is not built

Be clear-eyed about this before you plan around it.
Popups, web push, product view tracking and cart tracking all run from a Senderz runtime that loads on your storefront. That runtime supports Shopify, WooCommerce, WordPress and Konimbo. Magento is not one of them, so none of those features are available on a Magento store today. If you need a signup form on a Magento storefront, use an embedded form, which is plain markup you place in your own page and works anywhere.
Senderz does not import your Magento product catalog. Product blocks in email templates and coupons scoped to specific products both depend on that catalog, so neither is available for Magento stores. Products a customer actually bought still appear on their timeline, because those come from the order.
Senderz can create discount codes in Shopify, WooCommerce and Konimbo. It cannot create them in Magento. Create the code in Magento and reference it in your campaign. See Coupons.
Even if you built your own Magento extension, there is nowhere in Senderz for it to post today. Adding one requires a signature check on the Senderz side, which does not exist for Magento yet. The poll is the only path in.
Senderz authenticates with the integration access token. Signed OAuth 1.0a requests, which would remove the need for the bearer token setting entirely, are a planned improvement and are not available today.

One store, one workspace

A Magento store belongs to exactly one Senderz workspace. If you connect the same store URL in a second workspace, the first workspace is disconnected and shown this message:
This store was connected to another workspace. Reconnect it here to resume syncing.
This is deliberate. Two workspaces polling the same store would double-count orders and split the contact record in half. See Workspaces.

Disconnecting

Disconnecting from the integration page stops the poll and the daily customer sync, and deletes the stored access token. Your contacts and historical data are kept. There is nothing to clean up in Magento afterwards, because Senderz never installed anything there. If you want to close it off completely, deactivate or delete the integration under System → Extensions → Integrations.