This workflow follows the Execute Workflow Trigger → 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": "hitl_email_approval",
"nodes": [
{
"id": "Start",
"name": "Start",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"typeVersion": 1,
"position": [
-640,
160
],
"parameters": {}
},
{
"id": "Create Draft",
"name": "Create Draft",
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
-420,
160
],
"parameters": {
"resource": "draft",
"operation": "create",
"toList": "={{ $json.to }}",
"subject": "={{ $json.subject }}",
"message": "={{ $json.body }}"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
}
},
{
"id": "Notify Approvals Channel",
"name": "Notify Approvals Channel",
"type": "n8n-nodes-base.slack",
"typeVersion": 2,
"position": [
-200,
160
],
"parameters": {
"resource": "message",
"operation": "post",
"channel": "={{ $env.SLACK_APPROVAL_CHANNEL }}",
"text": "Email draft created. Approve via wait-resume webhook."
},
"credentials": {
"slackApi": {
"name": "<your credential>"
}
}
},
{
"id": "Wait For Decision",
"name": "Wait For Decision",
"type": "n8n-nodes-base.wait",
"typeVersion": 1.1,
"position": [
20,
160
],
"parameters": {
"resume": "webhook"
}
},
{
"id": "Approved?",
"name": "Approved?",
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
240,
160
],
"parameters": {
"conditions": {
"boolean": [
{
"value1": "={{ $json.approved }}",
"operation": "isTrue"
}
]
}
}
},
{
"id": "Send",
"name": "Send",
"type": "n8n-nodes-base.gmail",
"typeVersion": 2.1,
"position": [
460,
100
],
"parameters": {
"resource": "message",
"operation": "send",
"toList": "={{ $('Start').item.json.to }}",
"subject": "={{ $('Start').item.json.subject }}",
"message": "={{ $('Start').item.json.body }}"
},
"credentials": {
"gmailOAuth2": {
"name": "<your credential>"
}
}
},
{
"id": "Mark Rejected",
"name": "Mark Rejected",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
460,
240
],
"parameters": {
"keepOnlySet": true,
"values": {
"string": [
{
"name": "status",
"value": "rejected"
}
]
}
}
}
],
"connections": {
"Start": {
"main": [
[
{
"node": "Create Draft",
"type": "main",
"index": 0
}
]
]
},
"Create Draft": {
"main": [
[
{
"node": "Notify Approvals Channel",
"type": "main",
"index": 0
}
]
]
},
"Notify Approvals Channel": {
"main": [
[
{
"node": "Wait For Decision",
"type": "main",
"index": 0
}
]
]
},
"Wait For Decision": {
"main": [
[
{
"node": "Approved?",
"type": "main",
"index": 0
}
]
]
},
"Approved?": {
"main": [
[
{
"node": "Send",
"type": "main",
"index": 0
}
],
[
{
"node": "Mark Rejected",
"type": "main",
"index": 0
}
]
]
}
},
"active": false
}
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.
gmailOAuth2slackApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
hitl_email_approval. Uses executeWorkflowTrigger, gmail, slack. Event-driven trigger; 7 nodes.
Source: https://github.com/ogu83/n8n-ai-agent-lab/blob/main/ep4-production/workflows/hitl_email_approval.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.
Template Nodes Example. Uses CUSTOM, formTrigger, executeWorkflowTrigger, chatTrigger. Event-driven trigger; 70 nodes.
Who is this for? Agencies, consultants, and service providers who conduct discovery calls and need to quickly turn conversations into professional proposals.
This workflow scans an RSS blog feed on a schedule, logs newly found posts to Google Sheets, uses OpenAI to generate role-based LinkedIn drafts, and emails approval links via Gmail; approved drafts ar
🤖🧑💻 AI Agent for Top n8n Creators Leaderboard Reporting. Uses httpRequest, executeWorkflowTrigger, readWriteFile, googleDrive. Event-driven trigger; 49 nodes.
📊 Description Automate the entire IT asset recovery and employee offboarding process with this AI-powered n8n workflow. 📋💻 This automation monitors Google Sheets for resigned or terminated employees,