Integrating CDPs using Boost&Bury
Learn how to use product data from CDP's like Klaviyo, Deployteq, Voyado, and CM.com to drive merchandising.
Integrating your Customer Data Platform (CDP) with Tweakwise allows you to personalize search results and lister pages based on real-time user behavior. By fetching profile-specific product IDs from your CDP, you can apply dynamic boosting or filtering within the Tweakwise merchandising machine.
This guide answers: How do I fetch personalized product sets from my CDP and use them in Tweakwise?
The implementation follows a four-step pattern:
- Identify the CDP Endpoint: Locate the API that returns products for a specific profile ID.
- Configure External Data Source: Set up the request in the Tweakwise Hub.
- Merchandising Setup: Use the EDC component in Builder or Boost & Bury.
- Map and Merchandize: Map the response to your product attributes and apply rules.
To learn more about EDC, go to External Data Components.
Implementation per CDP
Use the examples below to understand how different CDPs expose profile-based product data. Each implementation shows the type of endpoint and response mapping you can use as input for a Tweakwise External Data Source.
Klaviyo
- Implementation: Store recommendations directly on the customer profile, e.q.
RecommendedProducts. - Endpoint:
https://a.klaviyo.com/api/profiles/{profile_id}?fields[profile]=properties - JSON Path Mapping:
$.data.properties.RecommendedProducts
Deployteq
- Implementation: Store recommendations on the data model as relation to a customer, e.q.
recommended. - Endpoint:
https://deployteq.net/app/api/rest/public/v2/dataextensio/customer/{clang_id}/recommended
Voyado
- Implementation: Voyado typically returns a list of sku. Map these to your Tweakwise
skuattribute. - Endpoint:
https://{tenant}.voyado.com//api/v3/contacts/{contactId}/productrecommendations
CM.com
- Endpoint:
/profile/v1.0/tenants/{tenantId}/profiletypes/{profileTypeId}/profiles/{profileId}/export - Implementation: Extract
productIdfrom theeventsarray using JSON Path to find the most recentproduct_viewedinstances.
These are not the only supported setups. Use them as reference examples when mapping your own CDP response structure, identifiers, and product fields.
Setting up the External Data Source
- Go to Tweakwise Hub > Merchandising > External Data.
- Create a new source (e.g., "CDP Personalization").
- URL: Input the CDP endpoint. Use
{{profileId}}as a dynamic placeholder. - Response Mapping: Define the JSON path (e.g.,
$.products[*].id) to extract an array of IDs.
Merchandising with External Data (EDC)
Once the source is configured, you must tell the Tweakwise engine how to use this data.
Using in Builder (Visual Merchandising)
In the Builder module, you can use External Data to create dynamic "Personalized for You" rows or tiles:
- Open any Template in the Builder.
- Add a new External Data component.
- Configure the component to match the data source from step 1.
- Save the component and place it in the position you want to personalize.
- Tweakwise will now fill that position with a product returned by the CDP API for that specific user.
Using in Boost & Bury
To influence the global ranking of products based on CDP data:
- Go to Merchandising > Boost & Bury.
- Create or edit a rule.
- Select the created External Data Source as component or create a new one.
- Give it a weight (gentle nudge vs aggressive boost).
- Tweakwise will now prioritize products returned by the CDP API for that specific user.
Notes & Important Considerations
Performance: External Data calls are made at runtime. Ensure your CDP API response time is under 100ms to avoid latency.
- Caching: Set a TTL (Time To Live) in the External Data settings if profile data doesn't change instantly.
- Identifier Consistency: The ID passed from the frontend (e.g.,
tweakwise_id) must match the CDP's lookup key. - Fallback: Ensure a default sort (like "Newest" or "Popularity") is active if the CDP returns no results.
Check the Official Builder External Data Page for version-specific updates.
Updated 12 days ago
