Many apps you already run work with PersonalizerAI on their own. For the rest — analytics tags, Klaviyo, and your email platform — you turn the connection on in the PersonalizerAI dashboard under Settings → Integrations.
Works automatically
The apps below save their data in Shopify itself. PersonalizerAI reads that data during catalog sync and on your storefront, so there is nothing to set up in PersonalizerAI. These apps work with PersonalizerAI; we are not partners with them.
Subscription apps
The app reads your products' subscription options (Shopify selling plans) during catalog sync. You get this:
- A product sold only as a subscription shows Choose options instead of a quick add. The link opens the product page, where the shopper picks a plan. A quick add would fail, because Shopify needs a plan for these products.
- A subscription-only product is never offered as a gift in the cart goal bar.
- A purchase made on a subscription is marked as one. Replenishment ("buy it again") then never suggests that product to that customer, because it already ships to them.
This works with Recharge, Loop Subscriptions, Skio, Appstle Subscriptions, Seal Subscriptions, Stay AI, Bold Subscriptions, and Shopify Subscriptions.
Review apps
The app reads star ratings from your product metafields during catalog sync. You get stars on your widget and search result cards, a Top rated sort, a rating filter in search, and ratings as one of the signals that rank products. Set how the stars look under Reviews below.
This works with Judge.me, Stamped.io, Yotpo, Loox, Okendo, Junip, Fera, REVIEWS.io, Rivyo, Vitals, and Klaviyo Reviews.
Translation apps
The app reads your product translations from Shopify during catalog sync. Shoppers see translated product titles and descriptions in search and in widgets, in each language you publish in Shopify.
This works with Shopify Translate & Adapt, Langify, Transcy, LangShop, and T Lab.
Cookie and consent banners
The app's storefront script asks Shopify's Customer Privacy API what each shopper chose before it tracks anything. A banner that saves its choices there works with no setup. See Privacy & shopper consent.
This works with Shopify's own cookie banner, Pandectes, Consentmo, Enzuzo, and CookieYes.
Shopify Markets and stock
- Shopify Markets — shoppers see the prices and currency of their own market.
- Stock — when any app updates your stock in Shopify, for example an inventory or warehouse app, PersonalizerAI gets the new stock too.
Reviews — detected automatically
The app reads review data straight from your catalog during sync. There is nothing to connect and no keys to enter. When the app finds review data, the provider's row shows the badge Detected on your store, and star ratings with review counts appear on your widget and search result cards, in list view, and in Quick View. The search suggestions under the search box show no stars.
The badge shows when your review app also saves ratings in its own metafields, so the app can tell which app wrote them. Fera, Vitals, and Klaviyo Reviews never do: they save ratings only in Shopify's shared review fields, which any app can write. Yotpo may not either. Their stars still show. To show Fera's or Klaviyo Reviews' own badge on cards, pick the app under Provider below. Vitals has no badge we can place in a card, so picking it under Provider feeds the stars only.
Review stars settings
The Review stars form at the top of the Reviews card controls which review app feeds the rating and how the rating looks on each product card.
- Provider — Automatic uses the one review app the sync detected. If the sync detects two apps, for example during a migration, the form shows a warning and you must pick one. You can also pick an app directly.
- Render mode — PersonalizerAI stars draws the app's own star row from the synced rating. Review app's own badge puts your review app's badge into each product card, in widgets and in search results, so it matches your product page and keeps the app's click behaviour. If the app's script is not on the page, the card falls back to PersonalizerAI stars. Vitals, Rivyo and AG Product Reviews add their badge only to your theme's own product pages, not to cards the app renders, so the Provider list marks them (stars only) and badge mode is not available for them. List view and Quick View always show PersonalizerAI stars: a list row is one link, and a badge has its own link and click.
- Show review count — shows the number of reviews next to the stars. Badge mode does not use this setting.
- Minimum reviews to show — hides the rating on products with fewer reviews than this number. The default is 1, so a product with no reviews shows no empty stars.
- Position — where the rating sits in the card: below the title, above the title, or below the price.
Click Save changes to apply. Click Reset to defaults to go back to the shipped settings.

