---
title: "Website support chatbot with FAQ answers and email handoff"
kind: "Kit"
category: "Business"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/4c6feb00-398b-4b65-9780-64f9e477616f"
updated: "2026-11-09"
---

# Website support chatbot with FAQ answers and email handoff

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow behind a chat window on your website. An agent on gpt-4o answers from your FAQ through a Pinecone assistant, keeps each conversation in PostgreSQL and emails your support team through Gmail when a visitor needs a person.

Website support chatbot with FAQ answers and email handoff is an n8n workflow in the Business category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-09. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow is the back end of a support chat window on your website. Six nodes do the work. Each message reaches an AI agent on gpt-4o, which remembers the last five exchanges of that visitor’s session in PostgreSQL. For a question about your business it asks a Pinecone assistant that holds your FAQ files. When the visitor needs a person, it emails your support team through Gmail.

### Who it suits

Small businesses and online shops with a written FAQ and a support inbox, who want routine questions answered at any hour. Skip it if answers depend on live data such as an order’s status. The bot only knows the files you upload.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Online retail | Shop owners | Answer shipping, returns and sizing questions from the shop’s policies | A visitor asks about returns at midnight and gets the shop’s 30-day rule from the uploaded policy. |
| Software and apps | Small support teams | Answer how-to questions from the help docs and pass bugs to the team | A user reports a crash, gives a name and an address, and the team gets the handoff email. |
| Local services | Clinics, studios and gyms | Answer hours, prices and booking questions from one document | A gym’s chat explains the class pass from the price list. |
| Agencies | Builders who set up sites for clients | Give each client a chat window with their own assistant and inbox | An agency imports the workflow once per client and swaps the assistant name and the address. |

### Where to use it

Any n8n that your website, OpenAI, Pinecone, your database and Gmail can all reach. The chat window itself is n8n’s `@n8n/chat` package on your page, or a widget of your own that posts to the trigger.

- n8n Cloud or your own server: import the file and publish it, so the trigger’s production URL answers
- Your website: the chat window, loaded with that URL
- Pinecone: one assistant holding your FAQ, price list or policies
- Your inbox: the handoff emails, each with the subject New Support request

### How to set it up

Get it saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. Its author puts setup at about 17 minutes, with the database and the assistant already in place.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own |
| OpenAI | An API key, for gpt-4o |
| Pinecone | An API key, and an assistant with your FAQ uploaded as files |
| PostgreSQL | A database n8n can reach. The memory node writes to \`n8n\_chat\_histories\` |
| Gmail | An account to send from, and your team’s address |
| Your website | A page where you can add the chat window’s script |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Add an OpenAI credential in `OpenAI Chat Model` and a Postgres credential in `Postgres Chat Memory`.
3. In `Rag Questions`, put your assistant’s name in place of `YOUR_ASSISTANT_NAME` in the URL, and your Pinecone key in place of `YOUR_PINECONE_API_KEY`.
4. Add a Gmail credential in `Send Email` and replace `YOUR_SUPPORT_EMAIL` with your team’s address.
5. Save, press Publish and copy the production URL of `When chat message received`.
6. Load n8n’s chat window on your site with that URL as its `webhookUrl`.

The original copy left the Pinecone address, its headers and the support address blank. The README explains the request `Rag Questions` sends, which is Pinecone’s standard chat call.

### How to use it

Visitors type into the chat window. The agent answers from the FAQ, and asks for a name and an email address before it hands a problem to your team. Your team gets the email. It answers the visitor from its own inbox.

What to change for a different result

| To change | Where |
| --- | --- |
| Tone, hours and handoff rules | The system message of \`AI Agent\`, which has two short rules today |
| What the bot knows | The files in your Pinecone assistant |
| Memory | Context Window Length in \`Postgres Chat Memory\`, five exchanges unless you set it |
| The handoff email | The subject and the address in \`Send Email\` |
| Which sites may embed it | Allowed Origins (CORS) in the trigger’s options |

### Example

A visitor writes that the jacket they ordered came in the wrong size, and gives the name Sam Lee and sam@example.com. The agent checks the returns policy through `Rag Questions`, explains it, then sends the team an email like this one.

```text
Subject: New Support request
Sam Lee (sam@example.com) received a jacket in the wrong size and would like an exchange. They have read the returns policy and are waiting for a reply.
```

### 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. Here one agent sits in the middle with a model, a memory and two tools under it, and it decides when to use each tool. A credential is a key n8n keeps for you. Publish, open your page and chat with it once. Executions then shows each step.

**For experts.** Two models answer here. The agent runs on gpt-4o in n8n. The Pinecone assistant answers FAQ questions with its own model, set to `gpt-4o` in the request body. That request comes from `Rag Questions`, an HTTP Request tool with one placeholder, `{rag-question}`, which the agent fills. The memory key joins `sessionId` and `chatId`, so it works with n8n’s window and with a widget that sends a chat ID.

### Good to know

The chat is public. Plan for cost and spam.

- Open chat: anyone with the trigger’s URL can send messages on your OpenAI key, and Allowed Origins lets any site embed it until you set your domain
- Handoffs: the address is fixed, so the bot can only write to your team, but a visitor can ask for as many handoffs as they like
- Billing: OpenAI bills each message, and Pinecone bills its assistant for each FAQ question
- Stored chats: every conversation sits in your PostgreSQL table with any name or address a visitor gives
- Where data goes: messages go to OpenAI and FAQ questions to Pinecone
- Credentials: the JSON holds none, and nothing from its author’s accounts

## README

```markdown
# Website support chatbot with FAQ answers and email handoff

