Mindket

Support chatbot webhook that logs chats to Google Sheets

Newversion 1 · updated

Overview

An n8n workflow that answers customer questions sent to a webhook. An OpenAI model replies from the company details you type into one node, and every question and answer is added to a Google Sheet.

Support chatbot webhook that logs chats to Google Sheets is an n8n workflow in the Business 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: import the file into a new workflow there
  • Your own n8n server: the same file and steps
  • Your site or app: send a POST request with the question
  • Google Sheets: the log of every question and answer

Platform

Connects 2 apps

How it works

Trigger

Webhook

It starts when your site sends a POST request to the webhook, with a JSON body that holds:

  • message: the customer’s question
  • session_id: an ID for the chat, made up if missing
  • customer_name: how to address the customer, optional

Actions

  1. The question is checked and given a message ID and a session ID
  2. The question goes to gpt-4o-mini with your company details and a set of rules
  3. The model replies in JSON with an answer, a confidence number and a category
  4. The reply is joined with the request’s details
  5. One row is added to the Lite Conversations tab of your Google Sheet
  6. The answer is returned to the caller as JSON

Result

A JSON reply with the answer, the confidence and the category, and a logged row for every question

Integrations

What you need before you start.

OpenAI

Answer writer

Runs gpt-4o-mini to answer the question from your company details, and to return it as JSON.

NeedsOpenAI API key

Google Sheets

Chat log

Keeps one row for each question and answer, with times and category.

NeedsA Google account to sign in with, and a sheet with nine headings

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
6 steps, starting when its webhook is called
AI
1 step calls an AI model: AI: Generate Response
Sign-ins
Signs in to: Google Sheets
API keys
No API key is left in the file
Step types
Mindket’s checker reads all 5 of its step types

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

About

What it is

This n8n workflow is a small support chatbot that answers over a webhook. Your site sends a customer’s question. An OpenAI model answers from the company details you type into one node, and replies in JSON with a confidence number and a category. The workflow also adds the question and the answer to a Google Sheet. It has no vector database and no memory between messages. Six nodes run it, beside one sticky note.

Who it suits

Small businesses, prototype builders and agencies who want a first support bot behind their own page or app, with no knowledge base to maintain. Skip it if answers must draw on many documents or on earlier messages, since the bot sees only your short company details and one question.

Who uses it, and how
IndustryWho uses itHow they use itExample
E-commerceSmall shop ownersAnswer delivery and returns questions on the shop’s siteA shop owner pastes the delivery times into the node, and the bot answers “when will it arrive?”.
SoftwareEarly-stage teamsPut a first-line bot on a help or pricing pageA team reads the sheet each week to see which questions come up most.
AgenciesWeb agenciesHand a client a working bot and a log of what visitors askAn agency sets up one copy for each client with their own details.
ServicesClinics and salonsAnswer opening hours and booking rulesA salon’s page answers questions about hours outside office time.

You need a little n8n: import a file, add two credentials, fill three gaps in a message and call a webhook. Its author puts setup at about 2 minutes.

Where to use it

Any n8n that your site or app can reach will run it, since the bot answers on a public address.

  • n8n Cloud: import the file into a new workflow there
  • Your own n8n server: the same file and steps
  • Your site or app: send a POST request with the question
  • Google Sheets: the log of every question and answer

Setup

Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Make the sheet first, then add the two credentials.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own
OpenAIAn API key
Google SheetsA Google account and a sheet with a tab named Lite Conversations and nine headings
Your siteSomething that can send a POST request
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. Make the sheet. Give the tab Lite Conversations and put these headings in row 1: Message ID, Session ID, Customer, Question, Answer, Confidence, Category, Received and Responded.
  3. In Log to Sheets, replace YOUR_SHEET_ID with the ID from the sheet’s address and select a Google Sheets credential.
  4. Select an OpenAI credential in AI: Generate Response.
  5. In that node’s first message, replace <YOUR_COMPANY_NAME>, <YOUR_COMPANY_INFO> and <YOUR_SUPPORT_EMAIL>. The brackets go.
  6. Press Test workflow and send a POST request to the test address shown in Receive Message. Check the reply and the sheet.
  7. Press Publish and use the production address.

How to use it

