Here’s my workflow:
{
“nodes”: [
{
“parameters”: {
“operation”: “xlsx”,
“options”: {
“headerRow”: true,
“includeEmptyCells”: true,
“range”: “A1:J5”
}
},
“type”: “n8n-nodes-base.extractFromFile”,
“typeVersion”: 1,
“position”: [
-368,
-320
],
“id”: “7bcdfd5b-4c69-43eb-b427-6a94ba567c0b”,
“name”: “Extract from BOM”
},
{
“parameters”: {
“operation”: “xlsx”,
“options”: {
“headerRow”: true,
“includeEmptyCells”: true,
“range”: “A1:J6”
}
},
“type”: “n8n-nodes-base.extractFromFile”,
“typeVersion”: 1,
“position”: [
-368,
-144
],
“id”: “062c333f-88b3-4d6b-b010-52fa9b91e773”,
“name”: “Extract from Template”
},
{
“parameters”: {
“httpMethod”: “POST”,
“path”: “form-submit”,
“options”: {}
},
“type”: “n8n-nodes-base.webhook”,
“typeVersion”: 2.1,
“position”: [
-896,
-240
],
“id”: “a4cee41f-d76e-4309-9235-11dceaf16e65”,
“name”: “BOM submission”,
“webhookId”: “7f41c3e5-8b08-43e1-8d28-0226295841a5”
},
{
“parameters”: {
“mergeByFields”: {
“values”: [
{
“field1”: “__EMPTY”,
“field2”: “__EMPTY”
}
]
},
“options”: {}
},
“type”: “n8n-nodes-base.compareDatasets”,
“typeVersion”: 2.3,
“position”: [
-144,
-272
],
“id”: “62445edd-36e6-4d72-9664-ffa0bb2771c3”,
“name”: “Check with the template”,
“alwaysOutputData”: true
},
{
“parameters”: {
“operation”: “download”,
“fileId”: {
“__rl”: true,
“value”: “= {{ $json.body.specificLink }}”,
“mode”: “url”
},
“options”: {}
},
“type”: “n8n-nodes-base.googleDrive”,
“typeVersion”: 3,
“position”: [
-592,
-320
],
“id”: “05296baa-884f-41bb-8772-faaeaf6bfa61”,
“name”: “Download BOM”,
“credentials”: {
“googleDriveOAuth2Api”: {
“id”: “kLKqyCDEv75YOqc2”,
“name”: “Main”
}
}
},
{
“parameters”: {
“operation”: “download”,
“fileId”: {
“__rl”: true,
“value”: “``https://docs.google.com/spreadsheets/d/1mqauoI7rAdmkMNm9SG-f6G1IKp-Jf8zK/edit?gid=763764905#gid=763764905”``,
“mode”: “url”
},
“options”: {}
},
“type”: “n8n-nodes-base.googleDrive”,
“typeVersion”: 3,
“position”: [
-592,
-128
],
“id”: “884c6b57-4316-4e79-b211-4bbeb8aea805”,
“name”: “Template”,
“credentials”: {
“googleDriveOAuth2Api”: {
“id”: “kLKqyCDEv75YOqc2”,
“name”: “Main”
}
}
}
],
“connections”: {
“Extract from BOM”: {
“main”: [
[
{
“node”: “Check with the template”,
“type”: “main”,
“index”: 0
}
]
]
},
“Extract from Template”: {
“main”: [
[
{
“node”: “Check with the template”,
“type”: “main”,
“index”: 1
}
]
]
},
“BOM submission”: {
“main”: [
[
{
“node”: “Download BOM”,
“type”: “main”,
“index”: 0
},
{
“node”: “Template”,
“type”: “main”,
“index”: 0
}
]
]
},
“Check with the template”: {
“main”: [
,
,
,
]
},
“Download BOM”: {
“main”: [
[
{
“node”: “Extract from BOM”,
“type”: “main”,
“index”: 0
}
]
]
},
“Template”: {
“main”: [
[
{
“node”: “Extract from Template”,
“type”: “main”,
“index”: 0
}
]
]
}
},
“pinData”: {},
“meta”: {
“templateCredsSetupCompleted”: true,
“instanceId”: “0464d9d19150a0a34d1944614c23ce2f16d5ed30c613203d67a1a84598ccc1ff”
}
}
Here’s HTML code:
Submit Email and Link
body {
font-family: Arial, sans-serif;
max-width: 600px;
margin: 20px auto;
padding: 20px;
}
.form-group {
margin-bottom: 15px;
}
label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
input {
width: 100%;
padding: 8px;
box-sizing: border-box;
}
button {
background-color: #4CAF50;
color: white;
padding: 10px 15px;
border: none;
cursor: pointer;
}
button:hover {
background-color: #45a049;
}
Submit BOM File
<div class="form-group">
<label for="email">Email:</label>
<input type="email" id="email" name="Your email" required placeholder="Enter your email">
</div>
<div class="form-group">
<label for="specificLink">Specific Link:</label>
<input type="url" id="specificLink" name="specificLink" required placeholder="Enter a link">
</div>
<button type="submit">Submit</button>