WooCommerce
Connect a WooCommerce store to sync its customers into a MailInApp contacts list and feed journeys and revenue attribution the same way a Shopify connection does. WooCommerce just authenticates differently, since it isn't a hosted app platform with its own OAuth flow.
Connect your store
Connecting WooCommerce is a one-time $30 fee, billed through a MailInApp-hosted checkout (card via Stripe, or PayPal) the first time you connect, available on every plan (including Free). It's non-refundable if you later disconnect, but free to reconnect later on the same MailInApp account.
On your own WordPress site, go to WooCommerce → Settings → Advanced → REST API and create a key with Read access — MailInApp never asks for write access to your store. Back in MailInApp's Settings → Integrations, paste your store URL and that key to connect. MailInApp checks the credentials with a live request before saving them, so a typo or a revoked key fails the connect step cleanly instead of saving something broken. It also registers its own webhooks on your store at connect time (customer.created, order.updated) so customer and order changes reach it in real time rather than through polling.
What it does
- Customer sync — an initial backfill, capped at 2,000 customers since WooCommerce paginates rather than offering a sync cursor, followed by ongoing updates from the registered webhooks, into a contacts list scoped to this integration.
- Journey triggers — the same cart abandoned and purchase triggers Shopify supports. WooCommerce has no built-in "checkout started" event the way Shopify does, so out of the box, a cart-abandoned journey trigger on a WooCommerce integration simply won't find anything to enroll — customer sync and paid orders are the two signals WooCommerce gives MailInApp without extra setup. If your store runs a separate cart-abandonment plugin that can call a webhook, point it at the same integration to fill that gap. See Journeys.
- Revenue attribution — reads WooCommerce's own built-in order-attribution metadata (on by default since WooCommerce 8.5, no plugin needed) where present, feeding the same response and A/B-test revenue rollups a native checkout order does.
- Purchase-history segments & discount offers — order line items sync alongside customers, so an audience filter can match "bought product X between date A and B" (see Purchase history), and a project can mint a single-use WooCommerce coupon per matched recipient, redeemed on your own store checkout (see Discount offer). Ongoing orders sync from the registered webhooks automatically; a store connected before this shipped, or with older history, needs a one-time Backfill order history pull from Settings → Integrations against orders with a processing or completed status — no ~60-day cap the way Shopify's non-approved-app restriction has.
- Product catalog for the studio — your store's own published products sync into MailInApp too, refreshed automatically on the same cadence as customers (no separate button). The Product block's Import from store picker searches this synced catalog and fills in a block's name, description, image and price from a real product — a one-time copy, not a live link, so nothing about a sent email can drift from what you reviewed. WooCommerce has no per-product currency field, so the synced price uses your store's own currency setting.
Disconnecting
Disconnect in Settings stops processing further webhooks immediately and doesn't touch the customers already synced into their contacts list.