Mindket

Company knowledge email replies with approve or disapprove

Newversion 1 · updated

Overview

An n8n workflow that drafts email replies from your own documents in Qdrant, then sends you the draft by Gmail with Approve and Disapprove buttons. Approve sends the reply, and Disapprove asks for a new draft.

Company knowledge email replies with approve or disapprove 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
  • n8n Cloud: bring in the file, connect your accounts and switch it on, with a Qdrant that it can reach
  • Your own n8n server: the same file, next to a Qdrant of your own
  • A local install: it runs, but the approval links then open only on that same computer
  • Any account that offers IMAP and SMTP: a personal one or a company one

Platform

Connects 5 apps

How it works

Trigger

New unread email

It starts when an unread email arrives in the mailbox. Set first:

  • IMAP, SMTP and Gmail credentials
  • OpenRouter, OpenAI and Qdrant credentials
  • Your Qdrant collection name and your Gmail address

Actions

  1. The IMAP node picks up each new unread email and marks it read
  2. The email’s HTML is turned into Markdown
  3. A chain on OpenRouter summarizes it in up to 100 words
  4. An agent on OpenAI searches your Qdrant collection and drafts a reply
  5. Gmail sends you the original and the draft with Approve and Disapprove buttons, then waits
  6. Approve sends the reply to the original sender as HTML, and Disapprove writes a new draft

Result

A reply built from your documents, sent to the sender only after you pressed Approve

Integrations

What you need before you start.

Email (IMAP and SMTP)

Mailbox

Reads each new email and sends the approved reply.

NeedsIMAP and SMTP details

OpenRouter

Language model

Summarizes each email.

NeedsOpenRouter API key

OpenAI

Language model

Runs the agent that writes the draft, and turns its search into vectors.

NeedsOpenAI API key

Qdrant

Knowledge base

Holds your documents and returns the passages that match.

NeedsA Qdrant collection and its credential

Gmail

Approval

Sends you the draft with Approve and Disapprove buttons and waits for your click.

NeedsA Gmail account

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
It has no trigger node, so a run reaches no step
API keys
No API key is left in the file

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

About

What it is

This n8n workflow answers incoming email from your own company documents, with a person checking each reply. It reads an inbox over IMAP and summarizes the message. An AI agent then searches a Qdrant collection of your documents. It drafts a reply from what it finds. You receive the draft in Gmail with an Approve and a Disapprove button. Approve sends the reply to the sender. Disapprove asks the agent for a new draft. Twelve nodes run it, beside five sticky notes.

Who it suits

Companies that answer general enquiries by email and keep the answers in documents, such as price lists, policies and product sheets. Shops, support teams and small agencies fit well. It suits a team that wants an AI to do the lookup while a person keeps the last word. A person always decides. Skip it if you have no documents to search, or if you want a plain draft with no setup. Documents come first. Its simpler cousin, Email replies drafted by AI and approved by email, needs no knowledge base and has one Approve button.

Who uses it, and how
IndustryWho uses itHow they use itExample
RetailOnline shopsAnswer questions on shipping and returns from the policy documentsA shop owner approves a reply that quotes the return window from the policy.
SupportSupport teamsAnswer repeat product questions from the manualA team lead presses Disapprove when a draft misses a step, and a new one arrives.
ServicesSmall agenciesQuote standard terms and prices from a rate cardAn agency checks a reply that quotes a package price before it goes out.
HospitalityHotelsAnswer questions on check in times and facilitiesA front desk manager approves a reply about parking rules.

You need your documents loaded in Qdrant, a mailbox, a Gmail account and keys for OpenRouter and OpenAI.

Where to use it

Any n8n that can reach your mail server, Qdrant, OpenRouter, OpenAI and Gmail will run it. The workflow must be switched on. The buttons are links to your n8n, so you must be able to open it where you read the email.

  • n8n Cloud: bring in the file, connect your accounts and switch it on, with a Qdrant that it can reach
  • Your own n8n server: the same file, next to a Qdrant of your own
  • A local install: it runs, but the approval links then open only on that same computer
  • Any account that offers IMAP and SMTP: a personal one or a company one

Setup

Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Import the file, add the credentials, name your collection and your Gmail address, and switch the workflow on.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own
QdrantA collection of your documents as vectors made by text-embedding-3-small
MailboxIMAP and SMTP details for one account
GmailAn account that receives the approval emails
OpenRouterAn API key
OpenAIAn API key
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. Add an IMAP credential to Email Trigger (IMAP), the same account’s SMTP credential to Send Email, and a Gmail credential to Send Draft.
  3. Add an OpenRouter credential to OpenRouter Chat Model. Add an OpenAI credential to OpenAI Chat Model and Embeddings OpenAI. Add a Qdrant credential to Qdrant Vector Store.
  4. In Qdrant Vector Store, replace <YOUR_QDRANT_COLLECTION> with the name of your collection.
  5. In Send Draft, replace <YOUR_GMAIL_ADDRESS> with the Gmail address that should receive drafts.
  6. OpenAI retires gpt-4o-mini on 14 January 2027. Pick gpt-5.6-terra in OpenAI Chat Model, because the agent calls a tool and OpenAI says gpt-6-luna supports function calling in Chat Completions only with reasoning effort set to none.
  7. Save the workflow, switch it on and send a test email to the mailbox.