An n8n workflow. A chat window on your website talks to an AI agent on gpt-4o. It answers questions from your FAQ through
a Pinecone assistant, remembers each conversation in PostgreSQL, and emails your support team through Gmail when a
visitor needs a person.

## What is inside

- `workflow.json`: the workflow as n8n exports it, six nodes. It holds no credential. The original copy left the
  Pinecone address, its headers and the support address empty. Here they are placeholders: the assistant's address,
  `YOUR_PINECONE_API_KEY`, the content type, Pinecone's API version `2026-07` and `YOUR_SUPPORT_EMAIL`.
- `README.md`: these notes.

## Before you start

- An n8n instance, on n8n Cloud or your own server.
- An OpenAI API key.
- A Pinecone account with an assistant, and your FAQ uploaded to it as files.
- A PostgreSQL database n8n can reach, for the chat history.
- A Gmail account to send the handoff emails from, and the address they go to.
- A website where you can add a script, for the chat window.

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. Add an OpenAI credential and select it in `OpenAI Chat Model`.
3. Add a Postgres credential with your database's host, port, database name, user and password, and select it in
   `Postgres Chat Memory`. It writes to a table named `n8n_chat_histories`.
4. In Pinecone, create an assistant and upload your FAQ, price list or policies to it.
5. Open `Rag Questions`. In its URL, put your assistant's name in place of `YOUR_ASSISTANT_NAME`, and in the `Api-Key`
   header put your Pinecone API key in place of `YOUR_PINECONE_API_KEY`.
6. Add a Gmail OAuth2 credential and select it in `Send Email`. Replace `YOUR_SUPPORT_EMAIL` with your team's address.
7. Save and press Publish, then copy the production URL of `When chat message received`.
8. Add n8n's chat window to your site with that URL (below).

## The Pinecone assistant

`Rag Questions` sends the visitor's question to a Pinecone assistant and passes its answer to the agent. The body is
Pinecone's standard chat request: one user message, no streaming, and `gpt-4o` as the model the assistant answers with.
Pinecone's documentation, read on 2 November 2026, gives the address as
`https://prod-1-data.ke.pinecone.io/assistant/chat/<assistant name>`, with the `Api-Key`, `Content-Type` and
`X-Pinecone-Api-Version` headers this node sends. If your assistant's page in the Pinecone console shows another host,
use that one.

Any other service that answers a POST with a question in it can stand in. Change the URL, the headers and the body
together.

## The chat window

`When chat message received` is set to Embedded Chat and open to the public, so it takes messages from a chat window on
your site. n8n's own window is the `@n8n/chat` package. Load it on your page and give it the trigger's production URL
as its `webhookUrl`, as the package's page on npm shows. Its messages arrive with `chatInput` and `sessionId`. The agent
also reads `message` and the memory also reads `chatId`, for a widget of your own that sends those names instead.

## How a conversation runs

| Node | What it does |
|---|---|
| `When chat message received` | Takes each message from the chat window |
| `AI Agent` | Reads the message with a short system message: answer from the FAQ, hand off by email |
| `OpenAI Chat Model` | gpt-4o, the agent's model |
| `Postgres Chat Memory` | Keeps the last five exchanges of each session, keyed on the session and chat IDs |
| `Rag Questions` | Asks the Pinecone assistant a question the agent writes |
| `Send Email` | Sends your team an email with the subject New Support request and a message the agent writes |

The system message asks the agent to put the visitor's name and email address in the handoff, so it asks for them
first. The email goes to your team only: the address is fixed, and nothing writes to the visitor.

## Change the result

- What the bot says and when it hands off: the system message of `AI Agent`. It is two short rules, so this is the
  first place to add your tone, your opening hours or when to hand off.
- What it knows: the files in your Pinecone assistant.
- How much it remembers: Context Window Length in `Postgres Chat Memory`, five exchanges unless you set it.
- The handoff email: the subject in `Send Email`, and the address it goes to.
- Which sites may embed it: Allowed Origins (CORS) in the trigger's options, which allows any site until you set it.

## Good to know

- Open chat: anyone who finds the trigger's URL can send it messages, and each one is an OpenAI call on your key.
  Setting Allowed Origins to your own domain stops other sites from embedding it.
- Handoff spam: a visitor can ask for a handoff as often as they like. Every one lands in your team's inbox.
- Two bills: OpenAI bills the agent's gpt-4o calls, and Pinecone bills its assistant for each FAQ question.
- Where the data goes: each message goes to OpenAI, FAQ questions go to Pinecone, and every conversation is stored in
  your PostgreSQL table, with any name or address the visitor gives.
- The email is sent as HTML with no n8n line at the end.
```

## What is in it

2 files, 10 KB, downloaded as a zip.

```text
README.md  5 KB
workflow.json  5 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 2 steps, starting on a chat message
- AI: 1 step calls an AI model: AI Agent
- Sign-ins: Signs in to: Postgres, Gmail and OpenAI
- API keys: No API key is left in the file
- Step types: Mindket’s checker reads all 2 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/4c6feb00-398b-4b65-9780-64f9e477616f)
- [Its page on Mindket](https://mindket.com/p/4c6feb00-398b-4b65-9780-64f9e477616f)
