🚨Ensure Qdrant collection exists!
Configured with Agent, Chat Trigger, Document Default Data Loader, Embeddings Mistral Cloud, and additional nodes. Review the connections and setup before adapting this template.
Node categories in this workflow
- Trigger
- Web / API
- Code
- Transform
- AI & models
- Files / media
- Subworkflow
- Wait
- Data store
Icons describe general node roles, inferred from node types. Inspect the parameters for the configured action.
Drag to pan; use + and − to zoom. Reconstructed from the exported node positions; nothing runs here. Dashed lines represent non-main connections. Full node names and notes appear below.
How it works
The exported workflow contains the following configured nodes. Their connections are shown above; inspect the JSON for the complete logic, expressions, and external actions.
| Node | Category | Type | Operation |
|---|---|---|---|
| When clicking "Test workflow" | Trigger | Manual Trigger | See node parameters |
| Get This Week's Menu | Web / API | HTTP Request | See node parameters |
| Extract Available Courses | Code | Code | See node parameters |
| Extract Server Data | Transform | Html | extractHtmlContent |
| Get Course Metadata | Transform | Edit Fields | See node parameters |
| Get Recipe | Web / API | HTTP Request | See node parameters |
| Embeddings Mistral Cloud | AI & models | Embeddings Mistral Cloud | See node parameters |
| Default Data Loader | Files / media | Document Default Data Loader | See node parameters |
| Merge Course & Recipe | Transform | Merge | See node parameters |
| Prepare Documents | Transform | Edit Fields | See node parameters |
| Recursive Character Text Splitter | Transform | Text Splitter Recursive Character Text Splitter | See node parameters |
| Chat Trigger | Trigger | Chat Trigger | See node parameters |
| Extract Recipe Details | Transform | Html | extractHtmlContent |
| Qdrant Recommend API | Subworkflow | Tool Workflow | See node parameters |
| Execute Workflow Trigger | Trigger | Execute Workflow Trigger | See node parameters |
| Mistral Cloud Chat Model | AI & models | LM Chat Mistral Cloud | See node parameters |
| Get Tool Response | Transform | Edit Fields | See node parameters |
| Wait for Rate Limits | Wait | Wait | See node parameters |
| Get Mistral Embeddings | Web / API | HTTP Request | POST |
| Use Qdrant Recommend API | Web / API | HTTP Request | POST |
| Get Recipes From DB | Code | Code | See node parameters |
| Save Recipes to DB | Code | Code | See node parameters |
| AI Agent | AI & models | Agent | See node parameters |
| Qdrant Vector Store | Data store | Vector Store Qdrant | See node parameters |
Setup
- Download the JSON and import it into an isolated n8n instance. Leave the workflow inactive.
- Connect your own credentials through n8n’s credential store. Replace
REPLACE_WITH_*values with your resource identifiers. - Inspect API destinations, Code nodes, database queries, file paths, and outbound actions.
- Run with synthetic data and harmless destinations. Enable triggers only after checking the actual outputs.
Requirements
An n8n instance with the listed node types and compatible versions. Service-connected workflows may require accounts, credentials, or paid APIs.
Credential types declared in the source
mistralCloudApiqdrantApi
Workflow notes
Step 1. Fetch Available Courses For the Current Week
Step 1. Fetch Available Courses For the Current Week
To populate our vectorstore, we'll scrape the weekly menu off the HelloFresh Website. The pages are quite large so may take a while so please be patient.
Step 2. Create Recipe Documents For VectorStore
Step 2. Create Recipe Documents For VectorStore
To populate our vectorstore, we'll scrape the weekly menu off the HelloFresh Website. The pages are quite large so may take a while so please be patient.
Step 3. Vectorise Recipes For Recommendation Engine
Step 3. Vectorise Recipes For Recommendation Engine
We'll store our documents in our Qdrant vectorstore by converting to vectors using Mistral Embed. Our goal is to a build a recommendation engine for meals of the week which Qdrant is a perfect solution.
Step 4. Save Original Document to Database
Step 4. Save Original Document to Database
Finally, let's have the original document stored in a more traditional datastore. USually our vectorsearch will return partial docs and those are enough for many use-cases, however in this instance we'll pull the full docs for the Agent get the info required to make the recommendation.
5. Chat with Our HelloFresh Recommendation AI Agent
5. Chat with Our HelloFresh Recommendation AI Agent
This agent is designed to recommend HelloFresh recipes based on your current taste preferences. Need something hot and spicy, warm and comforting or fast and chilled? This agent will capture what you would like and not like and queries our Recipe Recommendation engine powered by Qdrant Vectorstore.
5. Using Qdrant's Recommend API & Grouping Functionality
5. Using Qdrant's Recommend API & Grouping Functionality
Read more about Qdrant's Recommend API
Unlike basic similarity search, Qdrant's Recommend API takes a positive query to match against (eg. Roast Dinner) and a negative query to avoid (eg. Roast Chicken). This feature significantly improves results for a recommendation engine. Additionally, by utilising Qdrant's Grouping feature, we're able to group similar matches from the same recipe - meaning we can ensure unique recipes everytime.
Try it out!
Try it out!
This workflow does the following:
- Fetches and stores this week's HelloFresh's menu
- Builds the foundation of a recommendation engine by storing the recipes in a Qdrant Vectorstore and SQLite database.
- Builds an AI Agent that allows for a chat interface to query for a the week's recipe recommendations.
- AI agent uses the Qdrant Recommend API, providing what the user likes/dislikes as the query.
- Qdrant returns the results which enable the AI Agent to make the recommendation to the user.
Need Help?
Join the Discord or ask in the Forum!
Happy Hacking!
🚨Ensure Qdrant collection exists!
🚨Ensure Qdrant collection exists!
You'll need to run the following command in Qdrant:
PUT collections/hello_fresh
{
"vectors": {
"distance": "Cosine",
"size": 1024
}
}
🚨Configure Your Qdrant Connection
🚨Configure Your Qdrant Connection
- Be sure to enter your endpoint address
🚨Ensure Qdrant collection exists!
🚨Ensure Qdrant collection exists!
Purpose and structure
This folder contains the 🚨Ensure Qdrant collection exists! workflow. Its executable nodes use agent, chatTrigger, code, documentDefaultDataLoader, embeddingsMistralCloud, executeWorkflowTrigger, html, httpRequest, lmChatMistralCloud, manualTrigger, merge, set, textSplitterRecursiveCharacterTextSplitter, toolWorkflow, vectorStoreQdrant, wait. The table and connection map below are derived from the JSON, not an inferred guarantee of behavior.
Setup
Import inactive. Configure your own credentials and replace REPLACE_WITH_* values. Review external destinations and Code nodes before running.
Entry points
When clicking "Test workflow", Chat Trigger, Execute Workflow Trigger
Verification
Sanitized source candidate; not runtime-tested. This overview is generated from node metadata. Read the folder README for the connection map, credential types, and license.
Attribution
https://github.com/Zie619/n8n-workflows/blob/94007c1445d9258a7da116646b79473e7c7c3282/workflows/Wait/0533_Wait_Code_Export_Webhook.json MIT; preserve source notices.