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…
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.
Webhook
It starts when your site sends a POST request to the webhook, with a JSON body that holds:
A JSON reply with the answer, the confidence and the category, and a logged row for every question
What you need before you start.
Answer writer
Runs gpt-4o-mini to answer the question from your company details, and to return it as JSON.
NeedsOpenAI API key
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
Checked by Mindket on 13 Nov 2026
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.
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.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| E-commerce | Small shop owners | Answer delivery and returns questions on the shop’s site | A shop owner pastes the delivery times into the node, and the bot answers “when will it arrive?”. |
| Software | Early-stage teams | Put a first-line bot on a help or pricing page | A team reads the sheet each week to see which questions come up most. |
| Agencies | Web agencies | Hand a client a working bot and a log of what visitors ask | An agency sets up one copy for each client with their own details. |
| Services | Clinics and salons | Answer opening hours and booking rules | A 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.
Any n8n that your site or app can reach will run it, since the bot answers on a public address.
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.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| OpenAI | An API key |
| Google Sheets | A Google account and a sheet with a tab named Lite Conversations and nine headings |
| Your site | Something that can send a POST request |
workflow.json.Lite Conversations and put these headings in row 1: Message ID, Session ID, Customer, Question, Answer, Confidence, Category, Received and Responded.Log to Sheets, replace YOUR_SHEET_ID with the ID from the sheet’s address and select a Google Sheets credential.AI: Generate Response.<YOUR_COMPANY_NAME>, <YOUR_COMPANY_INFO> and <YOUR_SUPPORT_EMAIL>. The brackets go.Receive Message. Check the reply and the sheet.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.
| To change | Where |
|---|---|
| Company details, tone and rules | The system message in AI: Generate Response |
| The model and the answer length | The same node |
| The categories | The line that lists them in the system message |
| Where answers are logged | Swap Log to Sheets for another node |
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.
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.
| Node | What it does | What to know |
|---|---|---|
Validate Input | Checks the message and makes IDs | A message under 2 characters stops the run with an error |
AI: Generate Response | Asks gpt-4o-mini for JSON | Temperature 0.3 and a 500-token cap |
Merge Response | Joins the reply with the request | A reply that cannot be read becomes a polite fallback |
Log to Sheets | Appends one row | Runs beside Respond to Customer, not before it |
The webhook is open to anyone who knows its address, and the bot has no memory.
Receive Messagesession_id is only written to the sheetcrypto modulegpt-4o-mini-2024-07-18 for shutdown on 14 January 2027, with gpt-6-luna as the replacementAn 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.
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.AI: Generate Response was an n8n-nodes-base.openAi node at version 1.8. In n8n's current source, read on 12 November 2026,@n8n/n8n-nodes-langchain.openAi. The copy uses it at version 1.8 with the same settings: model gpt-4o-mini, the two messages,Output Content as JSON stands in for the old responseFormat setting.Merge Response read it as text, so the copy acceptsValidate Input made its IDs with Node's crypto module, which a Code node refuses unless the instance allows it. The copyLog to Sheets read the sheet<YOUR_COMPANY_NAME>, <YOUR_COMPANY_INFO> and YOUR_SHEET_ID. The support address in rule 3 is<YOUR_SUPPORT_EMAIL>.support-chatbot now.Lite Conversations. Its first row needs theseMessage ID, Session ID, Customer, Question, Answer, Confidence, Category, Received and Responded.workflow.json.Log to Sheets, replace YOUR_SHEET_ID with the ID from the sheet's address, the part between /d/ and /edit. Select aAI: Generate Response.<YOUR_COMPANY_NAME> with your name, <YOUR_COMPANY_INFO> with what the bot<YOUR_SUPPORT_EMAIL> with the address it hands over to. The brackets go.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"}'
/webhook/ in place of /webhook-test/.Receive Message takes a POST on the path support-chatbot. It answers later, through Respond to Customer.Validate Input reads message, or text, from the request body. It takes session_id, which it makes up if missing, andcustomer_name, which falls back to Customer. A message shorter than 2 characters stops the run with an error.AI: Generate Response sends the system message and Customer <name> asks: with the question to gpt-4o-mini. The systemanswer, confidence and category, one of faq, billing, technical, complaint or other.Merge Response joins that reply with the request's fields. If the reply cannot be read, it answers `Sorry, I had trouble and sets confidence` to 0.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.AI: Generate Response.Log to Sheets.Log to Sheets for Airtable, a database or another node.Receive Message. A page on another site also needs that node's allowed origins set.session_id is only written to the sheet, so the bot does not remember an earlier question.confidence is a number the model writes, not a measured value. Do not route on it without testing.gpt-4o-mini-2024-07-18 for shutdown on 14 January 2027, withgpt-6-luna as the replacement. Pick another model in AI: Generate Response before then.NOTICE.md 636 B README.md 6 KB workflow.json 7 KB
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…
Qwen · Kit
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…
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…
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…
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…
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…