Conversational Filtering
Conversational Filtering in Ecommerce Search transforms traditional facet filtering into an interactive, step-by-step product discovery experience. Instead of presenting all available filters at once, it guides users through a series of natural-language questions that progressively narrow down search results.
The problem it solves
In a typical ecommerce search, users are presented with a large number of facets (color, size, brand, material, etc.) all at once. This can be overwhelming, especially on mobile devices or in categories with many attributes. Users may not know which filters are most useful, leading to decision fatigue and abandoned searches.
Conversational Filtering addresses this by presenting one question at a time, focusing on the most relevant attribute for the current set of results. This creates a guided experience that helps users find the right products faster.
How it works
When a user performs a search in a scope with Conversational Filtering enabled, the search response includes a question with a set of answer options (called chips). Each chip represents a filter value and shows how many products match that value. When the user selects a chip, the corresponding filter is applied and the next most relevant question is presented.
The flow works as follows:
- User searches or browses — The search API returns products along with a Conversational Filtering question
- Question is displayed — The frontend shows the question text and answer chips to the user
- User selects a chip — The corresponding filter is applied to the search request
- Next question appears — The API returns the next unanswered question with updated chips and counts
- Process repeats — Until no more questions remain or the user has found what they need
Key concepts
Questions
A question targets a single facet (term filter) and is presented as natural-language text. For example:
- "What color are you looking for?" — targets the
colorfacet - "Which brand do you prefer?" — targets the
brandfacet - "What size do you need?" — targets the
sizefacet
Questions are specific to each product category, meaning the same search can present different questions depending on the category the user is browsing.
Chips (answers)
Each question comes with a set of chips — selectable answer options that map to filter values. Each chip includes:
| Field | Description |
|---|---|
| Text | The display text for the answer (e.g., "Blue", "Nike") |
| Filter mapping | The filter key and value to apply when selected |
| Product count | The number of products matching this answer |
Chips allow users to refine results with a single tap rather than navigating complex filter panels.
Facet popularity
Questions are automatically generated based on facet popularity — the most frequently used filters within each category. Ecommerce Search tracks which facets users interact with most often over a 30-day rolling period and uses this data to determine which questions to generate.
This means the system adapts to real user behavior: if users in the "Shoes" category frequently filter by size and brand, those will be the first questions asked.
Tip
Facet popularity is tracked via Search tracking and is based on Browse scope interactions only.
Disallowed filters
Not all facets are suitable for Conversational Filtering questions. Administrators can configure disallowed filters to exclude specific facets from automatic question generation. This is useful for:
- Filters that are too technical or not user-friendly
- Filters with too many or too few values
- Filters that are better suited as traditional facets
Category-awareness
Conversational Filtering is category-aware — questions are generated and presented per category. This means:
- Different categories can have different sets of questions
- The questions reflect the most relevant attributes for each category
- When a user browses a specific category, only questions relevant to that category are shown
Scope configuration
Conversational Filtering is an optional feature that must be enabled per Browse scope. It is only available for the Browse scope type and is not supported on other scope types (e.g., full-search).
When enabled on a scope, the unified search response includes the conversationalFiltering field. When disabled or when no more questions are available, this field is null.
Managing questions
Conversational Filtering questions can be managed through the Admin API:
- Auto-generation: Questions can be bulk-generated from popular facets for a given category
- Single generation: Individual questions can be generated for specific facets
- Editing: Question text can be customized to match the store's tone and language
- Per-category management: Each category has its own set of questions
Note
Changes to Conversational Filtering configuration follow the standard publication flow.
Search API response
When Conversational Filtering is active, the unified search response includes a conversationalFiltering field:
| Field | Type | Description |
|---|---|---|
question |
string | The question text to display to the user |
answers |
array | List of answer chips |
answers[].text |
string | Display text for the chip |
answers[].filterKey |
string | The filter key to apply when selected |
answers[].filterValue |
string | The filter value to apply when selected |
answers[].productCount |
number | Number of products matching this answer |
When no question is available (feature disabled, no more questions, or non-Browse scope), the field is null.
Integration with existing search
Conversational Filtering works alongside existing search features:
- Filters: CF provides filter suggestions via questions and answers — the integrating frontend applies the corresponding filter to the next search request when a user selects an answer
- Facets: CF questions are generated from configured facets — both features use the same underlying filter infrastructure
- Unified Search: CF data is included in the unified search response alongside products, suggestions, and other features
- Commercial Sorting: Sorting and commercial rules continue to apply as filters are added through CF