This workflow corresponds to n8n.io template #15377 — we link there as the canonical source.
This workflow follows the Agent → Airtable 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 →
{
"nodes": [
{
"id": "62cbb602-3659-4736-a2b5-f3586a921e21",
"name": "Jotform Trigger",
"type": "n8n-nodes-base.jotFormTrigger",
"position": [
112,
144
],
"parameters": {
"form": "261150644563050",
"onlyAnswers": false
},
"typeVersion": 1
},
{
"id": "68dde4b2-80ca-40a7-b253-b4c843bf98d2",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
880,
-80
],
"parameters": {
"text": "=Issue Type: {{ $('Jotform Trigger').item.json.rawRequest['Issue Type'] }}\nIssue Description: {{ $('Jotform Trigger').item.json.rawRequest['Issue Description'] }}\n",
"options": {
"systemMessage": "You are an expert Support Operations Specialist. Your task is to analyze incoming support requests and assign a Severity Level based on the provided impact and urgency. And Sentiment.\n\nSeverity Definitions\nHigh: Core functionality is down for all users. Security breach or data loss in progress. No workaround exists.\n\nHigh: Major feature is broken or performance is severely degraded. Workaround is difficult or inefficient.\n\nMedium: Minor feature issue, or UI/UX bug. A viable workaround exists.\n\nLow: General inquiries, feature requests, or cosmetic \"nice-to-have\" fixes. No impact on current workflow.\n\nInstructions\nAnalyze the \"Issue Type\" and \"Description\" provided by the user.\n\nDetermine the Severity Level (high\u2013Medium-Low) and Sentiment (Frustrated-Normal).\n\n\nOutput Should be in JSON:\n{\n \"Severity\": \"\",\n \"Sentiment\": \"\",\n}"
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 3.1
},
{
"id": "c7aa0467-16cd-4fdb-a13e-954a4b9949cb",
"name": "Google Gemini Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
928,
128
],
"parameters": {
"options": {},
"modelName": "models/gemini-flash-latest"
},
"typeVersion": 1
},
{
"id": "2cf6dae8-3dab-4a22-b56c-b7f30462842a",
"name": "Structured Output Parser",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1088,
128
],
"parameters": {
"jsonSchemaExample": "{\n \"Severity\": \"High/Medium/Low\",\n \"Sentiment\": \"Frustrated/Normal\"\n}"
},
"typeVersion": 1.3
},
{
"id": "4d07b5b2-422b-42f6-ab1a-f6adcdb22073",
"name": "Search records",
"type": "n8n-nodes-base.airtable",
"position": [
336,
144
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "app5gdNa4CMviCW2u",
"cachedResultUrl": "https://airtable.com/app5gdNa4CMviCW2u",
"cachedResultName": "Support"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tbl8zRM7iRAquA1tW",
"cachedResultUrl": "https://airtable.com/app5gdNa4CMviCW2u/tbl8zRM7iRAquA1tW",
"cachedResultName": "Users"
},
"options": {},
"operation": "search",
"filterByFormula": "={Email} = \"{{ $json.rawRequest['Email Address'] }}\""
},
"typeVersion": 2.1,
"alwaysOutputData": true
},
{
"id": "85ca0366-0088-4d83-889b-5d4e1f0ec7f8",
"name": "Update record",
"type": "n8n-nodes-base.airtable",
"position": [
1312,
-16
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "app5gdNa4CMviCW2u",
"cachedResultUrl": "https://airtable.com/app5gdNa4CMviCW2u",
"cachedResultName": "Support"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblUDDQDOuzJtwlDq",
"cachedResultUrl": "https://airtable.com/app5gdNa4CMviCW2u/tblUDDQDOuzJtwlDq",
"cachedResultName": "Support Entries"
},
"columns": {
"value": {
"Severity": "={{ $json.output.Severity }}",
"Sentiment": "={{ $json.output.Sentiment }}",
"Submission ID": "={{ $('Jotform Trigger').item.json.submissionID }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "id",
"defaultMatch": true
},
{
"id": "Submission ID",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Submission ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "First Name",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "First Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Last Name",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Last Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Issue Type",
"type": "options",
"display": true,
"options": [
{
"name": "Bug",
"value": "Bug"
},
{
"name": "Feature Request",
"value": "Feature Request"
},
{
"name": "Complaint",
"value": "Complaint"
},
{
"name": "Other",
"value": "Other"
},
{
"name": "Technical Problem",
"value": "Technical Problem"
}
],
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Issue Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Issue Description",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Issue Description",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "File Attachment",
"type": "array",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "File Attachment",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Severity",
"type": "options",
"display": true,
"options": [
{
"name": "High",
"value": "High"
},
{
"name": "Medium",
"value": "Medium"
},
{
"name": "Low",
"value": "Low"
}
],
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Severity",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Sentiment",
"type": "options",
"display": true,
"options": [
{
"name": "Frustrated",
"value": "Frustrated"
},
{
"name": "Normal",
"value": "Normal"
}
],
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Sentiment",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "options",
"display": true,
"options": [
{
"name": "Pending",
"value": "Pending"
},
{
"name": "Responded",
"value": "Responded"
},
{
"name": "Require User Input",
"value": "Require User Input"
},
{
"name": "Resolved",
"value": "Resolved"
}
],
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Submission ID"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update"
},
"typeVersion": 2.1
},
{
"id": "5e70579b-8e2a-40b0-93ba-586dc31b17f1",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
544,
144
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d69bcb53-a348-47ed-8394-1837b0337c37",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.id }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.3
},
{
"id": "adcc9517-ca96-49de-a206-574d48fdbcbf",
"name": "Send a message",
"type": "n8n-nodes-base.gmail",
"position": [
880,
400
],
"parameters": {
"sendTo": "={{ $('Jotform Trigger').item.json.rawRequest['Email Address'] }}",
"message": "=Hi {{ $('Jotform Trigger').item.json.rawRequest['First Name'] }},\n\nWe have got your support request, but to properly identify the issue we need your acctual email which you are using in the app. Asap soon as we receive that from you we will start working on it.\n\nThanks\n",
"options": {
"appendAttribution": false
},
"subject": "=Need Correct Email to Resolve the Issue",
"emailType": "text"
},
"typeVersion": 2.2
},
{
"id": "a3513fda-b6d3-40aa-be39-4e4ae7f1806d",
"name": "Pinecone Vector Store",
"type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
"position": [
1952,
288
],
"parameters": {
"mode": "retrieve-as-tool",
"topK": 1,
"options": {},
"pineconeIndex": {
"__rl": true,
"mode": "list",
"value": "support-faqs",
"cachedResultName": "support-faqs"
},
"toolDescription": "Your job is to find the most relevant content of the issue mentioned below. If there's nothing simply don't provide anything, and also no issue to generate anything."
},
"typeVersion": 1.3
},
{
"id": "f83df14b-436e-4b3a-b2de-df9678524bc9",
"name": "Google Gemini Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
1824,
288
],
"parameters": {
"options": {},
"modelName": "models/gemini-2.5-flash-lite"
},
"typeVersion": 1
},
{
"id": "a54073b1-9e22-4458-936a-29ffec773655",
"name": "Send a message in Gmail",
"type": "n8n-nodes-base.gmailTool",
"position": [
2240,
288
],
"parameters": {
"sendTo": "={{ $node[\"Jotform Trigger\"].json.rawRequest[\"Email Address\"] }}",
"message": "={{ $fromAI('Message', ``, 'string') }}",
"options": {
"appendAttribution": false
},
"subject": "=Re: Your Support Ticket",
"emailType": "text"
},
"typeVersion": 2.2
},
{
"id": "3bc9d928-5557-4ae0-9a20-573faa76e432",
"name": "AI Agent - Respond",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1968,
64
],
"parameters": {
"text": "=INPUT DATA:\n- User Email: {{ $('Jotform Trigger').item.json.rawRequest['Email Address'] }}\n- Issue: {{ $('Jotform Trigger').item.json.rawRequest['Issue Description'] }}\n",
"options": {
"systemMessage": "=CRITICAL: You are an API-calling engine. You communicate ONLY through the \"Send a message in Gmail\" tool.\n\nDIRECTIONS:\n1. Search \"Pinecone Vector Store\" for a solution.\n2. If a solution is found:\n - You MUST call \"Send a message in Gmail\".\n - You MUST provide a \"Message\" argument containing the solution.\n - Do not leave the Message blank.\n - The tool will handle the recipient email automatically.\n - CALL \"Update record in Airtable\".\n - After the tool confirms success, output: SENT.\n3. If no solution is found:\n - Output: MANUAL_REVIEW_REQUIRED.\n\nIMPORTANT: If you call the Gmail tool without providing a draft in the 'Message' parameter, the system will crash. You MUST provide the text solution to the tool."
},
"promptType": "define"
},
"typeVersion": 3.1
},
{
"id": "faf9ca96-76a2-46b3-90e0-0711d0d2a20c",
"name": "Embeddings Google Gemini Plus",
"type": "n8n-nodes-gemini-embedding-plus.embeddingsGoogleGeminiPlus",
"position": [
2048,
464
],
"parameters": {
"options": {
"dimensions": 512
}
},
"typeVersion": 1
},
{
"id": "077b720d-d741-4161-aa49-3681d09879f8",
"name": "If High Severity",
"type": "n8n-nodes-base.if",
"position": [
1600,
-16
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f62a264b-8791-473a-becc-1c0c13cda6e5",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $('AI Agent').item.json.output.Severity }}",
"rightValue": "High"
}
]
}
},
"typeVersion": 2.3
},
{
"id": "a6f86c43-187f-4936-9d07-e95f05b4e3f1",
"name": "Send a message to team",
"type": "n8n-nodes-base.slack",
"position": [
2656,
-32
],
"parameters": {
"text": "=\ud83d\udea8 New Support Ticket: {{ $('AI Agent').item.json.output.Severity }} Severity from {{ $('Jotform Trigger').item.json.rawRequest['Email Address'] }}",
"user": {
"__rl": true,
"mode": "list",
"value": "U02CL8STLLB",
"cachedResultName": "rkhabeer84"
},
"select": "user",
"blocksUi": "={\n\t\"blocks\": [\n\t\t{\n\t\t\t\"type\": \"header\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"\ud83d\udea8 New Support Ticket: {{ $('AI Agent').item.json.output.Severity }} Severity\",\n\t\t\t\t\"emoji\": true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*From:* {{ $('Jotform Trigger').item.json.rawRequest['Email Address'] }}\\n*Submission ID:* `{{ $('Jotform Trigger').item.json.submissionID }}`\"\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"divider\"\n\t\t},\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"fields\": [\n\t\t\t\t{\n\t\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\t\"text\": \"*Issue Type:*\\n{{ $('Jotform Trigger').item.json.rawRequest['Issue Type'] }}\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\t\"text\": \"*Sentiment:*\\n{{ $('AI Agent').item.json.output.Sentiment }}\"\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*Description:*\\n{{ $('Jotform Trigger').item.json.rawRequest['Issue Description'] }}\"\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"divider\"\n\t\t},\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*User Details*\"\n\t\t\t},\n\t\t\t\"fields\": [\n\t\t\t\t{\n\t\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\t\"text\": \"*Name:*\\n{{ $('Search records').item.json['First Name'] }} {{ $('Search records').item.json['Last Name'] }}\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\t\"text\": \"*Current Plan:*\\n{{ $('Search records').item.json['Current Plan'] }}\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\t\"text\": \"*Start Date:*\\n{{ $('Search records').item.json['Start Date'] }}\"\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"type\": \"actions\",\n\t\t\t\"elements\": [\n\t\t\t\t{\n\t\t\t\t\t\"type\": \"button\",\n\t\t\t\t\t\"text\": {\n\t\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\t\"text\": \"Update in Airtable\",\n\t\t\t\t\t\t\"emoji\": true\n\t\t\t\t\t},\n\t\t\t\t\t\"url\": \"https://airtable.com/app5gdNa4CMviCW2u/tblUDDQDOuzJtwlDq/viwX5ntewfZHMKTFM/{{ $('Update record').item.json.id }}?blocks=hide\",\n\t\t\t\t\t\"action_id\": \"update_status\",\n\t\t\t\t\t\"style\": \"primary\"\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}",
"messageType": "block",
"otherOptions": {
"includeLinkToWorkflow": false
},
"authentication": "oAuth2"
},
"typeVersion": 2.4
},
{
"id": "a776424a-df4c-4a03-99e3-f93dc3e8d5bd",
"name": "If not replied",
"type": "n8n-nodes-base.if",
"position": [
2304,
64
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "3188ca47-9388-40e7-9916-e4aaa5409774",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.output }}",
"rightValue": "MANUAL_REVIEW_REQUIRED"
}
]
}
},
"typeVersion": 2.3
},
{
"id": "2fe6780c-bc04-427d-bd24-70aadb014823",
"name": "Gmail Trigger",
"type": "n8n-nodes-base.gmailTrigger",
"position": [
128,
848
],
"parameters": {
"simple": false,
"filters": {
"readStatus": "unread"
},
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
}
},
"typeVersion": 1.3
},
{
"id": "0707de8f-97e4-4c28-9fa4-2358a6c386aa",
"name": "Update Status to User Input Required",
"type": "n8n-nodes-base.airtable",
"position": [
1296,
400
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "app5gdNa4CMviCW2u",
"cachedResultUrl": "https://airtable.com/app5gdNa4CMviCW2u",
"cachedResultName": "Support"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblUDDQDOuzJtwlDq",
"cachedResultUrl": "https://airtable.com/app5gdNa4CMviCW2u/tblUDDQDOuzJtwlDq",
"cachedResultName": "Support Entries"
},
"columns": {
"value": {
"Status": "Require User Input",
"Message id": "={{ $json.messageId }}",
"Submission ID": "={{ $('Jotform Trigger').item.json.submissionID }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "id",
"defaultMatch": true
},
{
"id": "Submission ID",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Submission ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "First Name",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "First Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Last Name",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Last Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Issue Type",
"type": "options",
"display": true,
"options": [
{
"name": "Bug",
"value": "Bug"
},
{
"name": "Feature Request",
"value": "Feature Request"
},
{
"name": "Complaint",
"value": "Complaint"
},
{
"name": "Other",
"value": "Other"
},
{
"name": "Technical Problem",
"value": "Technical Problem"
}
],
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Issue Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Issue Description",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Issue Description",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "File Attachment",
"type": "array",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "File Attachment",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Severity",
"type": "options",
"display": true,
"options": [
{
"name": "High",
"value": "High"
},
{
"name": "Medium",
"value": "Medium"
},
{
"name": "Low",
"value": "Low"
}
],
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Severity",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Sentiment",
"type": "options",
"display": true,
"options": [
{
"name": "Frustrated",
"value": "Frustrated"
},
{
"name": "Normal",
"value": "Normal"
}
],
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Sentiment",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "options",
"display": true,
"options": [
{
"name": "Pending",
"value": "Pending"
},
{
"name": "Responded",
"value": "Responded"
},
{
"name": "Require User Input",
"value": "Require User Input"
},
{
"name": "Resolved",
"value": "Resolved"
},
{
"name": "Waiting for correct email",
"value": "Waiting for correct email"
}
],
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Note for the user",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Note for the user",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Message id",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Message id",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Submission ID"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update"
},
"typeVersion": 2.1
},
{
"id": "2879f0d5-02c8-4783-a592-7c62a79e331c",
"name": "Filter",
"type": "n8n-nodes-base.filter",
"position": [
320,
848
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 3,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "3e4f6d09-76a5-41fa-914f-bcfd8059ae55",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.inReplyTo }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.3
},
{
"id": "3e8ef3e1-6c93-4f6c-8e9c-0b922b8c8258",
"name": "Get a message",
"type": "n8n-nodes-base.gmail",
"position": [
1088,
400
],
"parameters": {
"simple": false,
"options": {},
"messageId": "={{ $json.id }}",
"operation": "get"
},
"typeVersion": 2.2
},
{
"id": "be291515-751a-4fa1-980e-9ec9b647991f",
"name": "Search record waiting for response",
"type": "n8n-nodes-base.airtable",
"position": [
576,
848
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "app5gdNa4CMviCW2u",
"cachedResultUrl": "https://airtable.com/app5gdNa4CMviCW2u",
"cachedResultName": "Support"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblUDDQDOuzJtwlDq",
"cachedResultUrl": "https://airtable.com/app5gdNa4CMviCW2u/tblUDDQDOuzJtwlDq",
"cachedResultName": "Support Entries"
},
"options": {},
"operation": "search",
"filterByFormula": "=AND(Status = \"Require User Input\", {Message id} = \"<CAK7iZF8qOzkiiisTV=wQPiMOo-sWB_T5aj7W2u3k_=yHL=qtKw@mail.gmail.com>\")"
},
"typeVersion": 2.1
},
{
"id": "5136c448-ba20-4a89-8384-96076d0d0745",
"name": "Send a message to team to check",
"type": "n8n-nodes-base.slack",
"position": [
800,
848
],
"parameters": {
"text": "=\ud83d\udea8 New Support Ticket Email Verified:",
"user": {
"__rl": true,
"mode": "list",
"value": "U02CL8STLLB",
"cachedResultName": "rkhabeer84"
},
"select": "user",
"blocksUi": "={\n\t\"blocks\": [\n\t\t{\n\t\t\t\"type\": \"header\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"\ud83d\udea8 New Support Ticket Email Verified: \",\n\t\t\t\t\"emoji\": true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*From Client:* {{ $('Gmail Trigger').item.json.text }}\\n*Submission ID:* `{{ $json['Submission ID'] }}`\"\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"divider\"\n\t\t},\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"fields\": [\n\t\t\t\t{\n\t\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\t\"text\": \"*Issue Type:*\\n{{ $json['Issue Type'] }}\"\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*Description:*\\n{{ $json['Issue Description'] }}\"\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"divider\"\n\t\t},\n\t\t{\n\t\t\t\"type\": \"actions\",\n\t\t\t\"elements\": [\n\t\t\t\t{\n\t\t\t\t\t\"type\": \"button\",\n\t\t\t\t\t\"text\": {\n\t\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\t\"text\": \"Update in Airtable\",\n\t\t\t\t\t\t\"emoji\": true\n\t\t\t\t\t},\n\t\t\t\t\t\"url\": \"https://airtable.com/app5gdNa4CMviCW2u/tblUDDQDOuzJtwlDq/viwX5ntewfZHMKTFM/{{ $json.id }}?blocks=hide\",\n\t\t\t\t\t\"action_id\": \"update_status\",\n\t\t\t\t\t\"style\": \"primary\"\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}",
"messageType": "block",
"otherOptions": {
"includeLinkToWorkflow": false
},
"authentication": "oAuth2"
},
"typeVersion": 2.4
},
{
"id": "f32d416c-9b2a-4392-b5d6-9694e07d7a09",
"name": "Update Status back to pending",
"type": "n8n-nodes-base.airtable",
"position": [
1008,
848
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "app5gdNa4CMviCW2u",
"cachedResultUrl": "https://airtable.com/app5gdNa4CMviCW2u",
"cachedResultName": "Support"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblUDDQDOuzJtwlDq",
"cachedResultUrl": "https://airtable.com/app5gdNa4CMviCW2u/tblUDDQDOuzJtwlDq",
"cachedResultName": "Support Entries"
},
"columns": {
"value": {
"Status": "Pending",
"Submission ID": "={{ $('Search record waiting for response').item.json['Submission ID'] }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": false,
"readOnly": true,
"required": false,
"displayName": "id",
"defaultMatch": true
},
{
"id": "Submission ID",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Submission ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "First Name",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "First Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Last Name",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Last Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Issue Type",
"type": "options",
"display": true,
"options": [
{
"name": "Bug",
"value": "Bug"
},
{
"name": "Feature Request",
"value": "Feature Request"
},
{
"name": "Complaint",
"value": "Complaint"
},
{
"name": "Other",
"value": "Other"
},
{
"name": "Technical Problem",
"value": "Technical Problem"
}
],
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Issue Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Issue Description",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Issue Description",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "File Attachment",
"type": "array",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "File Attachment",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Severity",
"type": "options",
"display": true,
"options": [
{
"name": "High",
"value": "High"
},
{
"name": "Medium",
"value": "Medium"
},
{
"name": "Low",
"value": "Low"
}
],
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Severity",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Sentiment",
"type": "options",
"display": true,
"options": [
{
"name": "Frustrated",
"value": "Frustrated"
},
{
"name": "Normal",
"value": "Normal"
}
],
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Sentiment",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "options",
"display": true,
"options": [
{
"name": "Pending",
"value": "Pending"
},
{
"name": "Responded",
"value": "Responded"
},
{
"name": "Require User Input",
"value": "Require User Input"
},
{
"name": "Resolved",
"value": "Resolved"
},
{
"name": "Waiting for correct email",
"value": "Waiting for correct email"
}
],
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Note for the user",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Note for the user",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Message id",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Message id",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Submission ID"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update"
},
"typeVersion": 2.1
},
{
"id": "e951217c-32b0-4970-9d44-7871f0662006",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
48,
-160
],
"parameters": {
"color": 7,
"width": 656,
"height": 768,
"content": "## Phase 1: Intake and User Validation"
},
"typeVersion": 1
},
{
"id": "89df09db-e1a0-4e36-93c9-e96f7b6697b4",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
720,
288
],
"parameters": {
"color": 7,
"width": 800,
"height": 320,
"content": "## Send an email to the user asking for the correct email"
},
"typeVersion": 1
},
{
"id": "18681d88-fc96-456e-98b0-23a08a1d6cd7",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
720,
-160
],
"parameters": {
"color": 7,
"width": 800,
"height": 432,
"content": "## Phase 2: AI Triage and Severity Analysis"
},
"typeVersion": 1
},
{
"id": "069d5c50-e20d-4acf-a420-36db7698ef5b",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1536,
-160
],
"parameters": {
"color": 7,
"width": 992,
"height": 768,
"content": "## Phase 3: Automated Resolution and Escalation"
},
"typeVersion": 1
},
{
"id": "19071e02-abe7-43c7-b860-69788c1b5f30",
"name": "Update record in Airtable",
"type": "n8n-nodes-base.airtableTool",
"position": [
2384,
288
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "app5gdNa4CMviCW2u",
"cachedResultUrl": "https://airtable.com/app5gdNa4CMviCW2u",
"cachedResultName": "Support"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblUDDQDOuzJtwlDq",
"cachedResultUrl": "https://airtable.com/app5gdNa4CMviCW2u/tblUDDQDOuzJtwlDq",
"cachedResultName": "Support Entries"
},
"columns": {
"value": {
"Status": "Responded",
"Submission ID": "={{ $node[\"Update Record\"].json.fields[\"Submission ID\"] }}"
},
"schema": [
{
"id": "id",
"type": "string",
"display": true,
"removed": true,
"readOnly": true,
"required": false,
"displayName": "id",
"defaultMatch": true
},
{
"id": "Submission ID",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Submission ID",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "First Name",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "First Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Last Name",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Last Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Email",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Issue Type",
"type": "options",
"display": true,
"options": [
{
"name": "Bug",
"value": "Bug"
},
{
"name": "Feature Request",
"value": "Feature Request"
},
{
"name": "Complaint",
"value": "Complaint"
},
{
"name": "Other",
"value": "Other"
},
{
"name": "Technical Problem",
"value": "Technical Problem"
},
{
"name": "Billing Issue",
"value": "Billing Issue"
}
],
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Issue Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Issue Description",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Issue Description",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "File Attachment",
"type": "array",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "File Attachment",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Severity",
"type": "options",
"display": true,
"options": [
{
"name": "High",
"value": "High"
},
{
"name": "Medium",
"value": "Medium"
},
{
"name": "Low",
"value": "Low"
}
],
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Severity",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Sentiment",
"type": "options",
"display": true,
"options": [
{
"name": "Frustrated",
"value": "Frustrated"
},
{
"name": "Normal",
"value": "Normal"
}
],
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Sentiment",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "options",
"display": true,
"options": [
{
"name": "Pending",
"value": "Pending"
},
{
"name": "Responded",
"value": "Responded"
},
{
"name": "Require User Input",
"value": "Require User Input"
},
{
"name": "Resolved",
"value": "Resolved"
},
{
"name": "Waiting for correct email",
"value": "Waiting for correct email"
}
],
"removed": false,
"readOnly": false,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Note for the user",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Note for the user",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Message id",
"type": "string",
"display": true,
"removed": true,
"readOnly": false,
"required": false,
"displayName": "Message id",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"Submission ID"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "update"
},
"typeVersion": 2.1
},
{
"id": "eac266da-d92f-4564-a4d0-08c758b2ddc4",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
2544,
-160
],
"parameters": {
"color": 7,
"width": 320,
"height": 768,
"content": "## Send to team"
},
"typeVersion": 1
},
{
"id": "ebfd0220-a37c-4007-9db4-5c9ad446600b",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
48,
688
],
"parameters": {
"color": 7,
"width": 416,
"height": 368,
"content": "## Check for email replies"
},
"typeVersion": 1
},
{
"id": "76683e29-59e5-4bc6-a516-8abc3d8e5e43",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
480,
688
],
"parameters": {
"color": 7,
"width": 704,
"height": 368,
"content": "## Sent to the team and updated in the airtable"
},
"typeVersion": 1
},
{
"id": "e68ca7ae-5a2d-4536-8882-d4c719223cd9",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-752,
-160
],
"parameters": {
"width": 768,
"height": 1216,
"content": "## AI Support Triage & Auto-Response Engine\n\nThis n8n workflow automates support by validating users, analyzing ticket urgency, and resolving queries via an AI-powered knowledge base. High-priority issues are immediately escalated to Slack.\n\n---\n\n### Phase 1: Intake & Validation\n* **Jotform Trigger:** Captures new support submissions.\n* **User Verification:** Checks **Airtable** for a matching email.\n\n### Phase 2: AI Triage\n* **Sentiment Analysis:** **Google Gemini** categorizes tickets by severity (High/Med/Low) and sentiment (Frustrated/Normal).\n* **Data Logging:** Analysis results are synced to the **Airtable** record.\n* **High-Priority Bypass:** \"High\" severity tickets trigger an immediate **Slack** alert for manual intervention.\n\n### Phase 3: Automated Resolution\n* **Knowledge Retrieval:** AI Agent queries **Pinecone** vector store for relevant FAQs.\n* **Resolution:** If confidence is high, sends a solution via **Gmail** and marks Airtable as \"Responded.\"\n* **Escalation:** If no solution is found, notifies **Slack** with deep links for team review.\n\n### Phase 4: Verification Loop\n* **Reply Detection:** Monitors **Gmail** for responses to \"Need User Input\" requests.\n* **Status Update:** Matches replies to Airtable, notifies the team via **Slack**, and moves the ticket back to \"Pending.\"\n\n---\n\n## Requirements\n\n### Tools & APIs\n* **n8n:** Workflow orchestration.\n* **Google Gemini:** Triage and response generation.\n* **Pinecone:** Vector database for FAQ embeddings.\n\n### Credentials\n* **Airtable:** Personal Access Token for database management.\n* **Gmail & Slack:** OAuth2 for communication and alerts.\n* **Jotform:** API Key for submission triggers.\n\n### Data Schema\n* **Airtable:** `Users` table (profiles) and `Support Entries` table (ticket tracking).\n* **Pinecone:** Index named `support-faqs` populated with documentation."
},
"typeVersion": 1
}
],
"connections": {
"If": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
],
[
{
"node": "Send a message",
"type": "main",
"index": 0
}
]
]
},
"Filter": {
"main": [
[
{
"node": "Search record waiting for response",
"type": "main",
"index": 0
}
]
]
},
"AI Agent": {
"main": [
[
{
"node": "Update record",
"type": "main",
"index": 0
}
]
]
},
"Get a message": {
"main": [
[
{
"node": "Update Status to User Input Required",
"type": "main",
"index": 0
}
]
]
},
"Gmail Trigger": {
"main": [
[
{
"node": "Filter",
"type": "main",
"index": 0
}
]
]
},
"Update record": {
"main": [
[
{
"node": "If High Severity",
"type": "main",
"index": 0
}
]
]
},
"If not replied": {
"main": [
[
{
"node": "Send a message to team",
"type": "main",
"index": 0
}
],
[]
]
},
"Search records": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Send a message": {
"main": [
[
{
"node": "Get a message",
"type": "main",
"index": 0
}
]
]
},
"Jotform Trigger": {
"main": [
[
{
"node": "Search records",
"type": "main",
"index": 0
}
]
]
},
"If High Severity": {
"main": [
[
{
"node": "Send a message to team",
"type": "main",
"index": 0
}
],
[
{
"node": "AI Agent - Respond",
"type": "main",
"index": 0
}
]
]
},
"AI Agent - Respond": {
"main": [
[
{
"node": "If not replied",
"type": "main",
"index": 0
}
]
]
},
"Pinecone Vector Store": {
"ai_tool": [
[
{
"node": "AI Agent - Respond",
"type": "ai_tool",
"index": 0
}
]
]
},
"Send a message in Gmail": {
"ai_tool": [
[
{
"node": "AI Agent - Respond",
"type": "ai_tool",
"index": 0
}
]
]
},
"Google Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser": {
"ai_outputParser": [
[
{
"node": "AI Agent",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"Google Gemini Chat Model1": {
"ai_languageModel": [
[
{
"node": "AI Agent - Respond",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Update record in Airtable": {
"ai_tool": [
[
{
"node": "AI Agent - Respond",
"type": "ai_tool",
"index": 0
}
]
]
},
"Embeddings Google Gemini Plus": {
"ai_embedding": [
[
{
"node": "Pinecone Vector Store",
"type": "ai_embedding",
"index": 0
}
]
]
},
"Send a message to team to check": {
"main": [
[
{
"node": "Update Status back to pending",
"type": "main",
"index": 0
}
]
]
},
"Search record waiting for response": {
"main": [
[
{
"node": "Send a message to team to check",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This n8n workflow establishes a sophisticated, multi-stage support system. It automatically validates user identity, analyzes ticket severity and sentiment, and attempts to resolve lower-priority issues using an AI agent connected to a knowledge base (Pinecone). It ensures…
Source: https://n8n.io/workflows/15377/ — 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 n8n template automatically classifies incoming emails (Sales, Support, Internal, Finance, Promotions) and routes them to a dedicated OpenAI LLM Agent for processing. Depending on the category, th
This workflow demonstrates how to use AI text classifier to classify incoming emails, and uses a multi-agent architecture to respond for each email category respectively.
Unlock unparalleled efficiency and elevate customer satisfaction with our AI-Powered Customer Support: Email, Knowledge Base & Human Escalation Automation template. This sophisticated n8n workflow is
This workflow turns your Gmail inbox into an AI-powered customer support assistant using Google Gemini, OpenAI embeddings, and Pinecone vector search. It automatically classifies incoming emails, retr
This advanced n8n workflow automates the full lead enrichment, qualification, and personalized outreach process tailored specifically for the B2B real estate sector. Integrating top platforms like Api