Review apps are detected from your catalog — no keys. The Review stars form above them picks the app and the render mode.
Google Analytics 4 and Meta Pixel
These two are on/off toggles. They forward widget engagement and searches to the tags your store already runs on its pages. The app needs no keys and adds no new tags.
- Google Analytics 4 — widget impressions and clicks arrive in your GA4 as standard list events (
view_item_list,select_item), in lists named like PersonalizerAI trending. Searches arrive assearchwith the search term, plusview_search_resultsfor a search in the pop-up away from your/searchpage (on that page GA4 reports the search page itself), and a click on a search result asselect_itemin the PersonalizerAI search list. Add-to-carts and purchases are not sent by the app: your Google & YouTube app already sends them, and a second copy would double your revenue. The app uses the same product ids as the Google & YouTube app, so GA4 can credit a later add to cart or purchase to the PersonalizerAI list it came from. It works with the Google & YouTube app, with GA4 added to your theme, and with Google Tag Manager (when your container has GA4 ecommerce triggers). - Meta Pixel — widget clicks and add-to-carts arrive as custom
PersonalizerAI_*events, so they do not double-count your standard pixel events. Searches arrive as the standardSearchevent, because nothing else reports a search made in the search pop-up.
The search that loads your /search page is not forwarded: Shopify already reports that one to your pixels and apps. Every other search is — in the search pop-up, and each new search typed on the /search page.
- Go to Settings → Integrations.
- Find the provider under Analytics.
- Click Turn on. The row shows an On badge.
On means the app forwards events when it can. It cannot send anything unless the PersonalizerAI app embed is on in your theme and the tag already runs on your storefront: GA4 through gtag or Google Tag Manager, or your Meta pixel. The row says what it needs under the description.
Click Turn off on the same row to stop the forwarding. The change applies to your storefront on its own.
Check that GA4 receives the events
- In GA4, open Admin → DebugView.
- Open your store in another tab with Tag Assistant connected, so your visit shows up in DebugView.
- Scroll to a PersonalizerAI widget, then click a product in it.
- You should see
view_item_listandselect_itemwith an item list starting PersonalizerAI.
To see the lists in reports, build an Explore report with the Item list name dimension and the item metrics you want (items viewed in list, items clicked in list, item revenue). New data can take a day or two to appear outside DebugView.
Klaviyo
The Klaviyo toggle forwards clicks and add-to-carts from your widgets and search results, plus searches, to your existing Klaviyo onsite tracking as five metrics: Recommendation Clicked, Added Recommended Product To Cart, Searched Site, Search Result Clicked and Added Search Result To Cart. Each one has the property Source set to PersonalizerAI, so you can tell them apart from another app's. No keys are needed. Use the metrics to build flows — for example, "clicked a recommendation but did not buy". Klaviyo records them only for shoppers it already knows, such as someone who clicked one of your emails or signed up through a Klaviyo form. Turn it on the same way as the analytics toggles, under Email marketing. It needs the PersonalizerAI app embed on and Klaviyo's onsite script on your storefront (Klaviyo's own app embed).
Cart drawer apps
Your theme's own cart drawer opens after a quick add on its own. A cart drawer app — Rebuy, Upcart and similar — may only refresh when the page sends it a particular event. If yours documents one (for example cart:refresh), enter it in the PersonalizerAI dashboard under Design → Cards → Cart drawer apps (advanced), in the field Event to dispatch after add to cart, then save. After every add to cart from a PersonalizerAI card, list row, Quick View or bundle, your storefront sends that event. Leave it empty if your drawer already updates. The name is checked when you save: letters and digits in parts joined by : . _ or -, and never an event of PersonalizerAI's or Shopify's own.
Shopify customer events
Pixels you add under Settings → Customer events in Shopify see Shopify's own search_submitted event only when a page loads, so a search made in the pop-up is invisible to them. The app publishes each search Shopify does not report as the custom event personalizerai:search_submitted, with the search term, the result count and the product ids. A custom pixel subscribes to it by that name. Nothing to switch on.
Email product feed (Starter plan and up)
The Email product feed card at the top of the screen gives you live recommendation URLs for your email campaigns. Paste a URL into your email platform's web feed — for example, a Klaviyo data feed — and the campaign renders a live product block. Four feeds are available: Trending, Best sellers, New arrivals, and On sale. Every recipient sees the same block, and out-of-stock products are dropped automatically.
- Go to Settings → Integrations.
- Click Generate feed URLs on the Email product feed card.
- Copy the URL for the feed you want.
- Paste it into your email platform as a web feed.
Click Regenerate only if a URL leaked. Then update your email platform with the new URLs.

The email product feed: four live URLs, one per model.
Personalized Klaviyo emails (Growth plan and up)
Show each customer their own recommendations in your Klaviyo emails. When you connect Klaviyo, we add one hidden code, PersonalizerAI Key, to the Klaviyo profile of each customer who visits your store while logged in and allows marketing cookies, once Klaviyo recognises their browser: after they click a link in one of your Klaviyo emails or fill in a Klaviyo form. Logging in alone is not enough, because Klaviyo does not identify logged-in Shopify customers by itself. Your email template uses that code to show the customer's own products; a customer without a key, or without personal picks yet, sees your store-wide recommendations. We never send Klaviyo an email address, order or product, and we never receive one.
- Generate your Email product feed URLs first (see above). The personalized block uses the same secret token.
- Go to Settings → Integrations.
- On the Personalized Klaviyo emails card, click Connect Klaviyo.
- In Klaviyo, approve the connection. You come back to the same screen.
- Pick the list that fits your email (see the lists below), then add it to your email in one of two ways: with Klaviyo's own Image blocks, or with a ready-made HTML block.
The card has four lists, one for each kind of recommendation. Use the one that fits the Klaviyo flow:
- Replenishment: products the customer bought before and will probably need again soon. For replenishment and win-back flows.
- Because you viewed: products like the ones the customer looked at recently. For browse abandonment flows.
- Goes with your purchase: products that go with what the customer bought recently. For post-purchase and cross-sell flows, such as a thank-you email a few days after the order.
- Still thinking about it?: products the customer added to their cart but did not buy, then products they looked at but did not buy. For abandoned cart and browse abandonment flows.
Each list has four product slots. Each slot is an image and a link. A customer who has no code yet, or no picks for that list yet, sees your store's trending products, so no slot is ever empty. The products a customer sees are kept the same for 7 days, so the image and the link always show the same product.
Way 1: Klaviyo's Image block (recommended)
You build the block in Klaviyo's editor and style it there like the rest of your email. This way also works best on phones, because Klaviyo can stack the columns. The Klaviyo editor tab on the card shows Product 1 to Product 4 for each list, and each product has two copy buttons: Image URL and Link URL.
- In your Klaviyo email, add a Columns block with two columns. Add a second one below it for products 3 and 4.
- Drag an Image block into the first column.
- Click Select image, then Dynamic Image.
- On the card, click Image URL for Product 1. In Klaviyo, paste it into Dynamic variable or dynamic URL.
- On the card, click Link URL for Product 1. In Klaviyo, paste it into the image's Link address.
- Set the image width to 250–300 px. Set the alt text to something like "Recommended for you".
- Do steps 2 to 6 again for products 2, 3 and 4. Keep each image with its own link: Product 2's Image URL and Product 2's Link URL go on the same image.
- Style the block with Klaviyo's settings: padding, borders and background colour. In the mobile settings, stack the columns so each product fills the phone screen.
Way 2: a ready-made HTML block
The Ready-made HTML tab gives you a finished block for each list: a headline, the four products in a grid of two by two, and a Shop now button that opens your store's homepage. Its colours, font and corners come from your settings under Design. If you have not set them, the block uses neutral black, white and grey.
- On the card, open the Ready-made HTML tab.
- Open the list you want. Change the Headline if you want, or clear it to show no headline.
- Click Preview to see the block. Grey boxes stand in for the products, because each customer sees their own.
- Click Copy HTML.
- In your Klaviyo email, add an HTML block and paste the code into it.
On a phone, the block keeps its two columns and makes the images smaller. The headline is not saved: if you copy the block again, type it again. If you change your Design settings, copy the block again to get the new colours.
If the card shows Needs attention, Klaviyo stopped accepting our connection. Click Reconnect Klaviyo.

Personalized Klaviyo emails: connected, with the Image URL and Link URL for each product.
Related pages
- Privacy & shopper consent — how consent gates the forwarded events.
- Plans, billing & limits — where the Integrations feature starts.
- Widget catalog — the cards that show the star ratings.
- How we measure revenue — the app's own attribution, independent of GA4.