Mindket

Question answering over local files with Qdrant and Mistral

Newversion 1 · updated

Overview

An n8n workflow that watches a folder and keeps its text files in a Qdrant vector store, adding, replacing and clearing them as they change. A chat then answers questions about the files with Mistral.

Question answering over local files with Qdrant and Mistral is an n8n workflow in the Productivity category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

At a glance

Runs in
  • Your own n8n server: allow the trigger, let n8n read the folder and import the file
  • Docker: mount a folder at the path in the trigger, or change the path
  • Qdrant: a server n8n can reach, with the address changed in four HTTP nodes
  • Another model: swap the Mistral nodes for another embeddings and chat model that your n8n offers

Platform

Connects 2 apps

How it works

Trigger

Folder event

It starts when a file in the watched folder is added, changed or deleted, and it carries:

  • The event and the file’s path
  • The collection name local_file_search

Actions

  1. The event is routed to the added, changed or deleted branch
  2. A new file is read as text, embedded with Mistral and stored in Qdrant with its path as metadata
  3. A changed file has its stored pieces found by path and deleted, then it is stored again
  4. A deleted file has its stored pieces found by path and deleted
  5. In the chat, the question fetches the matching passages and a Mistral model answers from them

Result

A Qdrant collection that follows the folder, and chat answers drawn from the stored passages

Integrations

What you need before you start.

Mistral AI

Embeddings and chat model

Embeds each file’s text for storage and each question for search, then writes the answer from the matching passages.

NeedsMistral API key

Qdrant

Vector database

Stores the embedded passages with the file path, finds them again by path to update or clear them, and returns the best matches to a question.

NeedsA Qdrant server n8n can reach, and its API key if it asks for one

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
16 steps, starting on its trigger node, by hand or on a chat message
AI
2 steps call an AI model: Qdrant Vector Store and Question and Answer Chain
Sign-ins
Signs in to: Qdrant and Mistral
API keys
No API key is left in the file
Step types
Mindket’s checker reads 9 of its 10 step types. It does not read: Local File Trigger

Read from the workflow’s file, not from a run.

About

What it is

This n8n workflow turns a folder of text files into something you can ask questions. A Local File Trigger watches the folder. A new file is read, embedded with Mistral and stored in a Qdrant vector store. A changed file has its old pieces deleted and is stored again. A deleted file has its pieces cleared. A chat then takes a question, fetches the matching passages from Qdrant and lets a Mistral model write the answer from them. The original notes use bank statements as the example. Twenty-three nodes do the work, beside six sticky notes.

Who it suits

People who keep notes, reports or statements as text files and run n8n on their own server, with a Qdrant vector store beside it. Skip it on n8n Cloud, where the folder trigger does not exist, and for PDFs or images, which this copy reads as text.

Who uses it, and how
IndustryWho uses itHow they use itExample
FinanceSmall business ownersAsk questions of statements and invoices saved as textAn owner asks which month had the largest card payment and reads the answer from the saved files.
ResearchAnalystsKeep a folder of notes searchable by questionAn analyst drops a new note in the folder and asks about it a minute later.
LegalParalegalsQuery a folder of exported text from contractsA paralegal asks which files mention a renewal date.
OperationsIT teamsGive a team a chat over shared documentation kept as textAn IT lead updates a runbook and the chat answers from the new version.

You need some n8n and some server skill: import a file, add two credentials, allow a node that is off by default and point it at a folder. Qdrant has to be running. The workflow’s own sticky notes give no setup time.

Where to use it

Only a self-hosted n8n runs it, because Local File Trigger is not available on n8n Cloud.

  • Your own n8n server: allow the trigger, let n8n read the folder and import the file
  • Docker: mount a folder at the path in the trigger, or change the path
  • Qdrant: a server n8n can reach, with the address changed in four HTTP nodes
  • Another model: swap the Mistral nodes for another embeddings and chat model that your n8n offers

Setup

Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Two accounts and two settings cover every step.

What you need first
NeedDetail
n8nA self-hosted n8n with the Local File Trigger allowed and the folder readable
MistralAn API key for embeddings and chat
QdrantA server n8n can reach, with its API key if it asks for one
FilesA folder of plain text files
  1. Start n8n with the Local File Trigger allowed. From n8n 2.0 it is excluded by default, so remove it from NODES_EXCLUDE.
  2. Let n8n read the folder by adding it to N8N_RESTRICT_FILE_ACCESS_TO. With Docker, mount a folder at /home/node/host_mount/local_file_search or change the path in Local File Trigger.
  3. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  4. Add a Mistral Cloud credential and select it in Embeddings Mistral Cloud, Embeddings Mistral Cloud1 and Mistral Cloud Chat Model.
  5. Add a Qdrant credential and select it in the two Qdrant Vector Store nodes and the four Qdrant HTTP nodes. Change http://qdrant:6333 in those HTTP nodes if your Qdrant is elsewhere.
  6. Activate the workflow, copy a text file into the folder and watch the run under Executions.
  7. Open the chat in the editor and ask about the file. The answer should use its contents.

