The Dynamic Product Feed (DPF) lets you serve personalized product recommendations at the end of an experience by filtering a connected product catalog against the user's answers. Instead of manually picking which products appear per result, the platform matches users to products automatically based on the logic rules you configure.
Before you Begin
Confirm that DPF is the right approach for your experience. See Outcomes with Products vs. Dynamic Product Feed if you're unsure.
Have your product catalog ready as a CSV file, or have your Shopify store connected.
Know how your question responses should map to product attributes — for example, which answer should trigger which product tag, category, or price range.
DPF requires a Product Feed Display Element added on screen.
Prepare the Product Feed
Product feeds can be uploaded manually or automatically via a Shopify integration.
You'll need a .CSV file for a manual upload, and we typically recommend starting from the template found on the Dynamic Product Feeds page in the product. To prepare the file properly, read the Prepare a Product Feed File article.
Setting Up a Product Feed
Product feeds are managed globally across all experiences via Builder > Dynamic Product Feeds, or locally within a specific experience via Product Feed Logic.
Option 1: CSV Upload
Navigate to Builder > Dynamic Product Feeds.
Click Add New Feed.
Enter a name for your feed.
Click Upload New Feed and follow the prompts to select and upload your
.csvfile.
Download the DPF template from the Dynamic Product Feeds page before preparing your file — this ensures the formatting is correct. For detailed guidance on preparing the file, see the Prepare a Product Feed for Bulk Upload article.
Option 2: Shopify Integration
Connect your Shopify store directly. The feed syncs automatically every 15 minutes, keeping product details — prices, availability, images — up to date without manual re-uploads. Additional Shopify-specific options become available, including in-stock filtering and variant display.
Modifying a Product Feed
To update an existing feed without losing your mappings:
Navigate to Builder > Dynamic Product Feeds.
Click the pencil icon next to the feed you want to update.
Select Download CSV.
Make your edits to the file.
Click the pencil icon again and select Upload CSV to replace the existing feed.
Important: Do not delete the feed and re-upload it as a new one. Deleting the feed removes all of your existing mappings and you will have to configure them from scratch.
Map a Product Feed to an Experience
Mapping a product feed to an experience means that you are pairing the custom headers you add to your product feed with the associated questions and answers in your experience. For example, you might map a "scent" column to a question about preferred scents.
Every question in your experience that should be used in decisioning needs to be mapped to a custom header in the product feed.
The most common way to map a product feed is to map 1:1 (1 value to 1 response), but there are other ways to do it. For specific instructions, read the Map a product feed to an experience article.
Note that not all questions and responses need to be mapped, only those relevant for displaying the final product recommendations.
Mapping Responses to Products
Mapping connects each question response in your experience to a column in your product catalog. Every question that should influence the product recommendations needs to be mapped — questions that are not relevant to the final result do not need to be mapped.
How It Works
In the Product Feed Logic section, the mapping interface shows your experience questions on the left. For each response option — a button click, a dropdown selection, a SATA choice — you select:
Which product feed column that response maps to (e.g., Price Range, Color, Skin Type).
Which value in that column should match (e.g., "Under $50," "Red," "Oily").
When a user selects that response in the live experience, the platform filters the catalog to products where that column matches that value.
Example: A "What's your budget?" question with an "Under $50" button maps to the Price Range column filtered to "Under $50." A user who selects that option will only see products tagged with a price range of under $50.
The most common approach is 1:1 mapping — one response value maps to one product feed value. For more complex mapping setups, see the Map a Product Feed to an Experience article.
AI-Assisted Mapping
The platform includes an AI-assisted mapping feature that analyzes your question text and feed column names to suggest mappings automatically. You review and confirm the suggestions before saving — useful as a starting point for experiences with many questions and large catalogs.
Setting Logic
After mapping your responses, configure how the platform filters and displays products.
AND vs OR Logic
Controls how multiple response mappings are combined when filtering products:
AND Logic — products must match all of the user's criteria. More restrictive — shows fewer but more precisely matched results. Best when every answer should narrow the results.
OR Logic — products match any of the user's criteria. More permissive — shows more results.
Required and optional fields:
Field | Required |
ID | Yes |
Product Name | Yes |
Image URL | Yes |
Redirect URL | Yes |
Price | No |
Brand | No |
Category | No |
Tags | No |
Collections | No |
Note on Shopify Tags: When mapping the same "Tags" column across multiple questions in a Shopify feed, Jebbit uses AND logic by default — even if your logic setting is OR.
Match Type
Controls what happens when the filtering runs:
Only show exact matches (default) — only products that match all of the user's mapped responses are shown. If not enough exact matches exist, fallback logic determines what happens next.
Fill all product slots — shows exact matches first, then fills any remaining product slots with the closest next-best matches. Ensures the result screen always has products populated. Often used by retail brands who want to guarantee a recommendation is always shown.
Fallback Logic (Exact Match only)
When Only show exact matches is selected, you can configure what happens if there aren't enough exact matches:
Most relevant products — show a personalized message or redirect the user.
Display no products — leave the result screen empty. Useful when exact matches are critical, such as for health-related recommendations. Also a clean way to test that your exact logic is working correctly.
Product Results Order
By default, matched products appear in a randomized order. You can change this to:
As listed in product feed — products appear in the same order as they appear in your CSV.
Ascending price — lowest price first.
Descending price — highest price first.
Note: If there are more matching products than available product slots on the result screen, the platform randomly selects which exact matches to display.
Additional Filter Options
Option | What it does |
Only show in-stock products | Filters out products that are unavailable in Shopify. Shopify integration only. |
Display multiple variants | Shows product variants (e.g., same shoe in different colors) as separate results. Shopify integration only. |
Exclude by tag or collection | Hides products with specific Shopify tags or in specific collections. |
No products message | A custom message shown if no products match the user's responses. |
Next Steps
Test your experience to ensure the proper recommendations are being given.
Ensure your outcomes screen is configured correctly (using the Product Feed Display and not standard outcome elements.)
FAQ
What happens if there are more than enough product matches, but fewer product placeholders are set up in the Screen Editor?
If there are more matching products than available slots, Jebbit will randomly choose which exact matches to display.
What is the difference between AND and OR logic?
AND logic narrows the results by requiring all specified criteria to be met. OR logic broadens the results by including items that meet any of the specified criteria.
I've used the 'Tags' field from Shopify and have mapped that across all of my screens. Will Jebbit use AND or OR logic in this scenario?
For Shopify feeds, even when mapping the same "Tags" column across multiple questions, Jebbit will use AND logic by default.
How do I edit or update my product feed after setting up the Dynamic Product Feed?
To edit your CSV file, click on the pencil icon associated with your attached feed and select Download CSV. After making your changes, re-upload the updated CSV by clicking the pencil icon again and selecting Upload CSV in the modal window. This will maintain your existing mappings. Do not trash the feed and re-upload, as this will remove your mappings, and you will have to start from scratch.
Why are some product images not displaying, or appearing as blank?
When uploading product images to the platform, ensure that the product name within the URL does not contain any parentheses
(). The platform's image source validation checks for these parentheses, which can cause the image to render as invalid and not display. As a best practice, always check product names for parentheses when uploading images to prevent this issue.
Why can’t I delete a Dynamic Product Feed element?
If you see an error stating “This element cannot be removed because it contains custom styling,” it means the element has styles applied that prevent it from being deleted through the editor. In this case, contact support with the specific element and screen name. The support team can safely remove the feed container for you without affecting other parts of your experience.
