This workflow follows the Emailsend → HTTP Request 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": "Auto-Approve Workflow copy",
"nodes": [
{
"parameters": {
"httpMethod": "POST",
"path": "auto-approve",
"responseMode": "responseNode",
"options": {}
},
"id": "7c406ce2-1f98-4130-8032-85fd35155a06",
"name": "Webhook Trigger",
"type": "n8n-nodes-base.webhook",
"typeVersion": 1,
"position": [
-1008,
112
]
},
{
"parameters": {
"values": {
"string": [
{
"name": "orderId",
"value": "={{ $json.body.orderId }}"
},
{
"name": "totalPrice",
"value": "={{ $json.body.orderData.pricing.totalPrice }}"
},
{
"name": "customerEmail",
"value": "={{ $json.body.orderData.customerEmail }}"
}
]
},
"options": {}
},
"id": "889898df-3c7f-456e-a581-f9292a56d85d",
"name": "Set Variables",
"type": "n8n-nodes-base.set",
"typeVersion": 1,
"position": [
-800,
112
]
},
{
"parameters": {
"fromEmail": "email.verify.921@gmail.com",
"toEmail": "={{ $json.body.orderData.customerEmail }}",
"subject": "=Quote Ready for Approval - Order {{ $json.body.orderId }}",
"options": {}
},
"id": "23913519-f803-47bb-9366-247cdf48f7bc",
"name": "Send Quote Email",
"type": "n8n-nodes-base.emailSend",
"typeVersion": 1,
"position": [
-608,
112
],
"credentials": {
"smtp": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"resume": "webhook",
"httpMethod": "POST",
"options": {}
},
"id": "0d37c00c-3246-4ad5-ac68-6db3786d662c",
"name": "Wait for Customer Response",
"type": "n8n-nodes-base.wait",
"typeVersion": 1,
"position": [
-400,
112
]
},
{
"parameters": {
"conditions": {
"string": [
{
"value1": "={{ $json.body.action }}",
"operation": "contains",
"value2": "=approved"
}
]
}
},
"id": "a3a3de97-2ff6-44eb-8bfd-dced7c9691db",
"name": "Check If Approved",
"type": "n8n-nodes-base.if",
"typeVersion": 1,
"position": [
-208,
112
]
},
{
"parameters": {
"url": "=http://backend:3000/api/v1/orders/{{ $json.body.orderId }}/approve",
"allowUnauthorizedCerts": true,
"jsonParameters": true,
"options": {}
},
"id": "c69317a1-7458-400d-928f-7726b1ee8a58",
"name": "MIS Handoff",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 1,
"position": [
0,
0
]
},
{
"parameters": {
"fromEmail": "email.verify.921@gmail.com",
"toEmail": "={{ $json.body.orderData.customerEmail }}",
"subject": "=Order Approved - Order {{ $json.body.orderId }}",
"options": {}
},
"id": "afecf362-75a6-4dd6-8ca7-a2345658bf9d",
"name": "Send Approval Confirmation",
"type": "n8n-nodes-base.emailSend",
"typeVersion": 1,
"position": [
208,
0
],
"credentials": {
"smtp": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"fromEmail": "email.verify.921@gmail.com",
"toEmail": "={{ $json.body.orderData.customerEmail }}",
"subject": "=Order Declined - Order {{ $json.body.orderId }}",
"options": {}
},
"id": "c7cea602-6afd-4f69-9231-7da570aaa08c",
"name": "Send Rejection Notification",
"type": "n8n-nodes-base.emailSend",
"typeVersion": 1,
"position": [
0,
208
],
"credentials": {
"smtp": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"respondWith": "json",
"responseBody": "={{ JSON.stringify({ success: true, message: 'Workflow started', resumeUrl: $execution.resumeUrl, orderId: $json.body.orderId }) }}",
"options": {}
},
"id": "0566b1ea-b8b3-4daa-9c85-10ccfa53b49e",
"name": "Webhook Response",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1,
"position": [
-800,
304
]
}
],
"connections": {
"Webhook Trigger": {
"main": [
[
{
"node": "Set Variables",
"type": "main",
"index": 0
}
]
]
},
"Set Variables": {
"main": [
[
{
"node": "Webhook Response",
"type": "main",
"index": 0
}
]
]
},
"Webhook Response": {
"main": [
[
{
"node": "Send Quote Email",
"type": "main",
"index": 0
}
]
]
},
"Send Quote Email": {
"main": [
[
{
"node": "Wait for Customer Response",
"type": "main",
"index": 0
}
]
]
},
"Wait for Customer Response": {
"main": [
[
{
"node": "Check If Approved",
"type": "main",
"index": 0
}
]
]
},
"Check If Approved": {
"main": [
[
{
"node": "MIS Handoff",
"type": "main",
"index": 0
}
],
[
{
"node": "Send Rejection Notification",
"type": "main",
"index": 0
}
]
]
},
"MIS Handoff": {
"main": [
[
{
"node": "Send Approval Confirmation",
"type": "main",
"index": 0
}
]
]
}
},
"active": true,
"settings": {
"executionOrder": "v1",
"availableInMCP": false
},
"versionId": "bf36958a-9968-40f0-b37f-4a8bb38265d1",
"id": "5SBFEpejPLEvWb4Y",
"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.
smtp
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Auto-Approve Workflow copy. Uses emailSend, httpRequest, respondToWebhook. Webhook trigger; 9 nodes.
Source: https://github.com/uditgoyaludit/Print-Estimator-/blob/11ffed1c5f77afeb58c92f9c91b88d0239e9692d/n8n-workflows/auto-approve.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.
Demo Workflow How To Use Workflowstaticdata. Uses noOp, httpRequest, scheduleTrigger, stickyNote. Webhook trigger; 9 nodes.
AI Support Ticket Router & Auto-Reply (Ollama). Uses httpRequest. Webhook trigger; 7 nodes.
New Workflow Template (Auto-Export). Uses httpRequest, respondToWebhook. Webhook trigger; 4 nodes.
Respond With File Download To Incoming Http Request. Uses httpRequest, respondToWebhook. Webhook trigger; 3 nodes.