Send a POST request to the webhook with a JSON body: message, and optionally session_id and customer_name. The reply holds answer, confidence and category. Read the sheet to see what customers ask.

What to change for a different result
To changeWhere
Company details, tone and rulesThe system message in AI: Generate Response
The model and the answer lengthThe same node
The categoriesThe line that lists them in the system message
Where answers are loggedSwap Log to Sheets for another node

Example

A visitor to a shirt shop’s page asks, “What are your opening hours?” The site posts the question with the name Sam.

The model answers from the details in the node. The workflow returns answer, confidence and category, and the sheet gets a new row with the question, the answer and the two times.

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. A webhook is an address that starts the workflow when something sends it data. The workflow answers the sender from its last node.

For experts. Validate Input reads the request from body. AI: Generate Response is the OpenAI node, version 1.8, set to return JSON, and Merge Response accepts either an object or a text reply.

Where to look closer
NodeWhat it doesWhat to know
Validate InputChecks the message and makes IDsA message under 2 characters stops the run with an error
AI: Generate ResponseAsks gpt-4o-mini for JSONTemperature 0.3 and a 500-token cap
Merge ResponseJoins the reply with the requestA reply that cannot be read becomes a polite fallback
Log to SheetsAppends one rowRuns beside Respond to Customer, not before it

Good to know

The webhook is open to anyone who knows its address, and the bot has no memory.

  • Open webhook: anyone who learns the address can use your OpenAI key and add rows to your sheet. Keep it private or add Header Auth in Receive Message
  • No memory: each message is answered alone, and session_id is only written to the sheet
  • The repair: the file used an OpenAI node type that exists in n8n only for old text completion, so the copy uses the chat-message node with the same settings. It also reads three values from the nodes, not from environment variables, and makes its IDs without Node’s crypto module
  • Model: OpenAI’s deprecations page, read on 12 November 2026, lists gpt-4o-mini-2024-07-18 for shutdown on 14 January 2027, with gpt-6-luna as the replacement
  • Confidence: the number is written by the model, not measured
  • Billing: OpenAI bills each message, in proportion to the size of your company details and the answer
  • Your data: each question and your company details go to OpenAI, the rows go to Google Sheets
  • Credentials: the JSON holds none

README and files

README

Support chatbot webhook that logs chats to Google Sheets

An n8n workflow that answers customer questions over a webhook. Your website or app sends a question as a POST request. An OpenAI
model answers from the company details you type into one node, and the reply comes back as JSON with a confidence score and a
category. Every question and answer is also added to a Google Sheet. There is no vector database and no memory between messages.

What is inside

  • workflow.json: the workflow as n8n exports it, seven nodes. Six of them run and one is a sticky note. It holds no credential.
  • README.md: these notes.

What we changed from the original copy

  • AI: Generate Response was an n8n-nodes-base.openAi node at version 1.8. In n8n's current source, read on 12 November 2026,
    that type exists only at versions 1 and 1.1, for the old text-completion call. The node that takes chat messages is
    @n8n/n8n-nodes-langchain.openAi. The copy uses it at version 1.8 with the same settings: model gpt-4o-mini, the two messages,
    temperature 0.3 and 500 tokens. Output Content as JSON stands in for the old responseFormat setting.
  • That node hands back JSON already parsed, where the old one gave text. Merge Response read it as text, so the copy accepts
    both forms.
  • Validate Input made its IDs with Node's crypto module, which a Code node refuses unless the instance allows it. The copy
    makes the two IDs with a short function and needs no module.
  • The system message read the company name and the company details from environment variables, and Log to Sheets read the sheet
    ID from a third. You can set environment variables only when you run n8n yourself, so the copy takes these values from the
    nodes. The placeholders are <YOUR_COMPANY_NAME>, <YOUR_COMPANY_INFO> and YOUR_SHEET_ID. The support address in rule 3 is
    <YOUR_SUPPORT_EMAIL>.
  • The webhook path is support-chatbot now.
  • The sticky note matches these changes. The credential links and the webhook ID are gone.
  • Nothing else. The rules in the system message and the sheet columns are as the file had them.