How to use it

Add, edit or delete text files in the folder and the store follows. Ask the chat a question in plain words and it answers from the passages it finds. It searches every file in the collection and keeps no memory of earlier questions.

What to change for a different result
To changeWhere
The folder and the eventsLocal File Trigger
The collection nameqdrant_collection in Set Variables and the collection of Qdrant Vector Store1
How files are cut upRecursive Character Text Splitter
How many passages the chat readsVector Store Retriever
The chat modelMistral Cloud Chat Model

Example

You copy a text file of card payments into the folder. The workflow reads it, embeds it and stores it in Qdrant.

You open the chat and ask which payment was the largest. The chat fetches the matching passages and Mistral writes the answer from them. Later you save a corrected copy of the file, and the old pieces are deleted before the new ones are stored.

For newcomers and experts

If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. This one has two separate starts. The folder trigger keeps the store up to date, and the chat answers questions from it. Test the first with one small file before you add more.

For experts. The sync uses Qdrant’s REST API through HTTP nodes, with a filter on the file path.

Where to look closer
NodeWhat it doesWhat to know
Local File TriggerWatches a folder for add, change and unlink eventsSelf-hosted only and off by default from n8n 2.0
Handle File EventRoutes each event to the deleted, changed or added branchA manual run sends no event, so nothing is routed
Search For Existing Point1Scrolls Qdrant for points with the file path in metadata.filter_by_filenameThe copy asks for 1000 points, not one
Prepare Embedding DocumentBuilds one text from the location, the time and the file’s contentsDecodes the file as text from in-memory binary data
Qdrant Vector StoreEmbeds the text and stores itCreates the collection when it is missing

Good to know

The model was swapped, four details were repaired and the setup has more moving parts than most.

  • Model: mistral-small-2402 was retired on 16 June 2025. Mindket’s copy calls mistral-small-2603, the Mistral Small 4 API name in Mistral’s docs, read on 12 November 2026
  • Collection: the chat read BankStatements while files went to local_file_search. Both now use local_file_search
  • File path: the original built it from a field the file node does not return. It now reads the directory and name from the file’s binary data
  • Deleted files: that branch searched for the changed file’s path. It now searches for the deleted one, and clears up to 1000 pieces, not one
  • Existing files: only files that change after activation are indexed. Save the older ones again
  • Text only: PDFs and images come out as noise, and a filesystem binary mode gives the node a reference, not the contents
  • A changed file with no stored points is skipped, not added
  • Your data: file text goes to Mistral for embedding, and each question sends the matching passages to Mistral. Qdrant stores the passages. Check Mistral’s data terms before you index private papers
  • Cost: embedding and answering both use your Mistral key
  • Credentials: the JSON holds none

README and files

README

Question answering over local files with Qdrant and Mistral

An n8n workflow that watches a folder on the machine where n8n runs. It keeps the folder's text files in a Qdrant vector store,
adding new ones, replacing changed ones and clearing deleted ones. A chat then answers questions about the files with a Mistral
model that reads the matching passages. The original notes use bank statements as the example.

What is inside

  • workflow.json: the workflow as n8n exports it, twenty-three nodes and six sticky notes. It holds no credential.
  • README.md: these notes.

What we changed from the original copy

  • The chat model was mistral-small-2402, which Mistral retired on 16 June 2025. The copy calls mistral-small-2603, the
    Mistral Small 4 API name in Mistral's docs, read on 12 November 2026.
  • The chat read a collection named BankStatements, while files are stored in local_file_search. Qdrant Vector Store1 now
    reads local_file_search, so the chat finds what the folder branch stores.
  • Prepare Embedding Document built each file's location from $json.directory, a field the Read File node does not return. It
    now reads the directory and file name from the file's binary data, so the stored location matches the path the trigger reports.
  • Search For Existing Point looked for file_changed on the deleted-file branch. It now looks for file_deleted.
  • Both searches asked for one point with limit 1, so only one piece of a file was cleared. The limit is now 1000.
  • A sticky note that invited readers to a chat community and a forum lost that last paragraph.
  • Credential links and the saved template flag were removed. Select your own credentials.

Before you start

  • A self-hosted n8n. The Local File Trigger is not available on n8n Cloud.
  • A Mistral API key.
  • A Qdrant server that n8n can reach, with its API key if it asks for one.
  • A folder of plain text files for the workflow to watch.

