Overview
Layers integrates with popular analytics, personalization, and promotional tools to enhance your search and discovery experience. All integrations are configured through the Layers dashboard, making it easy to enable and manage connections without modifying your theme code. The integration system is designed to be:- Privacy-compliant: All integrations respect the same consent settings as the Layers Pixel
- Non-intrusive: Integrations only use services already loaded on the page
- Dashboard-managed: Enable or disable integrations with a single toggle
- Extensible: New integrations are added regularly based on merchant needs
Configuring integrations
To manage your integrations:- Go to the Settings page in the Layers dashboard
- Select the Integrations tab
- Toggle integrations on or off as needed
- Select Save changes
Disabling an integration also removes the data it added to your Layers catalog. Attributes an integration synced (for example, review ratings from Reviews.io or PowerReviews) are deleted along with their stored values, and affected products are re-indexed so the attributes no longer appear in search, filtering, or merchandising. Attributes shared with another integration that is still enabled are kept. Re-enabling the integration syncs the data again.
A few integrations, such as Kairos and Fish Wishlist, are detected automatically and have no toggle. Once the app is installed on your store, Layers recognizes it and adjusts on its own.
Supported integrations
Rivo
Rivo is a loyalty and rewards platform for Shopify merchants. When enabled, Layers receives richer customer profile context from Rivo, enabling enhanced personalization in search results based on loyalty tier, points balance, and reward eligibility. Benefits:- Personalize search results based on customer loyalty status
- Surface products relevant to available rewards
- Enhance customer segmentation with loyalty data
Smile.io
Smile.io is a loyalty and rewards platform for Shopify. When enabled, Layers receives Smile.io loyalty context (such as VIP tier) so merchandising rules and ranking signals can factor in each shopper’s loyalty status. Benefits:- Personalize search results by VIP tier and loyalty standing
- Surface rewards-eligible products to engaged shoppers
- Combine loyalty context with other session signals for richer targeting
LoyaltyLion
LoyaltyLion is a customer loyalty and engagement platform for Shopify. When enabled, Layers receives LoyaltyLion points balance and tier context, enabling personalization based on each shopper’s loyalty standing. Benefits:- Personalize search results using points balance and loyalty tier
- Target merchandising at high-tier shoppers or points-eligible customers
- Enrich session context with loyalty signals alongside cart, location, and history
Blotout
Blotout is a privacy-first customer data platform that helps you collect, unify, and activate customer data without relying on third-party cookies. When enabled, Layers forwards widget clickstream events to Blotout and uses Blotout’s User and Device IDs for consistent cross-session tracking. Benefits:- Unified customer identity across touchpoints
- Privacy-compliant event tracking
- Enhanced attribution for visual search interactions
Microsoft Clarity
Microsoft Clarity is a free analytics tool that provides session recordings, heatmaps, and behavioral insights to help you understand how customers interact with your website. When enabled, Layers streams widget click data to Clarity, allowing you to replay sessions involving visual search and shop similar interactions to identify UX friction points. Benefits:- Session recordings of visual search usage
- Heatmaps showing widget interaction patterns
- Behavioral insights for search optimization
Abra Promotions
Abra Promotions is a promotional pricing platform that enables dynamic discounts and flash sales on Shopify. When enabled, Layers natively integrates with Abra’s discount engine, ensuring that price-based sorting and filtering accurately reflect promotional pricing. This integration is essential for merchants using Abra to run sales and promotions. Benefits:- Accurate price sorting with active promotions
- Correct price filtering during sales
- Consistent pricing across search and collection pages
FoxSell Bundles
FoxSell Bundles is a product bundling app for Shopify that lets you create fixed bundles, mix-and-match bundles, cross-sell offers, multi-variant bundles, and volume discounts. When enabled, Layers computes prices for Mix & Match bundles so they appear correctly in price-based sorting, filtering, and search results. Fixed, cross-sell, multi-variant, and volume bundles keep their Shopify prices. Benefits:- Accurate price sorting and filtering for Mix & Match bundles
- Shopify pricing remains unchanged for other bundle types
- Searches for products included in a bundle can also surface that bundle
Layers creates a Shopify Storefront access token titled Layers when you enable FoxSell Bundles. Layers uses it to sync FoxSell’s app-owned bundle data. You do not need to create or configure the token. Do not delete it.
If Mix & Match prices are missing or out of date, check that FoxSell Bundles is enabled in Settings → Integrations, then resync your catalog. If you deleted the Layers token, turn FoxSell Bundles off and back on. Layers checks for the token when you enable the integration and creates one if it is missing. Then resync your catalog.
Edgemesh
Edgemesh is a client-side performance optimization platform that accelerates page load times through intelligent prefetching, predictive preloading, and edge-based caching. When enabled, Layers syncs integration status to your storefront so that Edgemesh-aware components can coordinate prefetching behavior with Layers API responses. Benefits:- Coordinate image prefetching with Layers search and browse responses
- Leverage Edgemesh’s predictive engine alongside Layers’ Link header preload hints
- Unified performance optimization across search, browse, and product pages
- Improved purchase attribution through Edgemesh session tracking. Layers reads
_em_session_idfrom order note attributes to link purchases back to browsing sessions (see Order Attributes)
Kairos
Kairos is a bot and fraud protection app for Shopify. It verifies every visitor with invisible challenges before their first pageview. Kairos blocks scrapers, crawlers, and card testers before Shopify, your ad platforms, or Layers ever count them. Real shoppers notice nothing. Layers detects Kairos on your store automatically. There is no toggle to turn on and no theme changes to make. Benefits:- Sessions Kairos blocks never load your storefront, so they never send events to Layers
- Search and browse analytics reflect verified human sessions only
- Conversion rates, click-through rates, and merchandising signals are not inflated by bot noise
- Nothing to configure. Install Kairos and the two work together from there
Kairos is installed and billed through the Shopify App Store. Layers only detects that it is protecting your storefront and does not exchange shopper data with it. Layers requests come from sessions Kairos has already verified, so search and browse behave exactly as before.
Okendo
Okendo is a customer marketing platform for Shopify that includes product reviews, surveys, referrals, and quizzes. The Layers integration focuses on Okendo’s quiz feature, bringing shopper quiz responses into Layers so you can personalize search and collection results based on each customer’s stated preferences. When a shopper completes an Okendo quiz, the responses are sent to Layers via webhook and stored against the shopper’s session. On every subsequent search or browse request, Layers automatically enriches the session context with the shopper’s quiz profile, allowing merchandising rules and ranking signals to factor in their preferences. Benefits:- Personalize search and collection results using quiz-derived preferences
- Surface products that match a shopper’s stated needs (e.g., skin type, style preferences, fitness goals)
- Combine quiz context with other signals like cart contents, purchase history, and location for richer personalization
- No theme code changes required. Quiz data flows into Layers automatically once the integration is enabled
- Enable the Okendo integration in the Layers dashboard under Settings → Integrations
- Copy the webhook endpoint shown in the setup panel
- In your Okendo dashboard, register the webhook endpoint and copy the signing secret
- Paste the signing secret into the Webhook Secret field in Layers and save
- When a shopper completes a quiz, Okendo sends the response to Layers via webhook
- Layers normalizes the quiz answers and attaches them to the shopper’s session
- All subsequent search and browse requests for that session automatically include the quiz profile as part of the contextual information
Supported webhook topics:
The integration listens for the following Okendo quiz response events:
- quiz_response.create — a shopper submits a new quiz response
- quiz_response.update — a shopper updates an existing quiz response
- quiz_response.delete — a quiz response is removed
Quiz responses are matched to shoppers using the session ID (subscriber ID in Okendo). This means personalization takes effect within the same browsing session in which the shopper completed the quiz.
Yotpo
Yotpo is a customer marketing platform that includes product reviews and ratings for Shopify merchants. When enabled, Layers syncs Yotpo’s review rating and count metafields from your Shopify products so you can sort, filter, and merchandise on social proof. Benefits:- Sort collection and search results by average review rating or review count
- Build merchandising rules that boost highly-rated products or products with a minimum number of reviews
- Filter products by star rating without any additional catalog setup
- No storefront code changes required. Yotpo already writes review data to Shopify metafields, and Layers picks them up automatically
- Adds the Yotpo review metafield namespace to your store’s metafield sync configuration
- Reads the review metafields that Yotpo writes to each product in Shopify
- Exposes them as first-class product attributes you can reference in sort orders, merchandising rules, and search filters
Dashboard panel:
After enabling the integration, the Yotpo review metafields panel in Settings → Integrations shows how many products have each review attribute populated. Select Resync reviews to queue a fresh sync if you just installed Yotpo or if review data looks out of date.
Enabling Yotpo automatically adds its review metafield namespace to your store’s metafield sync configuration. Disabling the integration removes those attributes from your Layers catalog.
After enabling the integration, trigger a catalog resync or use the Resync reviews button in the integration panel so review attributes are populated across your catalog. New and updated products are synced automatically going forward.
Judge.me
Judge.me is a product reviews app for Shopify. When enabled, Layers reads the standard Shopify review metafields that Judge.me writes to your products, so you can sort, filter, and merchandise on review count and rating. Benefits:- Sort collection and search results by review count
- Build merchandising rules that boost products with strong social proof
- Filter products by review count without extra catalog setup
- No storefront code changes required. Judge.me already writes review data to Shopify’s standard
reviews.*metafields, and Layers picks them up automatically
Dashboard panel:
After enabling the integration, the Judge.me review metafields panel in Settings → Integrations shows how many products have each review attribute populated. Select Resync reviews to queue a fresh sync if you just installed Judge.me or if review data looks out of date.
Judge.me’s review count is sortable and filterable today. Sorting by average rating is not yet supported for Judge.me because Shopify stores
reviews.rating as a JSON object rather than a plain number.After enabling the integration, trigger a catalog resync or use the Resync reviews button in the integration panel so review attributes are populated across your catalog.
Fera
Fera is a reviews and social proof app for Shopify. When enabled, Layers reads the standard Shopify review metafields that Fera writes to your products, so you can sort, filter, and merchandise on review count and rating. Benefits:- Sort collection and search results by review count
- Build merchandising rules that boost highly-reviewed products
- Filter products by review count without extra catalog setup
- No storefront code changes required. Fera writes review data to Shopify’s standard
reviews.*metafields, and Layers picks them up automatically
Dashboard panel:
After enabling the integration, the Fera review metafields panel in Settings → Integrations shows how many products have each review attribute populated. Select Resync reviews to queue a fresh sync.
Stores that installed Fera before March 2022 must enable Shopify standard metafield sync inside Fera before review data appears in Shopify metafields. Newer Fera installations sync by default.
Fera’s review count is sortable and filterable today. Sorting by average rating is not yet supported because Shopify stores
reviews.rating as a JSON object rather than a plain number.Junip
Junip is a product reviews platform for Shopify. When enabled, Layers reads Junip’s review metafields (both Junip’s ownjunip.* keys and the standard Shopify reviews.* keys) so you can sort, filter, and merchandise on ratings and review counts.
Benefits:
- Sort collection and search results by average review rating or review count
- Build merchandising rules that boost highly-rated products
- Filter products by star rating or review count without extra catalog setup
- No storefront code changes required. Junip writes review data to Shopify metafields, and Layers picks them up automatically
Dashboard panel:
After enabling the integration, the Junip review metafields panel in Settings → Integrations shows how many products have each review attribute populated. Select Resync reviews to queue a fresh sync.
Junip’s
junip.rating_average is sortable numerically. The Shopify-standard reviews.rating attribute is not yet sortable because Shopify stores it as a JSON object.Reviews.io
Reviews.io is a customer review platform for Shopify. Unlike other review apps that store ratings in Shopify metafields, Reviews.io keeps rating data in its own API. When enabled, Layers pulls per-SKU rating aggregates directly from Reviews.io and exposes them as first-class product attributes, so you can sort, filter, and merchandise on social proof. Benefits:- Sort collection and search results by average review rating or review count
- Build merchandising rules that boost highly-rated products or products with a minimum number of reviews
- Filter products by star rating without any additional catalog setup
- Ratings stay current automatically. Reviews.io webhooks push new review events to Layers so aggregates update as reviews come in
- Enable the Reviews.io integration in the Layers dashboard under Settings → Integrations
- Enter your Reviews.io Store ID and API key and save
- Layers fetches per-SKU rating aggregates from Reviews.io in batches and stores them against each product and variant
- Layers registers a webhook with Reviews.io so new and updated reviews refresh the affected SKUs automatically
- Ratings become available as product attributes you can reference in sort orders, merchandising rules, and search filters
Synced attributes:
Dashboard panel:
After enabling the integration, the Reviews.io ratings panel in Settings → Integrations shows how many products have rating data populated, the last sync time, and any SKUs Reviews.io could not match. Select Resync ratings to queue a fresh sync if you just installed Reviews.io or if rating data looks out of date.
Reviews.io stores ratings per SKU, not per metafield. You do not need to add any Reviews.io metafields to your Shopify store or enable metafield sync for this integration to work.
After enabling the integration, trigger a catalog resync or use the Resync ratings button in the integration panel so review attributes populate across your catalog. Ongoing updates arrive automatically via webhook.
PowerReviews
PowerReviews is a customer review and UGC platform. Like Reviews.io, PowerReviews keeps rating data in its own API rather than Shopify metafields. When enabled, Layers pulls rating snippets from the PowerReviews Display API and exposes them as first-class product attributes, so you can sort, filter, and merchandise on social proof. Benefits:- Sort collection and search results by average review rating or review count
- Build merchandising rules that boost highly-rated products or products with a minimum number of reviews
- Filter products by star rating without any additional catalog setup
- Ratings refresh on a daily cadence, matching PowerReviews’ own 24-hour snippet cache
- Enable the PowerReviews integration in the Layers dashboard under Settings → Integrations
- Enter your Merchant ID and API key, and pick the Page ID attribute that holds the identifier PowerReviews knows each product by
- Layers fetches a rating snippet per product from the PowerReviews Display API and stores the rating and review count against each product (and variant, when a variant Page ID attribute is configured)
- A nightly sync keeps ratings current; each product is fetched as its own job so one slow product never holds up the rest
- Ratings become available as product attributes you can reference in sort orders, merchandising rules, and search filters
Synced attributes:
PowerReviews keys ratings to a Page ID, not a SKU or metafield. Pick the catalog attribute that stores the same identifier your storefront sends PowerReviews, or ratings won’t match your products.
Swym Wishlist Plus
Swym Wishlist Plus is a wishlist app for Shopify. When enabled, Layers syncs the total wishlist count per product from Swym’sswym_wishlist.wishlist_social_count metafield, so you can merchandise by shopper demand.
Benefits:
- Sort collection and search results by wishlist count to surface trending products
- Build merchandising rules that boost products with strong wishlist demand
- Filter products by wishlist count without extra catalog setup
- No storefront code changes required. Swym already writes wishlist counts to a Shopify metafield, and Layers picks them up automatically
Dashboard panel:
After enabling the integration, the Swym wishlist metafields panel in Settings → Integrations shows how many products have wishlist counts populated. Select Resync wishlist counts to queue a fresh sync.
After enabling the integration, trigger a catalog resync or use the Resync wishlist counts button in the integration panel so wishlist counts populate across your catalog.
Fish Wishlist
Fish Wishlist is a wishlist app for Shopify. Layers detects it on your store automatically, so there is no toggle to turn on and no theme changes to make. Wishlist events feed directly into Layers user profiles and affinities. Every time a shopper adds or removes an item, Layers updates that shopper’s profile, strengthening the affinity signals used for personalization, ranking, and merchandising rules. Benefits:- Personalize search and collection results using each shopper’s saved items
- Strengthen shopper affinities automatically as wishlists change
- Combine wishlist affinity with other session signals for richer targeting
- Nothing to configure. Install Fish Wishlist and wishlist events start feeding shopper profiles right away
Alongside per-shopper affinity events, the total wishlist count per product stays available as an aggregate demand signal for sorting, filtering, and rules.
Stockful
Stockful is an inventory intelligence app for Shopify that tracks stock status, sales velocity, and projected stockouts. When enabled, Layers syncs the inventory metafields that Stockful writes to your products and variants, so you can merchandise and sort on live inventory signals. Benefits:- Sort collection and search results by sales velocity or units sold
- Build merchandising rules that demote low-stock or out-of-stock products before they disappoint shoppers
- Push products approaching a projected stockout up or down without manual curation
- No storefront code changes required. Stockful writes inventory data to Shopify metafields, and Layers picks them up automatically
Dashboard panel:
After enabling the integration, the Stockful inventory metafields panel in Settings → Integrations shows how many products have inventory data populated. Select Resync inventory data to queue a fresh sync if you just installed Stockful or if inventory data looks out of date.
Stockful attributes are available in merchandising rules, conditions, and sort orders, but cannot be enabled as storefront facets. Stockful rewrites these values on every inventory movement, so they change too frequently for facet counts to stay accurate. The Enable as Storefront Facet option is unavailable for these attributes.
After enabling the integration, trigger a catalog resync or use the Resync inventory data button in the integration panel so inventory attributes populate across your catalog. New and updated products are synced automatically going forward.
Moast
Moast is a shoppable video app for Shopify. When enabled, Layers adds a Moast Widget banner type so merchandising rules can drop a Moast widget into a collection grid alongside product cards. The browse response ships the embed markup your storefront needs to render the widget. Benefits:- Place Moast carousels, stories, and other widget types as merchandising banners
- Target and schedule Moast banners with the same contextual conditions and schedules as any other banner
- No new storefront plumbing. Layers ships the exact
<moast-…>custom element markup Moast documents
- Toggle Moast on in Settings → Integrations and select Save changes. Layers seeds a system banner type with slug
moaston your store. - Open a merchandising rule and add a banner. Select Moast Widget as the banner type.
- In the banner’s data fields, select a widget from the Moast widget dropdown. Widgets scoped to a product or collection in Moast are labeled as such. Moast resolves them on the page they render on.
- Set the banner’s Web Media and Mobile Media (banners still require both), select a placement, and save the rule.
- On matching browse requests, the banner’s
data.widgetfield carries the resolved embed payload. Your storefront reads the payload and drops the markup into the DOM.
html verbatim. If you prefer to build the element yourself, use tag_name, script_src, and ref and mount the custom element with the widget’s ref on its widget attribute.
If a banner’s stored widget reference no longer resolves (the widget was deleted in Moast, or the integration is disabled), the
data.widget field is set to null. Guard for this in your renderer.Widgets that Moast marks as
product- or collection-scoped only render on the corresponding page. Use them in rules that only match on product or collection surfaces.Disabling the Moast integration nulls out
data.widget on every Moast banner on the next request, so widgets stop rendering immediately. The Moast Widget banner type stays on the store so you can re-enable the integration without losing banner configuration.If a custom banner type on your store already uses the slug
moast, enabling the integration fails with a validation error. Rename the existing type before turning Moast on.Klaviyo
Klaviyo is a marketing platform for email, SMS, and push campaigns. The Layers integration lets you target merchandising rules, banners, blocks, product sequences, search, and sort orders at shoppers who arrive from a specific Klaviyo campaign, instead of pasting UTM strings by hand. Once connected, Layers syncs your Klaviyo campaigns and their tracking UTMs on a nightly schedule and adds a Campaign field under the Klaviyo group in the contextual conditions field picker. Selecting a campaign from the picker matches any shopper whose session UTMs (utm_source, utm_medium, utm_campaign) came from that campaign, across email, SMS, and push channels.
Benefits:
- Target merchandising at shoppers arriving from a specific campaign without copying UTMs by hand
- Consistent campaign targeting across every contextual surface (rules, banners, blocks, sequences, search, sort orders)
- Automatic nightly sync keeps the campaign list current as you launch new sends
- Resolves Klaviyo’s dynamic campaign-name UTM placeholders to the literal values that actually reach the storefront
- Go to Settings → Integrations in the Layers dashboard
- Toggle Klaviyo on. A dialog opens with a Continue to Klaviyo button
- Approve the requested read-only access to campaigns and account info in Klaviyo
- Klaviyo redirects back to Layers and the initial campaign sync starts automatically
- Open any surface that supports contextual conditions (for example, a merchandising rule) and select Campaign from the Klaviyo group in the condition field picker
- Select a campaign from the searchable dropdown. The condition matches when the shopper’s session UTMs match that campaign’s source, medium, and campaign values
- equals — the rule matches only when the shopper arrived from the selected campaign
- does not equal — the rule matches every shopper except those who arrived from the selected campaign
utm_source, utm_medium, utm_campaign) configured in Klaviyo. Campaigns without tracking UTMs are skipped because they cannot be uniquely matched by the shopper’s session.
Campaign matching is case-insensitive and evaluated entirely from the shopper’s session UTMs. There is no request-time call to Klaviyo, so campaign conditions do not add latency to search or browse requests.
Newly launched campaigns appear in the picker after the next nightly sync. Disconnect and reconnect the integration to force an immediate resync.
Listrak
Listrak is an email, SMS, and cross-channel marketing platform. The Layers integration lets you target merchandising rules, banners, blocks, product sequences, search, and sort orders at shoppers who arrive from a specific Listrak broadcast message, without pasting UTM strings by hand. Once connected, Layers syncs your Listrak broadcast messages and their tracking UTMs on a rolling schedule and adds a Campaign field under the Listrak group in the contextual conditions field picker. Selecting a message from the picker matches any shopper whose session UTMs (utm_source, utm_medium, utm_campaign) came from that send.
Benefits:
- Target merchandising at shoppers arriving from a specific Listrak send without copying UTMs by hand
- Consistent campaign targeting across every contextual surface (rules, banners, blocks, sequences, search, sort orders)
- Automatic sync keeps the message list current as you launch new broadcasts
- Falls back to the message subject line when a broadcast does not define a Google Analytics campaign name
- In Listrak, open Integrations → Integration Management, create an integration with type Email, and enable the List and Message areas. Note the generated Client ID and Client Secret.
- Go to Settings → Integrations in the Layers dashboard and toggle Listrak on.
- Enter the Client ID and Client Secret and select Save changes. Layers validates the credentials against the Listrak API.
- The initial message sync starts automatically. Ongoing syncs run every 15 minutes with a wider daily reconciliation.
- Open any surface that supports contextual conditions (for example, a merchandising rule) and select Campaign from the Listrak group in the condition field picker.
- Select a message from the searchable dropdown. The condition matches when the shopper’s session UTMs match that message’s tracking values.
Supported operators:
The Listrak Campaign field supports two operators:
- equals — the rule matches only when the shopper arrived from the selected message
- does not equal — the rule matches every shopper except those who arrived from the selected message
If a Listrak list has Google Analytics disabled, its messages are skipped during sync. Enable Google Analytics on the list in Listrak to make its broadcasts targetable in Layers.
Campaign matching is case-insensitive and evaluated entirely from the shopper’s session UTMs. There is no request-time call to Listrak, so campaign conditions do not add latency to search or browse requests.
Newly launched broadcasts appear in the picker after the next sync (typically within 15 minutes).
Intelligems
Intelligems is an A/B testing platform for Shopify that runs price, shipping, and content tests. Intelligems works alongside Layers with no integration setup — there is no toggle to enable. How it works:- Intelligems runs price tests on your store by updating product prices in Shopify and applying each shopper’s test-group price through its storefront price updates and checkout adjustments.
- Product tiles rendered by Layers use standard price markup, so Intelligems displays each shopper’s test-group price on them the same way it does everywhere else on your storefront.
- Price filters and price sorting in your search and collection results use the Shopify catalog price — the value Intelligems writes to your products when a test starts. Filtering and sorting can therefore differ from the test-group price your shopper sees displayed when that price differs from the catalog price.
Event forwarding
When analytics integrations (Blotout, Clarity) are enabled, Layers forwards visual search and shop similar events to these services. The following events are forwarded:Implementation notes
- Integrations only forward events to services that are already loaded on your page
- Enabling integrations doesn’t load any additional scripts
- All integrations respect your store’s consent management settings
- Events are forwarded with the same payload structure as they are sent to Layers
- If an integration service is not available on the page, events will silently skip forwarding
Requesting new integrations
Layers regularly adds new integrations based on merchant needs. If you use a tool that isn’t currently supported, you can request it directly from the dashboard. To request a new integration:- Go to Settings → Integrations in the Layers dashboard
- Select Request an integration in the page header. The same button also appears when your search matches no integrations
- Fill in the request form:
- Service name — the tool or platform you want connected
- Category — the closest matching category, or Other
- What should it do in Layers? — which data should flow in and how you’d use it, such as sorting, filters, or targeting
- Select Send request
- Technical feasibility
- Merchant demand
- Privacy and performance considerations
- Alignment with Layers’ integration principles