This workflow corresponds to n8n.io template #3785 — we link there as the canonical source.
This workflow follows the Form → Form Trigger 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 →
{
"nodes": [
{
"id": "18813eed-27a8-4338-8e71-abb270d43082",
"name": "Split by object",
"type": "n8n-nodes-base.splitOut",
"position": [
1120,
1300
],
"parameters": {},
"typeVersion": 1
},
{
"id": "ee610ddd-5bd7-4d97-82a9-b688c71616d8",
"name": "Fetch properties from Hubspot",
"type": "n8n-nodes-base.httpRequest",
"position": [
1340,
1300
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "22662720-97ae-4e59-a70e-3b858e8e632d",
"name": "Define crm_type",
"type": "n8n-nodes-base.code",
"position": [
1560,
1300
],
"parameters": {},
"typeVersion": 2
},
{
"id": "abfdd971-1112-4dd4-9513-13f12f3e92f2",
"name": "Split results",
"type": "n8n-nodes-base.splitOut",
"position": [
1780,
1300
],
"parameters": {},
"typeVersion": 1
},
{
"id": "94c2b864-e88d-4da8-9ca3-a34d1ca8b15b",
"name": "Transforms the results",
"type": "n8n-nodes-base.code",
"position": [
2220,
1300
],
"parameters": {},
"typeVersion": 2
},
{
"id": "ddebf521-ed07-446b-ac2a-e21be46ee2c5",
"name": "Append to Google sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
2440,
1300
],
"parameters": {},
"typeVersion": 4.5
},
{
"id": "dfd3d16b-b7d6-49ba-a38b-076960a8a184",
"name": "Erase Google sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
680,
1300
],
"parameters": {},
"typeVersion": 4.5
},
{
"id": "d39acf68-f809-4a4b-bb5e-5f80a7fddfbc",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
380,
1220
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "99ce38cb-937c-44f4-8e21-cceb8c5fa000",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
380,
460
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "3b231f69-ca9b-40a4-b894-24cece123855",
"name": "Define array of objects",
"type": "n8n-nodes-base.set",
"position": [
900,
1300
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "d3eff9e3-1fae-4228-bcd9-525854f3f440",
"name": "Start here to update your field list",
"type": "n8n-nodes-base.manualTrigger",
"position": [
460,
1300
],
"parameters": {},
"typeVersion": 1
},
{
"id": "b1a4d238-9d55-4bff-a1b4-3942dbe37fdb",
"name": "File upload form",
"type": "n8n-nodes-base.formTrigger",
"position": [
460,
780
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "44f4ffe7-ff9f-4716-82ef-fc3c44dc48ca",
"name": "To get the first line of file",
"type": "n8n-nodes-base.extractFromFile",
"position": [
680,
880
],
"parameters": {},
"typeVersion": 1
},
{
"id": "351604db-d9e9-4994-8c1c-f543c13aead9",
"name": "Set the real fields",
"type": "n8n-nodes-base.set",
"position": [
900,
880
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "a61d6de1-005e-41ad-a71e-3eafde83afc7",
"name": "Get the fields from the sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
1340,
780
],
"parameters": {},
"typeVersion": 4.5
},
{
"id": "617d572a-53a9-4fe8-9f73-06689c706006",
"name": "Merge fields and data",
"type": "n8n-nodes-base.merge",
"position": [
1120,
780
],
"parameters": {},
"typeVersion": 3.1
},
{
"id": "f2be6bfb-ac32-43d0-924c-d8f20a401b2f",
"name": "Check if all fields from input are defined",
"type": "n8n-nodes-base.code",
"position": [
1560,
780
],
"parameters": {},
"typeVersion": 2
},
{
"id": "8a2e23a3-c044-48ac-b66c-7205e34ad3bd",
"name": "If all fields are defined",
"type": "n8n-nodes-base.if",
"position": [
1780,
780
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "123f6190-600a-410a-b943-a6e67d4f0a86",
"name": "Creates the correspondance table",
"type": "n8n-nodes-base.code",
"position": [
2000,
880
],
"parameters": {},
"typeVersion": 2
},
{
"id": "c7348c9a-e4c3-4af2-9224-5338799ed7aa",
"name": "Form to set the correponding field for each input field",
"type": "n8n-nodes-base.form",
"position": [
2220,
880
],
"parameters": {},
"executeOnce": true,
"typeVersion": 1
},
{
"id": "2ba6be51-2508-4d34-b447-2f326fb692b5",
"name": "Get the content of file",
"type": "n8n-nodes-base.extractFromFile",
"onError": "continueRegularOutput",
"position": [
900,
680
],
"parameters": {},
"typeVersion": 1
},
{
"id": "3bae9532-81d5-4694-b2cd-40c2b8207b22",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
420,
540
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "2836df7d-4307-485c-857e-30b0bb4cf59b",
"name": "Split all records to import",
"type": "n8n-nodes-base.splitOut",
"position": [
2660,
780
],
"parameters": {},
"typeVersion": 1
},
{
"id": "5d4481f4-0157-42d4-8223-1259f45a1846",
"name": "Define properties",
"type": "n8n-nodes-base.set",
"position": [
2880,
780
],
"parameters": {},
"typeVersion": 3.4
},
{
"id": "b765d44e-6b13-4031-b188-e827578b9bee",
"name": "Uploads to Hubspot",
"type": "n8n-nodes-base.httpRequest",
"position": [
3100,
780
],
"parameters": {},
"typeVersion": 4.2
},
{
"id": "f95862b2-555b-44a7-b318-cb3316d33594",
"name": "Form response",
"type": "n8n-nodes-base.form",
"position": [
3320,
780
],
"parameters": {},
"typeVersion": 1
},
{
"id": "75275b15-24e3-4fee-9d71-b4e7a2479c11",
"name": "Remove hidden and starting with hs_ props fields",
"type": "n8n-nodes-base.filter",
"position": [
2000,
1300
],
"parameters": {},
"typeVersion": 2.2
},
{
"id": "3b131ff9-ff8c-4b4c-8f48-7603e2f4e29c",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1280,
540
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "75d465db-f0df-489b-a596-ed9e5a6b97ea",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1960,
540
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "16869a28-c6c1-4f88-ae7a-6ca74ad97a31",
"name": "Set the values for each field",
"type": "n8n-nodes-base.code",
"position": [
2440,
680
],
"parameters": {},
"typeVersion": 2
},
{
"id": "c7f51291-91df-497e-8466-031ac031384a",
"name": "Set the values for each field1",
"type": "n8n-nodes-base.code",
"position": [
2440,
880
],
"parameters": {},
"typeVersion": 2
},
{
"id": "6aafe2ff-e4c7-4e07-8a39-d5bed120fdf7",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
2620,
540
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "0b2e7364-4da7-4c4b-b1a2-3fda8e0a20be",
"name": "Sticky Note7",
"type": "n8n-nodes-base.stickyNote",
"position": [
380,
240
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "5cf4f276-54e4-4e31-af1c-c2808802afda",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
840,
1280
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "bd0953b5-769f-40b2-9e71-b4e38f5aea7c",
"name": "Sticky Note8",
"type": "n8n-nodes-base.stickyNote",
"position": [
1940,
1280
],
"parameters": {
"content": ""
},
"typeVersion": 1
},
{
"id": "ae9d2dee-1c07-40eb-b8aa-020cde8534df",
"name": "Sticky Note9",
"type": "n8n-nodes-base.stickyNote",
"position": [
620,
1280
],
"parameters": {
"content": ""
},
"typeVersion": 1
}
],
"connections": {
"Split results": {
"main": [
[
{
"node": "Remove hidden and starting with hs_ props fields",
"type": "main",
"index": 0
}
]
]
},
"Define crm_type": {
"main": [
[
{
"node": "Split results",
"type": "main",
"index": 0
}
]
]
},
"Split by object": {
"main": [
[
{
"node": "Fetch properties from Hubspot",
"type": "main",
"index": 0
}
]
]
},
"File upload form": {
"main": [
[
{
"node": "To get the first line of file",
"type": "main",
"index": 0
},
{
"node": "Get the content of file",
"type": "main",
"index": 0
}
]
]
},
"Define properties": {
"main": [
[
{
"node": "Uploads to Hubspot",
"type": "main",
"index": 0
}
]
]
},
"Erase Google sheet": {
"main": [
[
{
"node": "Define array of objects",
"type": "main",
"index": 0
}
]
]
},
"Uploads to Hubspot": {
"main": [
[
{
"node": "Form response",
"type": "main",
"index": 0
}
]
]
},
"Set the real fields": {
"main": [
[
{
"node": "Merge fields and data",
"type": "main",
"index": 1
}
]
]
},
"Merge fields and data": {
"main": [
[
{
"node": "Get the fields from the sheet",
"type": "main",
"index": 0
}
]
]
},
"Append to Google sheet": {
"main": [
[]
]
},
"Transforms the results": {
"main": [
[
{
"node": "Append to Google sheet",
"type": "main",
"index": 0
}
]
]
},
"Define array of objects": {
"main": [
[
{
"node": "Split by object",
"type": "main",
"index": 0
}
]
]
},
"Get the content of file": {
"main": [
[
{
"node": "Merge fields and data",
"type": "main",
"index": 0
}
]
]
},
"If all fields are defined": {
"main": [
[
{
"node": "Set the values for each field",
"type": "main",
"index": 0
}
],
[
{
"node": "Creates the correspondance table",
"type": "main",
"index": 0
}
]
]
},
"Split all records to import": {
"main": [
[
{
"node": "Define properties",
"type": "main",
"index": 0
}
]
]
},
"Fetch properties from Hubspot": {
"main": [
[
{
"node": "Define crm_type",
"type": "main",
"index": 0
}
]
]
},
"Get the fields from the sheet": {
"main": [
[
{
"node": "Check if all fields from input are defined",
"type": "main",
"index": 0
}
]
]
},
"Set the values for each field": {
"main": [
[
{
"node": "Split all records to import",
"type": "main",
"index": 0
}
]
]
},
"To get the first line of file": {
"main": [
[
{
"node": "Set the real fields",
"type": "main",
"index": 0
}
]
]
},
"Set the values for each field1": {
"main": [
[
{
"node": "Split all records to import",
"type": "main",
"index": 0
}
]
]
},
"Creates the correspondance table": {
"main": [
[
{
"node": "Form to set the correponding field for each input field",
"type": "main",
"index": 0
}
]
]
},
"Start here to update your field list": {
"main": [
[
{
"node": "Erase Google sheet",
"type": "main",
"index": 0
}
]
]
},
"Check if all fields from input are defined": {
"main": [
[
{
"node": "If all fields are defined",
"type": "main",
"index": 0
}
]
]
},
"Remove hidden and starting with hs_ props fields": {
"main": [
[
{
"node": "Transforms the results",
"type": "main",
"index": 0
}
]
]
},
"Form to set the correponding field for each input field": {
"main": [
[
{
"node": "Set the values for each field1",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This n8n workflow is designed for Customer Success Managers (CSM), marketers, sales teams, and data administrators who need to automate the process of uploading and processing CSV data in HubSpot. It is ideal for users who regularly import contact lists, update CRM records, or…
Source: https://n8n.io/workflows/3785/ — 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.
Splitout Code. Uses splitOut, httpRequest, googleSheets, stickyNote. Event-driven trigger; 36 nodes.
This workflow turns contract process into a fully automated, production-ready signing pipeline.
Overview 🌐
The SEO On Page API is a powerful tool for keyword research, competitor analysis, backlink insights, and overall SEO optimization. With multiple endpoints, you can instantly gather actionable SEO data
Demonstration video