Create a new project
From the Dashboard, go to Projects → New project. Name your project “GoRoute Support”, keep the default chat settings, and select Start from scratch.
Import driver help content
Click Knowledge Base in the left sidebar, then Add data sources. Select Sitemap and paste the URL for the driver help center:Voiceflow will crawl the sitemap and import all pages under this URL.Under LLM chunking strategies, enable the following three options:
This metadata tag is what allows you to filter queries later so the agent only retrieves driver-specific content when helping a driver.
- Smart chunking — splits content into logical, topic-based sections, which works well for help articles that cover multiple topics on a single page.
- FAQ optimization — generates sample questions each section could answer, improving retrieval when users phrase things differently than the source content.
- Remove HTML and noise — cleans up messy formatting from web pages so the agent processes clean text.
| Key | Value |
|---|---|
user_type | driver |
Import courier help content
Click Add data sources again. Select Sitemap and paste the courier help center URL:Select the same three LLM chunking strategies as before: Smart chunking, FAQ optimization, and Remove HTML and noise. Then add the metadata tag:
After both imports finish, your knowledge base will contain content from both help centers — distinguished only by their metadata tags. You can verify this by clicking each data source and checking its metadata in the right panel.
| Key | Value |
|---|---|
user_type | courier |
Set up the global prompt
Click the Agent tab. Write a global prompt that establishes the GoRoute support agent’s identity. Notice how the prompt emphasizes identifying the user type early — this is critical for routing to the correct playbook.
Create the driver support playbook
In the Agent tab, click + in the Skills panel to create a new playbook. Name it “Driver Support”.Set the LLM description:Then write the playbook instructions:
Add knowledge base filtering to the driver playbook
This is the key step. In the driver playbook, scroll to the System tools section on the right and click on the Knowledge base tool to expand its settings.Under Metadata filtering, add a filter:
This ensures that when the agent runs the Driver Support playbook, it only retrieves content tagged with
| Key | Value |
|---|---|
user_type | driver |
user_type: driver. Courier content will never appear in the results.Create the courier support playbook
Create another playbook called “Courier Support”.Set the LLM description:Then write the playbook instructions:Then configure Metadata filtering on this playbook’s Knowledge base tool — same as the previous step, but this time set the value to
courier:| Key | Value |
|---|---|
user_type | courier |
Add agent instructions for routing
Go back to the Agent tab. In the Instructions field, add routing logic so the agent identifies the user type and directs them to the correct playbook:
Test with both user types
Click Run in the top-right corner to test your agent. Try these prompts to verify routing and filtering are working correctly:Check the conversation logs to confirm:
- The correct playbook was triggered for each user type
- The knowledge base query results only contain content matching the right
user_typemetadata tag - The ambiguous test prompts the agent to ask which user type they are
Tips for building filtered knowledge bases
- Verify your filtering. Open the logs panel while testing and look at the knowledge base query results. You should only see chunks tagged with the correct
user_type. If you see mixed results, double-check your metadata tags on the data sources and the filter configuration in each playbook. - Combine chunking strategies for web content. Smart chunking splits pages into logical sections, FAQ optimization helps match varied user phrasing, and Remove HTML and noise cleans up web formatting. Together, they significantly improve retrieval quality for help center content.
- Scale this pattern. You can add more user types (e.g.,
user_type: restaurant_partner) by importing more content with new metadata values and creating additional playbooks with the corresponding filters. - Combine with runtime filtering. For even more dynamic control, you can use conversation variables in the metadata filter value field — so the filter updates automatically based on what the user says.
What’s next?
You’ve built an agent that serves different content to different user types using metadata filtering. Explore these resources to go deeper.Querying the knowledge base
Advanced configuration for knowledge base queries, including custom queries and query re-writing.
Playbooks
Learn more about playbook tools, exit conditions, and model settings.