How to use it

Leave the workflow on. Each unread email gets a draft, and you receive an approval email in Gmail with the original and the draft. Press Approve to send the reply. Press Disapprove to get a new draft. Do nothing and nothing is sent. No click, no reply.

What to change for a different result
To changeWhere
Tone and length of the replyThe instructions in Write email
What the agent may look upThe description of the tool in Qdrant Vector Store
Length of the summaryThe two prompts in Email Summarization Chain
The modelsOpenRouter Chat Model and OpenAI Chat Model
The button namesThe options of Send Draft

Example

A hotel gets an email that asks whether the car park is free for guests. The workflow summarizes it, and the agent searches the hotel’s documents and finds the parking rules.

The approval email reaches the front desk manager in Gmail, with the guest’s message above the draft. The draft gives the weekday price and leaves out the weekend rate. She presses Disapprove. A new draft arrives. This one is complete, so she presses Approve. The guest receives it under the subject Re: plus the original subject.

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. Qdrant is a database that finds passages by meaning, not by exact words. Your documents sit in it as numbers called vectors. An agent is a model that can choose to use a tool, and here the tool is that search. You are the check, because the run stops until you press a button.

For experts. The agent’s only tool is the Qdrant node in retrieve as tool mode, so its model must support tool calls.

Where to look closer
NodeWhat it doesWhat to know
Qdrant Vector StoreSearches your collection when the agent asksRetrieve as tool mode. The tool is named company_knowledge_base, and document metadata is not returned
Embeddings OpenAITurns the agent’s query into a vectorNo model is set, so it uses text-embedding-3-small, and the collection must match it
Email Summarization ChainSummarizes the Markdown textBinary mode with no binary file, so the text enters through {{ $json.data }} in the prompt
Send DraftSends the approval email through Gmail and pausesTwo buttons and no time limit. It resumes with data.approved
Approve?Tests data.approvedThe false output goes to Set Email and then back to Write email

Good to know

Replies are only as good as your documents, and a Disapprove can be repeated without end.

  • Documents: this workflow does not load them into Qdrant. With an empty or mismatched collection, the agent finds little or nothing and writes from the summary alone
  • Vectors: the collection must hold vectors made by the same model as Embeddings OpenAI, which uses text-embedding-3-small here
  • Summary: the agent writes from 100 words, so a detail the summary drops cannot reach the reply. Read each draft against the original
  • Waiting: Send Draft has no time limit. If you never press a button, nothing is sent, and the run waits in n8n until you delete it
  • Loop: each Disapprove writes a fresh draft from the same summary and asks again
  • Link: the buttons point to your n8n, so open them from a device that can reach that address
  • Braces: the email text sits inside a prompt template, so a message with curly braces may make the summary step fail
  • Unread only: the trigger takes unread mail, so an email you open in your own mail app first is marked read and skipped
  • Repairs: the original copy used deepseek/deepseek-r1:free, which OpenRouter’s model list no longer shows on 12 November 2026. Mindket’s copy uses deepseek/deepseek-v4-flash on the OpenRouter sub-node, listed at 0.09 dollars per million input tokens. The tool name had a typo, two placeholders replace private values and two sticky notes were rewritten
  • Model: OpenAI’s deprecations page gives 14 January 2027 as the shutdown date of gpt-4o-mini, with gpt-6-luna as the replacement. The agent uses a tool, so the setup steps point to gpt-5.6-terra
  • Billing: OpenRouter and OpenAI bill each run, and your mail provider may cap how many messages you send
  • Your data: the email text goes to OpenRouter and its model provider, the summary and the matched passages go to OpenAI, and the approval email goes through Gmail
  • Credentials: the JSON holds none

README and files

README

Company knowledge email replies with approve or disapprove

An n8n workflow that answers incoming email from your own company documents. An AI agent looks facts up in a Qdrant
collection and drafts a reply. It then emails the draft to you with an Approve and a Disapprove button. Approve sends the
reply to the sender. Disapprove makes the agent write another draft.

What is inside

  • workflow.json: the workflow as n8n exports it, 12 nodes and 5 sticky notes. It holds no credential.
  • README.md: these notes.

What we changed from the original copy

  • The summary step ran deepseek/deepseek-r1:free on an OpenAI Chat Model node pointed at OpenRouter. OpenRouter's
    public model list, read on 12 November 2026, no longer shows that model. The step now uses OpenRouter Chat Model, the
    sub-node n8n has for OpenRouter, set to deepseek/deepseek-v4-flash. That model is listed, at 0.09 dollars per million
    input tokens and 0.18 per million output tokens on that day.
  • The agent's tool was named company_knowladge_base. It is now company_knowledge_base. The agent's model node, once
    called OpenAI, is now OpenAI Chat Model.
  • The Qdrant collection read =COLLECTION, and Send Draft read YOUR GMAIL ADDRESS. They are now
    <YOUR_QDRANT_COLLECTION> and <YOUR_GMAIL_ADDRESS>.
  • Two sticky notes were rewritten in a few lines each. One told the reader to tokenize documents first, and the other
    claimed that only Gmail can send and wait for an answer. n8n's Send Email node can do it too.