Set it up

  1. Start n8n with the Local File Trigger allowed. From n8n 2.0 it is excluded by default, so remove it from NODES_EXCLUDE.
  2. Let n8n read the folder. From n8n 2.0, N8N_RESTRICT_FILE_ACCESS_TO defaults to ~/.n8n-files, so add your folder to it.
    With Docker, mount a folder at /home/node/host_mount/local_file_search, the path in Local File Trigger, or change the path.
  3. Import workflow.json in n8n: create a workflow, open its menu and choose Import from File.
  4. Add a Mistral Cloud credential and select it in Embeddings Mistral Cloud, Embeddings Mistral Cloud1 and
    Mistral Cloud Chat Model.
  5. Add a Qdrant credential and select it in Qdrant Vector Store, Qdrant Vector Store1 and the four Qdrant HTTP nodes. The
    HTTP nodes also hold the address http://qdrant:6333. Change it if your Qdrant is somewhere else.
  6. Activate the workflow. Copy a text file into the folder and watch the run appear under Executions.
  7. Open the chat in the editor and ask about the file. The answer should use its contents.

How a run goes

  1. Local File Trigger fires for each added, changed or deleted file, after the write has finished. Set Variables turns the
    event into one of file_added, file_changed or file_deleted, with the file's path, and names the collection
    local_file_search.
  2. Handle File Event sends the item down one of three outputs.
  3. Added: Read File loads the file. Prepare Embedding Document builds one text from the file's location, the processing
    time and the contents. Qdrant Vector Store embeds it with Mistral and stores it. Default Data Loader attaches
    the file's path as filter_by_filename, and Recursive Character Text Splitter cuts the text into chunks. Qdrant creates the
    collection if it is missing.
  4. Changed: Search For Existing Point1 asks Qdrant for the points whose filter_by_filename is the path. Has Existing Point?1
    checks there are some and Delete Existing Point deletes them. Remap for File_Added Flow then sends the path down the added
    route, so the file is stored again.
  5. Deleted: Search For Existing Point finds the points for the path, Has Existing Point? checks them and
    Delete Existing Point1 removes them. The two delete nodes carry each other's numbers in the original naming.
  6. Chat: Chat Trigger sends the question to Question and Answer Chain. Vector Store Retriever fetches the matching chunks
    from Qdrant Vector Store1, and Mistral Cloud Chat Model writes the answer from them.

Change the look

  • The folder and the events: Local File Trigger.
  • The collection name: qdrant_collection in Set Variables and the collection of Qdrant Vector Store1. Keep them equal.
  • How files are cut up: Recursive Character Text Splitter, whose own defaults are 1000 characters and no overlap.
  • How many passages the chat reads: Vector Store Retriever, which fetches 4 by default.
  • The chat model: Mistral Cloud Chat Model.

Good to know

  • Only files that change after the workflow is active are indexed. Files already in the folder are not read until you save them
    again.
  • Prepare Embedding Document decodes the file as text from n8n's in-memory binary data, which is the default mode. PDFs and
    images come out as noise, and a filesystem or S3 binary mode gives the node a reference instead of the contents.
  • The manual trigger goes to Set Variables with no file event, so a click on Test workflow does nothing useful.
  • A changed file that has no stored points is skipped, not added. Set Variables also sets directory, which nothing reads.
  • The line file created holds the time the workflow processed the file, not the time the file was made.
  • The text of every file goes to Mistral for embedding, and each question sends the matching passages to Mistral. Qdrant keeps
    the passages. For bank statements or other private papers, check Mistral's data terms and where your Qdrant runs.
  • Costs: embedding and answering both use your Mistral key.
  • The chat has no filter. It searches every file in the collection.
Files
NOTICE.md  682 B
README.md  6 KB
workflow.json  24 KB

3 files, 31 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-12

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

Huashu Design

alchaincyf · Skill

Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…

New29.4k

Guizang PPT Skill

op7418 · Skill

Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…

New29.8k

Claude Code Skills & Plugins

alirezarezvani · Skill

Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…

New29.8k

Similar in Productivity

See all in Productivity

Frontend Slides

zarazhangrui · Skill

Builds HTML presentations from scratch or from a PowerPoint file and shows visual style previews to pick from, for people who want web slides with no CSS or Ja…

New32.3k

IPTV

iptv-org · Kit

Collects publicly available live TV channels from many countries into playlists that any video player with live streaming can open. Made for viewers and for de…

New144k

upscaler

uwg · Kit

Holds a set of image upscaling models gathered from the OpenModelDB community, for people who want to enlarge low-resolution pictures with AI on their own comp…

New