This workflow corresponds to n8n.io template #5505 — we link there as the canonical source.
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 →
{
"id": "mSRodggo80JpZWPj",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Form Submission to Notion CRM Setup",
"tags": [],
"nodes": [
{
"id": "ed25fd44-5ca1-424d-8dd5-115aa8d2812a",
"name": "Form Submission Hook",
"type": "n8n-nodes-base.webhook",
"position": [
140,
220
],
"parameters": {
"path": "34e9fb3f-f6bd-4a44-bb58-6fe58ffe4a78",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2
},
{
"id": "cbbb8ead-001c-4f1c-8445-5163f43ee1ad",
"name": "Parse + Clean Lead Data",
"type": "n8n-nodes-base.code",
"position": [
460,
220
],
"parameters": {
"jsCode": "const items = $input.all();\n\nconst updatedItems = items.map((item) => {\n const { name, email, businessName, message, timeline, budget } =\n item.json.body;\n return {\n name,\n email,\n businessName,\n \"project intent/need\": message,\n timeline,\n budget,\n };\n});\n\nreturn updatedItems;\n"
},
"typeVersion": 2
},
{
"id": "ff79100c-45d8-4661-88ac-beff4ddd4b3f",
"name": "Notion",
"type": "n8n-nodes-base.notion",
"position": [
860,
220
],
"parameters": {
"pageId": {
"__rl": true,
"mode": "url",
"value": ""
},
"blockUi": {
"blockValues": [
{},
{},
{}
]
},
"options": {}
},
"typeVersion": 2.2
},
{
"id": "f9efaa89-1f30-4da5-aeee-077f1fb13d32",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-340,
-20
],
"parameters": {
"color": 3,
"width": 360,
"height": 460,
"content": "## Website Form Submission to Notion CRM Setup\n**Author David Olusola** \n\nThe great thing about this workflow is that all the fields can be fully customised to match your specific use case. Whether you\u2019re collecting project inquiries, job applications, client onboarding details, or internal requests, you can edit the input fields in your form and update the Code node accordingly.\n\nFor example, if your form collects extra data like \u201cpreferred contact time\u201d or \u201cproject type,\u201d you simply add those fields into your Code node output and map them to your Notion database properties. This way, your workflow remains flexible and tailored to exactly what your business needs to capture, store, and action efficiently."
},
"typeVersion": 1
},
{
"id": "b01db7fa-a46a-4e0f-a1f4-b3a11770fe25",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
100,
-40
],
"parameters": {
"color": 7,
"height": 420,
"content": "\n1.**Webhook Node**\n \u2022 Purpose: Receives form data.\n \u2022 How to set up:\n \u2022 Add a Webhook node in n8n.\n \u2022 Copy the webhook URL.\n \u2022 In your website form settings, set the form action or integration to POST data to this webhook URL.\n \u2022 Test submit the form to see the incoming fields in n8n."
},
"typeVersion": 1
},
{
"id": "e5825406-7f14-4054-94d3-d67c66e3b317",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
340,
-40
],
"parameters": {
"color": 6,
"width": 280,
"height": 420,
"content": "**Parse Data**\n 1. Reads all input items from the webhook\n 2. Extracts these fields from each form submission:\n \u2022 name\n \u2022 email\n \u2022 businessName\n \u2022 message (renamed to project intent/need)\n \u2022 timeline\n \u2022 budget\n 3. Returns them as a new structured object."
},
"typeVersion": 1
},
{
"id": "869bed10-0e6e-4d3a-b217-f0998c2be462",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
620,
-40
],
"parameters": {
"width": 360,
"height": 440,
"content": "## Mapping to Notion\n\nWhen you connect this to your Notion \u201cCreate Page\u201d node:\n \u2022 Select each database property\n \u2022 Map it to the corresponding output field from this Code node:\n\nNotion Property\nValue Mapping\nName\n{{$json[\"name\"]}}\nEmail\n{{$json[\"email\"]}}\nBusiness Name\n{{$json[\"businessName\"]}}\nProject Intent/Need\n{{$json[\"project intent/need\"]}}\nTimeline\n{{$json[\"timeline\"]}}\nBudget\n{{$json[\"budget\"]}}"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "3fb4d00a-60b9-4907-8bd4-157ed67d33b1",
"connections": {
"Form Submission Hook": {
"main": [
[
{
"node": "Parse + Clean Lead Data",
"type": "main",
"index": 0
}
]
]
},
"Parse + Clean Lead Data": {
"main": [
[
{
"node": "Notion",
"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 workflow captures form submissions from your website, formats the data, and automatically creates a new entry in your Notion CRM database. It eliminates manual copy-pasting and keeps your leads or requests organised in one place. Webhook Node • Create a webhook in n8n. •…
Source: https://n8n.io/workflows/5505/ — 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.
This workflow automates the entire lifecycle of a service-based client, combining four distinct business flows into a single view: Intake Leads: Receives a webhook from your form builder, validates th
A warm, reliable onboarding system for small businesses and studios. Captures a form submission via webhook, creates a Client record in Notion, sends a concierge-style welcome email (with scheduler +