Before you start

  • An n8n instance, on n8n Cloud or your own server.
  • A Qdrant instance with a collection that holds your company documents as vectors. This workflow only reads the
    collection. Fill it first with another workflow, using OpenAI's text-embedding-3-small, the model that
    Embeddings OpenAI uses when it has no model set.
  • One mailbox you can read over IMAP and send from over SMTP.
  • A Gmail account for the approval emails.
  • An OpenRouter API key and an OpenAI API key.

Set it up

  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. Add an IMAP credential to Email Trigger (IMAP), the same account's SMTP credential to Send Email, and a Gmail
    credential to Send Draft.
  3. Add an OpenRouter credential to OpenRouter Chat Model. Add an OpenAI credential to OpenAI Chat Model and
    Embeddings OpenAI. Add a Qdrant credential to Qdrant Vector Store.
  4. In Qdrant Vector Store, replace <YOUR_QDRANT_COLLECTION> with the name of your collection.
  5. In Send Draft, replace <YOUR_GMAIL_ADDRESS> with the Gmail address that should receive drafts.
  6. OpenAI retires gpt-4o-mini on 14 January 2027. Pick gpt-5.6-terra in OpenAI Chat Model, because the agent calls
    a tool and OpenAI says gpt-6-luna supports function calling in Chat Completions only with reasoning effort set
    to none.
  7. Save the workflow, switch it on and send a test email to the mailbox.

How a run goes

  1. Email Trigger (IMAP) watches the inbox. It fires for each unread email and marks it read, which are its own
    defaults. The message body sits in textHtml.
  2. Markdown turns that into Markdown and puts it in data.
  3. Email Summarization Chain asks OpenRouter Chat Model for a summary of at most 100 words. The chain is set to read a
    binary file, and there is none, so the email text reaches the model through the prompt, which holds {{ $json.data }}.
  4. Set Email copies the summary into a field called email.
  5. Write email is an agent on OpenAI Chat Model. Its instructions ask for a short, professional business reply, with
    the body only, in HTML with a few simple tags. It gets the summary. Its one tool, Qdrant Vector Store, searches your
    collection through Embeddings OpenAI and hands back matching passages.
  6. Send Draft emails the original message and the draft to your Gmail address through two buttons, one to approve and
    one to disapprove, then waits.
  7. Approve? checks data.approved. On true, Send Email sends the latest draft as HTML to the sender, under the
    subject Re: plus the original subject. On false, Set Email and Write email run again for a new draft, and
    Send Draft asks again.

Change the look

  • Tone and length of the reply: the instructions in Write email.
  • What the agent may look up: the description of the tool in Qdrant Vector Store.
  • How long the summary is: the two prompts in Email Summarization Chain.
  • The models: OpenRouter Chat Model and OpenAI Chat Model.
  • The button names: the options of Send Draft.
  • How long it waits: add Limit Wait Time in the options of Send Draft.

Good to know

  • The facts below come from pages and n8n source read on 12 November 2026.
  • This workflow does not load your documents into Qdrant. With an empty or mismatched collection, the agent finds
    nothing and writes from the summary alone.
  • The collection must hold vectors made by the same model as Embeddings OpenAI, which uses text-embedding-3-small
    here. A collection built with another model returns poor matches.
  • A reply is written from the summary, so a detail the summary drops cannot reach the reply. Read each draft against the
    original.
  • Send Draft has no time limit. The run waits until you press a button. If you never do, nothing is sent, and the
    waiting run stays in n8n until you delete it.
  • Each Disapprove writes a fresh draft from the same summary, so nothing stops you from asking again and again.
  • The buttons are links to your n8n. You must be able to open that address from where you read the approval email.
  • The email text sits inside a prompt template, so a message with curly braces may make the summary step fail.
  • The trigger takes unread mail only. An email you open in your own mail app first is marked read and is skipped.
  • Models: OpenAI's deprecations page gives 14 January 2027 as the shutdown date of gpt-4o-mini, with gpt-6-luna as
    the replacement. The agent here uses a tool, which is why the setup steps point to gpt-5.6-terra.
  • Billing: OpenRouter and OpenAI bill each run, and your mail provider may cap how many messages you send.
  • Your data: the email text goes to OpenRouter and its model provider, the summary and the matched passages go to OpenAI,
    and the approval email goes through Gmail.
  • Credentials: the JSON holds none.
Files
NOTICE.md  675 B
README.md  6 KB
workflow.json  11 KB

3 files, 18 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

anaksor-ocr

Sokheng · Kit

Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

New

Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…

New

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

New

Similar in Productivity

See all in Productivity

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

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