This workflow follows the Datatable → Gmail 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 →
{
"name": "Activity 3a \u2014 Conditional Response (Data Table)",
"nodes": [
{
"parameters": {
"sendTo": "={{ $('On form submission').item.json.Email }}",
"subject": "New Enquiry",
"message": "=Hi <br> <br>\n\nThere is a new sign up. Below is the info: <br> <br>\n\nName:{{ $json.Name }} <br>\nEmail:{{ $json.Email }} <br>\nTel:{{ $json.Phone }} <br>\nMessage:{{ $json.Message }} <br>\n\n <br>\nAdmin <br>\nABC Pte Ltd",
"options": {}
},
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.2,
"position": [
0,
0
],
"id": "d1c6abec-a76a-4e88-8f0b-a9671b3cc614",
"name": "Send a message",
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 3
},
"conditions": [
{
"id": "96180c90-cf34-4201-a9ca-526042e2ce15",
"leftValue": "={{ $json.Attending[0] }}",
"rightValue": "Yes",
"operator": {
"type": "string",
"operation": "equals"
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.3,
"position": [
-400,
144
],
"id": "cca414d1-459c-43ae-96d4-d41b3f794d84",
"name": "If"
},
{
"parameters": {
"sendTo": "={{ $('On form submission').item.json.Email }}",
"subject": "New Enquiry",
"message": "=Hi <{{ $('On form submission').item.json.Name }}br> <br>\n\nThanks for letting us that you will not joining. Hope to see you in the next event.\n\n <br>\nAdmin <br>\nABC Pte Ltd",
"options": {}
},
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.2,
"position": [
-176,
304
],
"id": "af19b139-ec87-4cd0-8cfd-eca7abef4ce5",
"name": "Send a message1",
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"dataTableId": {
"__rl": true,
"value": "BqXUNSNcmtX3yf9o",
"mode": "list",
"cachedResultName": "Event",
"cachedResultUrl": "/projects/Rnys24pZ5SfBp9uW/datatables/BqXUNSNcmtX3yf9o"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"Name": "={{ $json.Name }}",
"Email": "={{ $json.Email }}",
"Phone": "={{ $json.Phone }}",
"Attending": "={{ $json.Attending[0] }}"
},
"matchingColumns": [],
"schema": [
{
"id": "Name",
"displayName": "Name",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Email",
"displayName": "Email",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Phone",
"displayName": "Phone",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
},
{
"id": "Attending",
"displayName": "Attending",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"readOnly": false,
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.dataTable",
"typeVersion": 1.1,
"position": [
-192,
112
],
"id": "72b52156-8aa4-4b7e-8837-4ebf3c55513d",
"name": "Insert row"
},
{
"parameters": {
"sendTo": "={{ $('On form submission').item.json.Email }}",
"subject": "Thank you for joning the event",
"message": "=Hi {{ $('On form submission').item.json.Name }}\n<br> <br>\n\nThank your for your interest in the event. We will send you a reminder nearer to the event date. <br>\n\n<br>\nAdmin <br>\nABC Pte Ltd",
"options": {}
},
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.2,
"position": [
0,
192
],
"id": "7b5787c7-2206-467c-b56c-8eb416066997",
"name": "Send a message2",
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"options": {}
},
"type": "n8n-nodes-base.formTrigger",
"typeVersion": 2.6,
"position": [
-656,
144
],
"id": "46f715ca-7a8d-4bf2-abda-e5b4dda24cf2",
"name": "On form submission"
}
],
"connections": {
"If": {
"main": [
[
{
"node": "Insert row",
"type": "main",
"index": 0
}
],
[
{
"node": "Send a message1",
"type": "main",
"index": 0
}
]
]
},
"Insert row": {
"main": [
[
{
"node": "Send a message",
"type": "main",
"index": 0
},
{
"node": "Send a message2",
"type": "main",
"index": 0
}
]
]
},
"On form submission": {
"main": [
[]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1",
"binaryMode": "separate",
"availableInMCP": false
},
"versionId": "be38fa5b-6435-4099-ba5d-10e7a0f301e0",
"meta": {
"templateCredsSetupCompleted": true
},
"nodeGroups": [],
"id": "S55hB8dLFPLoBGTO",
"tags": []
}
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.
gmailOAuth2
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Activity 3a — Conditional Response (Data Table). Uses gmail, dataTable, formTrigger. Event-driven trigger; 6 nodes.
Source: https://github.com/tertiarycourses/TGS-2026062147-No-Code-and-Low-Code-Agentic-AI-Applications/blob/main/labs/activity3-conditional/Activity3a-Conditional-Data-Table.json — 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.
Activity 2 — Capture Submissions in a Data Table. Uses formTrigger, gmail, dataTable. Event-driven trigger; 3 nodes.
This workflow automates end-to-end contract and invoice management using AI intelligence. It processes proposals through intelligent contract generation, approval workflows, and automated invoicing. O
Automates SaaS operations by consolidating user management, AI-driven support triage, analytics, and billing into one unified system. User signups flow through registration, support requests route via
This workflow automates business intelligence. Submit one URL, and it scrapes the website, uses AI to perform a comprehensive analysis, and generates a professional report in Google Doc and PDF format
Daily Viral Content Radar Pro (AnyAPI). Uses formTrigger, httpRequest, agent, lmChatOpenRouter. Event-driven trigger; 34 nodes.