This workflow follows the Emailsend → Form Trigger recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "LGpVLWPpNZSt9ISM",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Contact Form Text Classifier for eCommerce",
"tags": [],
"nodes": [
{
"id": "13175d48-c3a6-4ca6-afed-b70f40289f38",
"name": "On form submission",
"type": "n8n-nodes-base.formTrigger",
"position": [
-480,
-320
],
"parameters": {
"options": {},
"formTitle": "Contacts",
"formFields": {
"values": [
{
"fieldLabel": "Name",
"placeholder": "Name",
"requiredField": true
},
{
"fieldLabel": "Email",
"placeholder": "Email",
"requiredField": true
},
{
"fieldType": "textarea",
"fieldLabel": "Message",
"placeholder": "Message",
"requiredField": true
}
]
},
"responseMode": "lastNode",
"formDescription": "Basic Contact Form"
},
"typeVersion": 2.2
},
{
"id": "7b352c9f-5d2e-46ca-9499-594063167e9a",
"name": "Text Classifier",
"type": "@n8n/n8n-nodes-langchain.textClassifier",
"position": [
-160,
-320
],
"parameters": {
"options": {
"fallback": "other",
"systemPromptTemplate": "=Please classify the text provided by the user into one of the following categories: {categories}, and use the provided formatting instructions below. Don't explain, and only output the json with the selected {categories}."
},
"inputText": "={{ $json.Message }}",
"categories": {
"categories": [
{
"category": "Request Quote",
"description": "Request for quote"
},
{
"category": "Product info",
"description": "General information about a product"
},
{
"category": "General problem",
"description": "General problems about a product"
},
{
"category": "Order",
"description": "Information about an order placed"
}
]
}
},
"typeVersion": 1
},
{
"id": "efef4c71-5f56-44b0-a613-9fa888e495b8",
"name": "OpenAI",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-220,
-100
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "83f0d528-884c-4701-8fdd-dc07c05fafb5",
"name": "Prod. Dep.",
"type": "n8n-nodes-base.emailSend",
"position": [
320,
-540
],
"parameters": {
"html": "=Name: {{ $json.Name }}\nEmail: {{ $json.Email }}\n\nMessage:\n{{ $json.Message }}\n\nTipo prodotto: {{ $json[\"tipo prodotto\"] }}",
"options": {
"replyTo": "={{ $json.Email }}"
},
"subject": "=[n8n Contacts] Product info",
"toEmail": "to@domain.com",
"fromEmail": "from@domain.com"
},
"credentials": {
"smtp": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "88486500-dcea-4db9-9ffd-f55193eaa83d",
"name": "Quote Dep.",
"type": "n8n-nodes-base.emailSend",
"position": [
320,
-780
],
"parameters": {
"html": "=Name: {{ $json.Name }}\nEmail: {{ $json.Email }}\n\nMessage:\n{{ $json.Message }}\n\nTipo prodotto: {{ $json[\"tipo prodotto\"] }}",
"options": {
"replyTo": "={{ $json.Email }}"
},
"subject": "=[n8n Contacts] Quote",
"toEmail": "to@domain.com",
"fromEmail": "from@domain.com"
},
"credentials": {
"smtp": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "f6a63c4f-ee2e-42f1-a12c-b1fc6cf48f94",
"name": "Gen. Dep.",
"type": "n8n-nodes-base.emailSend",
"position": [
320,
-320
],
"parameters": {
"html": "=Name: {{ $json.Name }}\nEmail: {{ $json.Email }}\n\nMessage:\n{{ $json.Message }}\n\nTipo prodotto: {{ $json[\"tipo prodotto\"] }}",
"options": {
"replyTo": "={{ $json.Email }}"
},
"subject": "=[n8n Contacts] General",
"toEmail": "to@domain.com",
"fromEmail": "from@domain.com"
},
"credentials": {
"smtp": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "04a3e144-af75-4a95-819f-d5f1d4591b67",
"name": "Order Dep.",
"type": "n8n-nodes-base.emailSend",
"position": [
320,
-80
],
"parameters": {
"html": "=Name: {{ $json.Name }}\nEmail: {{ $json.Email }}\n\nMessage:\n{{ $json.Message }}\n\nTipo prodotto: {{ $json[\"tipo prodotto\"] }}",
"options": {
"replyTo": "={{ $json.Email }}"
},
"subject": "=[n8n Contacts] Order info",
"toEmail": "to@domain.com",
"fromEmail": "from@domain.com"
},
"credentials": {
"smtp": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "3767e3c7-b792-4b0d-a1f2-fc068310cb11",
"name": "Other Dep.",
"type": "n8n-nodes-base.emailSend",
"position": [
320,
140
],
"parameters": {
"html": "=Name: {{ $json.Name }}\nEmail: {{ $json.Email }}\n\nMessage:\n{{ $json.Message }}\n\nTipo prodotto: {{ $json[\"tipo prodotto\"] }}",
"options": {
"replyTo": "={{ $json.Email }}"
},
"subject": "=[n8n Contacts] Other",
"toEmail": "to@domain.com",
"fromEmail": "from@domain.com"
},
"credentials": {
"smtp": {
"name": "<your credential>"
}
},
"typeVersion": 2.1
},
{
"id": "c411a82d-0b86-49da-a11f-47ec79f9f7ff",
"name": "Quote DB",
"type": "n8n-nodes-base.googleSheets",
"position": [
520,
-780
],
"parameters": {
"columns": {
"value": {
"TO": "={{ (JSON.stringify($json.envelope.to)) }}",
"DATA": "={{ $('Text Classifier').item.json.submittedAt }}",
"NOME": "={{ $('Text Classifier').item.json.Name }}",
"EMAIL": "={{ $('Text Classifier').item.json.Email }}",
"CATEGORIA": "info prodotti",
"RICHIESTA": "={{ $('Text Classifier').item.json.Message }}"
},
"schema": [
{
"id": "DATA",
"type": "string",
"display": true,
"required": false,
"displayName": "DATA",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "NOME",
"type": "string",
"display": true,
"required": false,
"displayName": "NOME",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "EMAIL",
"type": "string",
"display": true,
"required": false,
"displayName": "EMAIL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "RICHIESTA",
"type": "string",
"display": true,
"required": false,
"displayName": "RICHIESTA",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CATEGORIA",
"type": "string",
"display": true,
"required": false,
"displayName": "CATEGORIA",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "TO",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "TO",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1D6tfsAK81ZE6VA0-sd_syuyI_rloNYjgWOhwgszPIZw/edit#gid=0",
"cachedResultName": "Foglio1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1D6tfsAK81ZE6VA0-sd_syuyI_rloNYjgWOhwgszPIZw",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1D6tfsAK81ZE6VA0-sd_syuyI_rloNYjgWOhwgszPIZw/edit?usp=drivesdk",
"cachedResultName": "Classified Contact Form"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "c14008fb-8932-44ad-88ef-42f6d4029fb1",
"name": "Prod DB",
"type": "n8n-nodes-base.googleSheets",
"position": [
520,
-540
],
"parameters": {
"columns": {
"value": {
"TO": "={{ (JSON.stringify($json.envelope.to)) }}",
"DATA": "={{ $('Text Classifier').item.json.submittedAt }}",
"NOME": "={{ $('Text Classifier').item.json.Name }}",
"EMAIL": "={{ $('Text Classifier').item.json.Email }}",
"CATEGORIA": "info prodotti",
"RICHIESTA": "={{ $('Text Classifier').item.json.Message }}"
},
"schema": [
{
"id": "DATA",
"type": "string",
"display": true,
"required": false,
"displayName": "DATA",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "NOME",
"type": "string",
"display": true,
"required": false,
"displayName": "NOME",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "EMAIL",
"type": "string",
"display": true,
"required": false,
"displayName": "EMAIL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "RICHIESTA",
"type": "string",
"display": true,
"required": false,
"displayName": "RICHIESTA",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CATEGORIA",
"type": "string",
"display": true,
"required": false,
"displayName": "CATEGORIA",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "TO",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "TO",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1D6tfsAK81ZE6VA0-sd_syuyI_rloNYjgWOhwgszPIZw/edit#gid=0",
"cachedResultName": "Foglio1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1D6tfsAK81ZE6VA0-sd_syuyI_rloNYjgWOhwgszPIZw",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1D6tfsAK81ZE6VA0-sd_syuyI_rloNYjgWOhwgszPIZw/edit?usp=drivesdk",
"cachedResultName": "Classified Contact Form"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "f2e02c07-7218-4d08-a816-1ce2de289312",
"name": "General DB",
"type": "n8n-nodes-base.googleSheets",
"position": [
520,
-320
],
"parameters": {
"columns": {
"value": {
"TO": "={{ (JSON.stringify($json.envelope.to)) }}",
"DATA": "={{ $('Text Classifier').item.json.submittedAt }}",
"NOME": "={{ $('Text Classifier').item.json.Name }}",
"EMAIL": "={{ $('Text Classifier').item.json.Email }}",
"CATEGORIA": "info prodotti",
"RICHIESTA": "={{ $('Text Classifier').item.json.Message }}"
},
"schema": [
{
"id": "DATA",
"type": "string",
"display": true,
"required": false,
"displayName": "DATA",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "NOME",
"type": "string",
"display": true,
"required": false,
"displayName": "NOME",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "EMAIL",
"type": "string",
"display": true,
"required": false,
"displayName": "EMAIL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "RICHIESTA",
"type": "string",
"display": true,
"required": false,
"displayName": "RICHIESTA",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CATEGORIA",
"type": "string",
"display": true,
"required": false,
"displayName": "CATEGORIA",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "TO",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "TO",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1D6tfsAK81ZE6VA0-sd_syuyI_rloNYjgWOhwgszPIZw/edit#gid=0",
"cachedResultName": "Foglio1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1D6tfsAK81ZE6VA0-sd_syuyI_rloNYjgWOhwgszPIZw",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1D6tfsAK81ZE6VA0-sd_syuyI_rloNYjgWOhwgszPIZw/edit?usp=drivesdk",
"cachedResultName": "Classified Contact Form"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "d6ee5c05-d966-47c1-a7ec-df721f77c5d0",
"name": "Order DB",
"type": "n8n-nodes-base.googleSheets",
"position": [
520,
-80
],
"parameters": {
"columns": {
"value": {
"TO": "={{ (JSON.stringify($json.envelope.to)) }}",
"DATA": "={{ $('Text Classifier').item.json.submittedAt }}",
"NOME": "={{ $('Text Classifier').item.json.Name }}",
"EMAIL": "={{ $('Text Classifier').item.json.Email }}",
"CATEGORIA": "info prodotti",
"RICHIESTA": "={{ $('Text Classifier').item.json.Message }}"
},
"schema": [
{
"id": "DATA",
"type": "string",
"display": true,
"required": false,
"displayName": "DATA",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "NOME",
"type": "string",
"display": true,
"required": false,
"displayName": "NOME",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "EMAIL",
"type": "string",
"display": true,
"required": false,
"displayName": "EMAIL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "RICHIESTA",
"type": "string",
"display": true,
"required": false,
"displayName": "RICHIESTA",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CATEGORIA",
"type": "string",
"display": true,
"required": false,
"displayName": "CATEGORIA",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "TO",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "TO",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1D6tfsAK81ZE6VA0-sd_syuyI_rloNYjgWOhwgszPIZw/edit#gid=0",
"cachedResultName": "Foglio1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1D6tfsAK81ZE6VA0-sd_syuyI_rloNYjgWOhwgszPIZw",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1D6tfsAK81ZE6VA0-sd_syuyI_rloNYjgWOhwgszPIZw/edit?usp=drivesdk",
"cachedResultName": "Classified Contact Form"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "b4f344bd-a5c4-4977-af96-edbab85b49d0",
"name": "Other DB",
"type": "n8n-nodes-base.googleSheets",
"position": [
520,
140
],
"parameters": {
"columns": {
"value": {
"TO": "={{ (JSON.stringify($json.envelope.to)) }}",
"DATA": "={{ $('Text Classifier').item.json.submittedAt }}",
"NOME": "={{ $('Text Classifier').item.json.Name }}",
"EMAIL": "={{ $('Text Classifier').item.json.Email }}",
"CATEGORIA": "info prodotti",
"RICHIESTA": "={{ $('Text Classifier').item.json.Message }}"
},
"schema": [
{
"id": "DATA",
"type": "string",
"display": true,
"required": false,
"displayName": "DATA",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "NOME",
"type": "string",
"display": true,
"required": false,
"displayName": "NOME",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "EMAIL",
"type": "string",
"display": true,
"required": false,
"displayName": "EMAIL",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "RICHIESTA",
"type": "string",
"display": true,
"required": false,
"displayName": "RICHIESTA",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "CATEGORIA",
"type": "string",
"display": true,
"required": false,
"displayName": "CATEGORIA",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "TO",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "TO",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1D6tfsAK81ZE6VA0-sd_syuyI_rloNYjgWOhwgszPIZw/edit#gid=0",
"cachedResultName": "Foglio1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1D6tfsAK81ZE6VA0-sd_syuyI_rloNYjgWOhwgszPIZw",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1D6tfsAK81ZE6VA0-sd_syuyI_rloNYjgWOhwgszPIZw/edit?usp=drivesdk",
"cachedResultName": "Classified Contact Form"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.5
},
{
"id": "99872f49-85c3-47a0-b0ea-10ebbdbb67f5",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-480,
-680
],
"parameters": {
"width": 580,
"height": 280,
"content": "## Important notes\n\nThis very simple workflow is ideal for eCommerce businesses or customer support teams looking to automate and streamline the handling of contact form submissions.\n\n- It is possible to hook any external form such as CF7 for Wordpress through a webhook\n- It is possible to send the email through other providers by replacing them with the relative nodes (Gmail, Outlook....)\n- It is possible to change the collection database with other tools"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "649d6a6a-a2a1-49f6-b63a-6def1a8831f1",
"connections": {
"OpenAI": {
"ai_languageModel": [
[
{
"node": "Text Classifier",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Gen. Dep.": {
"main": [
[
{
"node": "General DB",
"type": "main",
"index": 0
}
]
]
},
"Order Dep.": {
"main": [
[
{
"node": "Order DB",
"type": "main",
"index": 0
}
]
]
},
"Other Dep.": {
"main": [
[
{
"node": "Other DB",
"type": "main",
"index": 0
}
]
]
},
"Prod. Dep.": {
"main": [
[
{
"node": "Prod DB",
"type": "main",
"index": 0
}
]
]
},
"Quote Dep.": {
"main": [
[
{
"node": "Quote DB",
"type": "main",
"index": 0
}
]
]
},
"Text Classifier": {
"main": [
[
{
"node": "Quote Dep.",
"type": "main",
"index": 0
},
{
"node": "Prod. Dep.",
"type": "main",
"index": 0
}
],
[],
[
{
"node": "Gen. Dep.",
"type": "main",
"index": 0
}
],
[
{
"node": "Order Dep.",
"type": "main",
"index": 0
}
],
[
{
"node": "Other Dep.",
"type": "main",
"index": 0
}
]
]
},
"On form submission": {
"main": [
[
{
"node": "Text Classifier",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googleSheetsOAuth2ApiopenAiApismtp
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
How this works
This workflow classifies incoming contact form messages for your ecommerce store, automatically sorting them into categories like product enquiries, quotes, general support, orders, or other issues to ensure prompt and targeted responses. It saves time for busy store owners by routing messages to the right team members without manual review, reducing response delays and improving customer satisfaction. The key step involves the text classifier analysing the form text, followed by an OpenAI-powered chat model to refine the category, before sending tailored emails via integrated services like Google Sheets for logging.
Use this workflow when handling high volumes of customer enquiries through web forms on platforms like Shopify, where quick classification prevents bottlenecks in support. Avoid it for very low-traffic sites or non-text-based interactions, as the AI processing adds unnecessary overhead. Common variations include adding Slack notifications for urgent categories or integrating with Zendesk for ticket creation instead of emails.
About this workflow
Contact Form Text Classifier for eCommerce. Uses formTrigger, textClassifier, lmChatOpenAi, emailSend. Event-driven trigger; 14 nodes.
Source: https://github.com/Zie619/n8n-workflows — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This template is perfect for content creators, marketers, and researchers managing WeChat public account articles! 🚀 It’s ideal for n8n newcomers or anyone wanting to save time on manual content analy
Wait Splitout. Uses stickyNote, httpRequest, formTrigger, googleSheets. Event-driven trigger; 17 nodes.
Wait Splitout. Uses stickyNote, httpRequest, formTrigger, googleSheets. Event-driven trigger; 16 nodes.
This template implements a professional Double Opt-In email verification system using Google Sheets as a database. The workflow collects user emails, generates unique verification codes, stores them s
This automation streamlines the process of collecting user information using a Form Node, enabling individuals to join a waitlist managed via Google Sheets.