Before you start

  • An n8n instance, on n8n Cloud or your own server.
  • An OpenAI API key.
  • A Google account for a Google Sheets credential, and a sheet with a tab named Lite Conversations. Its first row needs these
    headings: Message ID, Session ID, Customer, Question, Answer, Confidence, Category, Received and Responded.
  • A page, a script or a tool that can send a POST request to the webhook.

Set it up

  1. In n8n, create a workflow, open its menu and choose Import from File. Pick workflow.json.
  2. In Log to Sheets, replace YOUR_SHEET_ID with the ID from the sheet's address, the part between /d/ and /edit. Select a
    Google Sheets credential.
  3. Add an OpenAI credential and select it in AI: Generate Response.
  4. In the same node, edit the first message. Replace <YOUR_COMPANY_NAME> with your name, <YOUR_COMPANY_INFO> with what the bot
    should know, and <YOUR_SUPPORT_EMAIL> with the address it hands over to. The brackets go.
  5. Press Test workflow and send a request to the test address, shown in Receive Message:
   curl -X POST "<YOUR_N8N_URL>/webhook-test/support-chatbot" -H "Content-Type: application/json" -d '{"message":"What are your opening hours?","session_id":"demo-1","customer_name":"Sam"}'
  1. Check the reply, then check the sheet for a new row.
  2. Press Publish and call the production address, which uses /webhook/ in place of /webhook-test/.

How a run goes

  1. Receive Message takes a POST on the path support-chatbot. It answers later, through Respond to Customer.
  2. Validate Input reads message, or text, from the request body. It takes session_id, which it makes up if missing, and
    customer_name, which falls back to Customer. A message shorter than 2 characters stops the run with an error.
  3. AI: Generate Response sends the system message and Customer <name> asks: with the question to gpt-4o-mini. The system
    message asks for friendly, short answers under 150 words, based only on your company details. The model must reply with JSON
    holding answer, confidence and category, one of faq, billing, technical, complaint or other.
  4. Merge Response joins that reply with the request's fields. If the reply cannot be read, it answers `Sorry, I had trouble
    processing that. Please try again. and sets confidence` to 0.
  5. Log to Sheets appends a row to Lite Conversations, and Respond to Customer returns this JSON to the caller:
    success, messageId, answer, confidence and category. Both branches leave Merge Response together.

Change the look

  • The company details, tone and rules: the system message in AI: Generate Response.
  • The model, the length cap and the temperature: the same node.
  • The categories: the line in the system message that lists them.
  • The sheet's tab or columns: Log to Sheets.
  • Where the answers are logged: swap Log to Sheets for Airtable, a database or another node.

Good to know

  • The webhook has no sign-in. Anyone who learns its address can send questions on your OpenAI key and add rows to your sheet. Keep
    the address private, or add Header Auth in Receive Message. A page on another site also needs that node's allowed origins set.
  • Each message is answered alone. session_id is only written to the sheet, so the bot does not remember an earlier question.
  • Your company details travel with every request. Keep them short and keep secrets out of them.
  • confidence is a number the model writes, not a measured value. Do not route on it without testing.
  • A message that is empty or one character long ends in an error, not in a JSON reply. Check the length on your side first.
  • OpenAI's deprecations page, read on 12 November 2026, lists gpt-4o-mini-2024-07-18 for shutdown on 14 January 2027, with
    gpt-6-luna as the replacement. Pick another model in AI: Generate Response before then.
  • Where the data goes: each question and your company details go to OpenAI, the rows go to Google Sheets, and the answer goes back
    to the caller.
  • Billing: OpenAI charges for each message, in proportion to the size of your company details and the answer.
Files
NOTICE.md  636 B
README.md  6 KB
workflow.json  7 KB

3 files, 13 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 Business

See all in Business

pplx-decider-v1.1-27b

perplexity-ai · Kit

Picks the best option for a decision from text and images, such as which team should handle a request, with a probability for each choice, for developers who b…

New

NuExtract3

numind · Kit

Reads documents as text or images and fills a JSON template with the fields you ask for, or converts the pages to Markdown. A 4B model for teams that process s…

New

Drex DLM

nace-ai · Kit

Scores yes or no, multiple choice and rating questions about a document in one pass, with a probability for every option. An 8B decision model from Nace.AI tha…

New