This workflow corresponds to n8n.io template #12343 — 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 →
{
"id": "tD7hMNAA1AEsTKaW",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Full Contact Enrichment Workflow",
"tags": [
{
"id": "hAedgKcLY27GKG4G",
"name": "Video 1",
"createdAt": "2025-09-18T19:21:14.139Z",
"updatedAt": "2025-09-18T19:21:14.139Z"
}
],
"nodes": [
{
"id": "c5dcda10-f5f4-4d37-90d6-b837954730c7",
"name": "On form submission",
"type": "n8n-nodes-base.formTrigger",
"position": [
-400,
256
],
"parameters": {
"options": {},
"formTitle": "Linkedin",
"formFields": {
"values": [
{
"fieldType": "dropdown",
"fieldLabel": "What Are You Searching For?",
"fieldOptions": {
"values": [
{
"option": "Find Email"
},
{
"option": "Find Phone"
},
{
"option": "Find Linkedin"
},
{
"option": "Find All"
}
]
},
"requiredField": true
},
{
"fieldLabel": "Full Name"
},
{
"fieldLabel": "Company Name"
},
{
"fieldLabel": "Email"
},
{
"fieldLabel": "Phone"
},
{
"fieldLabel": "Linkedin"
}
]
}
},
"typeVersion": 2.3
},
{
"id": "260a38cb-6e6a-40b3-857b-41130407d70d",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
-176,
224
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Find Email",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "dad0017d-6f10-46ea-8331-6e1b28eecdf6",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json['What Are You Searching For?'] }}",
"rightValue": "=Find Email"
}
]
},
"renameOutput": true
},
{
"outputKey": "Find Phone",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "329df518-6700-4d66-8bee-a36fdc599a23",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json['What Are You Searching For?'] }}",
"rightValue": "=Find Phone"
}
]
},
"renameOutput": true
},
{
"outputKey": "Find Linkedin",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "3569aa72-74c8-49ce-9dad-4fd55536d807",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json['What Are You Searching For?'] }}",
"rightValue": "=Find Linkedin"
}
]
},
"renameOutput": true
},
{
"outputKey": "Find All",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "8831e967-4f79-4e4e-a26c-c10739dc6a1f",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json['What Are You Searching For?'] }}",
"rightValue": "=Find All"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "5d70a53a-0d0b-4983-9696-6c9356593ef6",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
272,
336
],
"parameters": {
"numberInputs": 3
},
"typeVersion": 3.2
},
{
"id": "30e260a2-c643-449a-a0ba-b478fc871629",
"name": "Switch1",
"type": "n8n-nodes-base.switch",
"position": [
496,
352
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Failed",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "5aec486c-48bd-408a-8309-b59acaa32ef7",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "=failed"
}
]
},
"renameOutput": true
},
{
"outputKey": "Finished",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "82f7bbbf-2bd5-439a-844d-b071eefbcf49",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.status }}",
"rightValue": "=finished"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "106cdb8f-223c-4783-aecf-627a0bb76434",
"name": "Email Finder",
"type": "@wizaco/n8n-nodes-wiza.wiza",
"position": [
48,
160
],
"parameters": {
"additionalFields": {}
},
"credentials": {
"wizaApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "10e8b880-1591-4b0f-b819-8fb07b24a49e",
"name": "Phone Finder",
"type": "@wizaco/n8n-nodes-wiza.wiza",
"position": [
48,
352
],
"parameters": {
"operation": "phoneFinder",
"additionalFields": {}
},
"credentials": {
"wizaApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "383c252b-e565-4b21-8edb-cd55a45342bf",
"name": "Linkedin Finder",
"type": "@wizaco/n8n-nodes-wiza.wiza",
"position": [
48,
544
],
"parameters": {
"operation": "linkedinFinder",
"additionalFields": {}
},
"credentials": {
"wizaApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "4549186a-7149-43f1-a458-16ab19a61ef7",
"name": "Failed To Find Enrichment",
"type": "n8n-nodes-base.form",
"position": [
720,
160
],
"parameters": {
"options": {},
"operation": "completion",
"completionTitle": "Failed To Find Enrichment Data",
"completionMessage": "The Wiza Back-End Could Not Find any Enrichment Data from the provided information"
},
"typeVersion": 2.3
},
{
"id": "51a3f99b-e8e0-440b-9721-b4fb53fae59a",
"name": "Success Message Form",
"type": "n8n-nodes-base.form",
"position": [
1168,
544
],
"parameters": {
"options": {},
"operation": "completion",
"completionTitle": "Success!",
"completionMessage": "Your new lead has been successfully added to your CRM"
},
"typeVersion": 2.3
},
{
"id": "c9f5a42b-6c19-4c1b-8deb-ce4e5d912ef1",
"name": "Append or update row in sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
944,
544
],
"parameters": {
"columns": {
"value": {},
"schema": [
{
"id": "first_name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "first_name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "last_name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "last_name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "phone_number",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "phone_number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "company_name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "company_name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "website",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "website",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "location",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "location",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "job_title",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "job_title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "linkedin_profile",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "linkedin_profile",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "company_url",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "company_url",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "autoMapInputData",
"matchingColumns": [
"email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 307447212,
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1UjUtEho9_Lg5ByZOr-HBco7nrYgZvqksNBuQhU_HndE/edit#gid=307447212",
"cachedResultName": "Leads 2025-09-30"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1UjUtEho9_Lg5ByZOr-HBco7nrYgZvqksNBuQhU_HndE",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1UjUtEho9_Lg5ByZOr-HBco7nrYgZvqksNBuQhU_HndE/edit?usp=drivesdk",
"cachedResultName": "Leads List"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "78552061-9ad8-4dd4-8a33-197784392e71",
"name": "Clean Up",
"type": "n8n-nodes-base.code",
"position": [
720,
352
],
"parameters": {
"jsCode": "// n8n Function node\n// Input: array of enrichment results (email, phone, none)\n// Output: single normalized lead object\n\nreturn [\n {\n json: (() => {\n // Merge all records into one object\n const all = items.map(i => i.json);\n\n const base = all[0]; // take the first as default since all share same name/company\n\n // Find best email (from enrichment_level=email or from emails array)\n const emailRecord = all.find(r => r.email) || {};\n const email = emailRecord.email || (emailRecord.emails?.[0]?.email) || null;\n\n // Find best phone\n const phoneRecord = all.find(r => r.phone_number) || {};\n const phone = phoneRecord.phone_number || (phoneRecord.phones?.[0]?.number) || null;\n\n return {\n first_name: base.name?.split(\" \")[0] || null,\n last_name: base.name?.split(\" \").slice(1).join(\" \") || null,\n email: email,\n phone_number: phone,\n company_name: base.company || null,\n website: base.company_domain || null,\n location: base.location || null,\n job_title: base.title || null,\n linkedin_profile: base.linkedin_profile_url || null,\n company_url: base.company_domain || null\n };\n })()\n }\n];"
},
"typeVersion": 2
},
{
"id": "a8a70914-8bba-43b5-9c16-f3226fb78103",
"name": "Create or update a contact",
"type": "n8n-nodes-base.hubspot",
"position": [
944,
352
],
"parameters": {
"email": "={{ $json.email }}",
"options": {},
"authentication": "appToken",
"additionalFields": {
"city": "={{ $json.location }}",
"jobTitle": "={{ $json.job_title }}",
"lastName": "={{ $json.last_name }}",
"firstName": "={{ $json.first_name }}",
"companyName": "={{ $json.company_name }}",
"linkedinUrl": "={{ $json.linkedin_profile }}",
"phoneNumber": "={{ $json.phone_number }}"
}
},
"credentials": {
"hubspotAppToken": {
"name": "<your credential>"
}
},
"typeVersion": 2.2
},
{
"id": "92cee164-88e6-479e-af30-94ff4933b201",
"name": "Insert row",
"type": "n8n-nodes-base.dataTable",
"position": [
944,
160
],
"parameters": {
"columns": {
"value": {},
"schema": [
{
"id": "name",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "name",
"defaultMatch": false
},
{
"id": "title",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "title",
"defaultMatch": false
},
{
"id": "location",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "location",
"defaultMatch": false
},
{
"id": "linkedin_profile_url",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "linkedin_profile_url",
"defaultMatch": false
},
{
"id": "email",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "email",
"defaultMatch": false
},
{
"id": "phone",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "phone",
"defaultMatch": false
},
{
"id": "company_name",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "company_name",
"defaultMatch": false
},
{
"id": "company_size",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "company_size",
"defaultMatch": false
},
{
"id": "company_type",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "company_type",
"defaultMatch": false
},
{
"id": "company_industry",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "company_industry",
"defaultMatch": false
},
{
"id": "company_revenue_range",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "company_revenue_range",
"defaultMatch": false
},
{
"id": "company_linkedin",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "company_linkedin",
"defaultMatch": false
},
{
"id": "company_location",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "company_location",
"defaultMatch": false
},
{
"id": "company_domain",
"type": "string",
"display": true,
"removed": false,
"readOnly": false,
"required": false,
"displayName": "company_domain",
"defaultMatch": false
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"dataTableId": {
"__rl": true,
"mode": "list",
"value": "esfg4aP7UBYpkcGt",
"cachedResultUrl": "/projects/yzH6t1qmVzBSVjA7/datatables/esfg4aP7UBYpkcGt",
"cachedResultName": "Leads"
}
},
"typeVersion": 1
},
{
"id": "ac0d9a95-d977-4258-91a7-bfc4240dcc53",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1056,
16
],
"parameters": {
"color": 6,
"width": 576,
"height": 1232,
"content": "## Email Outreach Automation\n\n@[youtube](1o4oREHQgLw)\n\n### Workflow Set-Up\n\n**APIs:**\n- Wiza\n- OpenAI\n- Perplexity\n- Gmail\n\n## Full Documentation\n\nFind all downloadable resources including detailed set up information and database template csv in the [Full Notion Documentation](https://freemezie.notion.site/Email-Outreach-Automation-2d4c8a2a63e080dfa4e8e0fe6ea27894?source=copy_link)\n\n## Workflow Overview\n\nA 100% automated system that enriches LinkedIn leads, researches their companies with AI, and writes personalized cold emails that actually get replies.\n\n ### **1\ufe0f\u20e3 Enrich Leads & Verify Emails**\n- **Wiza Integration:** Submit a LinkedIn URL and Wiza finds verified email, job title, and company data.\n- **Smart Routing:** Failed enrichments are flagged automatically so you never send to bad addresses.\n\n ### **2\ufe0f\u20e3 Research Each Prospect with AI**\n- **Deep Research:** Perplexity AI searches the web for recent news, funding signals, and growth indicators about each lead.\n- **Auto-Context:** All research is passed directly to the email writer for hyper-personalization.\n\n ### **3\ufe0f\u20e3 Generate & Stage Personalized Emails**\n- **Custom Writing:** GPT writes a unique icebreaker email for every person using real research and your case studies.\n- **Draft Ready:** All personalized emails are pushed to Gmail as drafts, ready for review and send."
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "c8b72ac0-bb78-428a-a105-a5d371e93ab9",
"connections": {
"Merge": {
"main": [
[
{
"node": "Switch1",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Email Finder",
"type": "main",
"index": 0
}
],
[
{
"node": "Phone Finder",
"type": "main",
"index": 0
}
],
[
{
"node": "Linkedin Finder",
"type": "main",
"index": 0
}
],
[
{
"node": "Email Finder",
"type": "main",
"index": 0
},
{
"node": "Phone Finder",
"type": "main",
"index": 0
},
{
"node": "Linkedin Finder",
"type": "main",
"index": 0
}
]
]
},
"Switch1": {
"main": [
[
{
"node": "Failed To Find Enrichment",
"type": "main",
"index": 0
}
],
[
{
"node": "Clean Up",
"type": "main",
"index": 0
}
]
]
},
"Clean Up": {
"main": [
[
{
"node": "Create or update a contact",
"type": "main",
"index": 0
},
{
"node": "Append or update row in sheet",
"type": "main",
"index": 0
},
{
"node": "Insert row",
"type": "main",
"index": 0
}
]
]
},
"Email Finder": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Phone Finder": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
}
]
]
},
"Linkedin Finder": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 2
}
]
]
},
"On form submission": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Append or update row in sheet": {
"main": [
[
{
"node": "Success Message Form",
"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.
googleSheetsOAuth2ApihubspotAppTokenwizaApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Receives contact details via form, routes to appropriate Wiza API endpoints (email, phone, LinkedIn, or all), enriches data with verification, calculates quality scores (0-100), and stores results in both Airtable and HubSpot.
Source: https://n8n.io/workflows/12343/ — 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 automatically collects historical price data from Polymarket Up/Down markets and stores it in Supabase, creating a structured and query-ready dataset for analysis. By continuously fetchi
This n8n workflow securely processes contact form submissions by validating user input, formatting the data, and storing it in a MongoDB database. The flow ensures data consistency, prevents unsafe en
A comprehensive n8n automation that scrapes Trustpilot business reviews using Bright Data and automatically stores structured data in Google Sheets.
This workflow acts as a junior finance research analyst for a UK boutique M&A or corporate finance team. It listens for Slack messages, classifies the request, gathers company or market data, and prod
This solution enables you to manage all your Notion and Todoist tasks from different workspaces as well as your calendar events in a single place. This is 2 way sync with partial support for recurring