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": "4704e44a-80c6-41b4-a0b9-ece060d53836",
"name": "On clicking 'execute'",
"type": "n8n-nodes-base.manualTrigger",
"position": [
-220,
300
],
"parameters": {},
"typeVersion": 1
},
{
"id": "74a78b35-b453-4345-8cd9-9d8a62961c29",
"name": "Customer Datastore",
"type": "n8n-nodes-base.n8nTrainingCustomerDatastore",
"position": [
20,
300
],
"parameters": {
"operation": "getAllPeople",
"returnAll": true
},
"typeVersion": 1
},
{
"id": "10b633de-e5e5-4fd2-bb4b-7a16bac5f69c",
"name": "Item Lists",
"type": "n8n-nodes-base.itemLists",
"position": [
220,
300
],
"parameters": {
"options": {},
"operation": "sort",
"sortFieldsUi": {
"sortField": [
{
"fieldName": "name"
}
]
}
},
"typeVersion": 1
},
{
"id": "aa90be4e-f548-459f-822b-a3dc1d20d58e",
"name": "One item per template",
"type": "n8n-nodes-document-generator.DocumentGenerator",
"position": [
660,
160
],
"parameters": {
"template": "Date: {{created}}\nTo: {{name}} <{{email}}>\nAddress: {{country}}\nDetails:\n{{#each lines}}\n- \"{{description}}\" x {{quantity}} = {{amount}}\u20ac + {{vat}}\u20ac = {{total}}\u20ac\n{{/each}}\nTotal invoice: {{total}}\u20ac"
},
"typeVersion": 1
},
{
"id": "914c4c67-81df-45ec-9eea-3efb96383dfc",
"name": "All items, one template",
"type": "n8n-nodes-document-generator.DocumentGenerator",
"position": [
660,
400
],
"parameters": {
"template": "<html>\n<head>\n</head>\n<body>\nNew customers in last 24h:\n<ul id=\"customer_list\">\n {{#each items}}\n <li>{{name}}: {{email}}</li>\n {{/each}}\n</ul>\n</body>\n</html>",
"oneTemplate": true
},
"typeVersion": 1
},
{
"id": "bc1821d1-7d08-4208-aa5e-7290f5604e91",
"name": "Add lines",
"type": "n8n-nodes-base.functionItem",
"position": [
440,
160
],
"parameters": {
"functionCode": "item.lines = [\n {\n concept: \"Service\",\n description: \"Design of HTML banners\",\n quantity: 1,\n amount: 22,\n vat: 22 * 0.21,\n total: 22 * 1.21\n },\n {\n concept: \"Service\",\n description: \"Design of PNG banners\",\n quantity: 1,\n amount: 33,\n vat: 33 * 0.21,\n total: 33 * 1.21\n }\n]\n\nitem.date = \"2022-01-12\";\nitem.total = 133.10;\n\nreturn item;"
},
"typeVersion": 1
},
{
"id": "99ccf5f0-6d82-4a9c-a314-711249fbdfc9",
"name": "Send one TEXT email per item",
"type": "n8n-nodes-base.emailSend",
"position": [
880,
160
],
"parameters": {
"html": "={{ $json[\"text\"] }}",
"options": {},
"subject": "=Invoice for {{ $node[\"Add lines\"].json[\"name\"] }}",
"toEmail": "mcolomer@n8nhackers.com",
"fromEmail": "mcolomer@n8nhackers.com"
},
"credentials": {
"smtp": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "3bc12345-da46-4c1f-8fe3-5bb0683cbcda",
"name": "Send one HTML Email per list",
"type": "n8n-nodes-base.emailSend",
"position": [
880,
400
],
"parameters": {
"html": "={{ $json[\"text\"] }}",
"options": {},
"subject": "New customers",
"toEmail": "mcolomer@n8nhackers.com",
"fromEmail": "mcolomer@n8nhackers.com"
},
"credentials": {
"smtp": {
"name": "<your credential>"
}
},
"typeVersion": 1
}
],
"connections": {
"Add lines": {
"main": [
[
{
"node": "One item per template",
"type": "main",
"index": 0
}
]
]
},
"Item Lists": {
"main": [
[
{
"node": "All items, one template",
"type": "main",
"index": 0
},
{
"node": "Add lines",
"type": "main",
"index": 0
}
]
]
},
"Customer Datastore": {
"main": [
[
{
"node": "Item Lists",
"type": "main",
"index": 0
}
]
]
},
"On clicking 'execute'": {
"main": [
[
{
"node": "Customer Datastore",
"type": "main",
"index": 0
}
]
]
},
"One item per template": {
"main": [
[
{
"node": "Send one TEXT email per item",
"type": "main",
"index": 0
}
]
]
},
"All items, one template": {
"main": [
[
{
"node": "Send one HTML Email per list",
"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.
smtp
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Generate Dynamic Contents For Emails Or Html Pages. Uses manualTrigger, n8nTrainingCustomerDatastore, itemLists, n8n-nodes-document-generator. Event-driven trigger; 8 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.
==Disclaimer: This template contains a community node and therefore only works for n8n self-hosted users==
Create An Rss Feed Based On A Website S Content. Uses manualTrigger, itemLists, htmlExtract, httpRequest. Event-driven trigger; 12 nodes.
This workflow illustrates how HTML reports can be created using Markdown Node. An example data consists of a Time Sheet table for 2 persons. Based on this table a markdown document is generated using
This workflow adds a new product in Stripe whenever a new product has been added to Pipedrive. Stripe account and Stripe credentials Pipedrive account and Pipedrive credentials Pipedrive trigger node
Form Html. Uses n8n-nodes-brightdata, n8n-nodes-document-generator, splitOut, emailSend. Event-driven trigger; 8 nodes.