This workflow corresponds to n8n.io template #4260 — we link there as the canonical source.
This workflow follows the Execute Workflow Trigger → 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": "Ipc5s7U9UzuqexMI",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Extract company data and calculate ICP",
"tags": [],
"nodes": [
{
"id": "bc969415-98e7-4160-ab92-6088ea752265",
"name": "On form submission",
"type": "n8n-nodes-base.formTrigger",
"position": [
0,
-140
],
"parameters": {
"options": {},
"formTitle": "LinkedIn Company Profile Extractor",
"formFields": {
"values": [
{
"fieldLabel": "Company domain",
"placeholder": "company.com",
"requiredField": true
},
{
"fieldLabel": "Airtop Profile (connected to Linkedin)",
"requiredField": true
},
{
"fieldLabel": "Company LinkedIn"
}
]
},
"formDescription": "=<h2>Find Company LinkedIn URL</h2> \n<p>This automation takes a company domain and returns its LinkedIn URL.</p> "
},
"typeVersion": 2.2
},
{
"id": "c258f7eb-9e86-41a9-ae23-0bf1b24e6b86",
"name": "When Executed by Another Workflow",
"type": "n8n-nodes-base.executeWorkflowTrigger",
"position": [
0,
60
],
"parameters": {
"workflowInputs": {
"values": [
{
"name": "Company domain"
},
{
"name": "Airtop Profile (connected to Linkedin)"
},
{
"name": "Company LinkedIn"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "ad5482d7-93a9-491b-81bf-9111476a000a",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
1320,
-40
],
"parameters": {
"numberInputs": 3
},
"typeVersion": 3.1
},
{
"id": "602d6957-e88b-4ce0-ba9c-1b665eb5b9fb",
"name": "Extract company LinkedIn url",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
620,
40
],
"parameters": {
"options": {},
"workflowId": {
"__rl": true,
"mode": "list",
"value": "JuW1Q92YSk4ErvvC",
"cachedResultName": "AIRTOP \u2014 Company LinkedIn"
},
"workflowInputs": {
"value": {
"Company domain": "={{ $('Unify Params').item.json.company_domain }}",
"Airtop Profile (connected to Linkedin)": "={{ $('Unify Params').item.json.airtop_profile }}"
},
"schema": [
{
"id": "Company domain",
"type": "string",
"display": true,
"required": false,
"displayName": "Company domain",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Airtop Profile (connected to Linkedin)",
"type": "string",
"display": true,
"required": false,
"displayName": "Airtop Profile (connected to Linkedin)",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": true
}
},
"typeVersion": 1.2
},
{
"id": "604abdb8-3932-49e7-9a25-0338b3b0b496",
"name": "Extract Company Information",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
1120,
-160
],
"parameters": {
"options": {},
"workflowId": {
"__rl": true,
"mode": "list",
"value": "yWtpgGwGgspx1A1W",
"cachedResultName": "AIRTOP \u2014 Extract LinkedIn Company Information"
},
"workflowInputs": {
"value": {
"airtop_profile": "={{ $('Unify Params').item.json.airtop_profile }}",
"company_linkedin": "={{ $json.company_linkedin }}"
},
"schema": [
{
"id": "company_linkedin",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "company_linkedin",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "airtop_profile",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "airtop_profile",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": true
}
},
"typeVersion": 1.2
},
{
"id": "98ce1d1a-00db-4875-b8f6-8d57435dda3c",
"name": "Calclate ICP",
"type": "n8n-nodes-base.executeWorkflow",
"position": [
1120,
60
],
"parameters": {
"options": {},
"workflowId": {
"__rl": true,
"mode": "list",
"value": "CYDemwO42LTGiiPR",
"cachedResultName": "AIRTOP \u2014 Company ICP scoring"
},
"workflowInputs": {
"value": {
"airtop_profile": "={{ $('Unify Params').item.json.airtop_profile }}",
"company_linkedin": "={{ $json.company_linkedin }}"
},
"schema": [
{
"id": "company_linkedin",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "company_linkedin",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "airtop_profile",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "airtop_profile",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": true
}
},
"typeVersion": 1.2
},
{
"id": "2d1b8c05-cba5-4c93-8418-ce0e8585c5a0",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-60,
-240
],
"parameters": {
"width": 440,
"height": 460,
"content": "## Input Parameters\nRun this workflow using a form or from another workflow"
},
"typeVersion": 1
},
{
"id": "6e7f3e1c-ebb2-4367-8090-59fc6a25ca43",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
960,
-240
],
"parameters": {
"color": 4,
"width": 500,
"height": 460,
"content": "## Enrich Company Data\nExtract all information and calculate ICP score"
},
"typeVersion": 1
},
{
"id": "ce7271c5-9580-4ca4-8092-c5c0f4697e1e",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
-240
],
"parameters": {
"color": 5,
"width": 540,
"height": 460,
"content": "## Find Company LinkedIn URL\nIf the link isn't found on the page, search for it externally"
},
"typeVersion": 1
},
{
"id": "7a9c617e-eb50-4e9c-b34f-3401c840e658",
"name": "LinkedIn link exists?",
"type": "n8n-nodes-base.if",
"position": [
440,
-40
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "2fdc9590-6755-45b9-bfce-69275d04e414",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.company_linkedin }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "6107d9a7-e216-4cda-bfdd-4b4df4fbf0d2",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-940,
-580
],
"parameters": {
"width": 860,
"height": 1200,
"content": "README\n\n# Automating Company Data Enrichment and ICP Calculation\n\n## Use Case\n\nThis automation identifies a company's LinkedIn profile, extracts key business data, and calculates an ICP (Ideal Customer Profile) score to qualify and enrich company records. It is perfect for sales teams, data enrichment pipelines, and CRM integrations.\n\n## What This Automation Does\n\n### Input Parameters\n\n- **Company domain**: The company's website domain (e.g., `example.com`).\n- **Airtop Profile (connected to LinkedIn)**: Your [Airtop Profile](https://portal.airtop.ai/browser-profiles) authenticated for LinkedIn.\n- **Company LinkedIn** *(optional)*: If already known, skips search.\n\n### Output Includes\n\n- Verified LinkedIn company URL (if not provided)\n- Company profile (name, tagline, website, location, about)\n- Scale metrics (employee count and bracket)\n- Classification (automation agency status, AI focus, technical level)\n- ICP score with justifications\n- Structured JSON object with all values merged\n\n## How It Works\n\n1. **LinkedIn Detection**: If not provided, attempts to locate the LinkedIn URL using website scraping or search.\n2. **Data Extraction**: Uses Airtop to gather structured data from the company\u2019s LinkedIn profile.\n3. **ICP Scoring**: Applies a scoring rubric based on AI/tech orientation, scale, agency status, and geography.\n4. **Merge Results**: All data components are merged into a unified output.\n\n## Setup Requirements\n\n1. [Airtop API Key](https://portal.airtop.ai/api-keys)\n2. [Airtop Profile](https://portal.airtop.ai/browser-profiles) with LinkedIn authentication\n\n## Next Steps\n\n- **Combine with Person Enrichment**: Pair with workflows that enrich individuals tied to the company.\n- **Sync to CRM**: Connect the output to your CRM for record enrichment or scoring fields.\n- **Adjust ICP Scoring Logic**: Modify the rubric for your organization's ICP model."
},
"typeVersion": 1
},
{
"id": "653010d1-8c28-4610-aa8a-8acb7df5c4af",
"name": "Is valid LinkedIn link?",
"type": "n8n-nodes-base.filter",
"position": [
800,
-100
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "55e08410-2042-4a1f-b833-06bf79afc964",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.company_linkedin }}",
"rightValue": "linkedin.com/company"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "e2b80e65-7143-4f5a-85a1-11a5722bdad1",
"name": "Unify Params",
"type": "n8n-nodes-base.set",
"position": [
220,
-40
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "f7e835ee-9c35-4461-83fa-23dbcea60e95",
"name": "company_domain",
"type": "string",
"value": "={{ $json[\"Company domain\"] }}"
},
{
"id": "fc73097b-1fae-4897-a951-70871366401d",
"name": "airtop_profile",
"type": "string",
"value": "={{ $json[\"Airtop Profile (connected to Linkedin)\"] }}"
},
{
"id": "9de7678e-d26f-4457-b7c3-159e6a3ec5ae",
"name": "company_linkedin",
"type": "string",
"value": "={{ $json[\"Company LinkedIn\"] }}"
}
]
}
},
"typeVersion": 3.4
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "78ab0589-075f-4788-96be-c39968a569e1",
"connections": {
"Calclate ICP": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 2
}
]
]
},
"Unify Params": {
"main": [
[
{
"node": "LinkedIn link exists?",
"type": "main",
"index": 0
}
]
]
},
"On form submission": {
"main": [
[
{
"node": "Unify Params",
"type": "main",
"index": 0
}
]
]
},
"LinkedIn link exists?": {
"main": [
[
{
"node": "Is valid LinkedIn link?",
"type": "main",
"index": 0
}
],
[
{
"node": "Extract company LinkedIn url",
"type": "main",
"index": 0
}
]
]
},
"Is valid LinkedIn link?": {
"main": [
[
{
"node": "Extract Company Information",
"type": "main",
"index": 0
},
{
"node": "Merge",
"type": "main",
"index": 1
},
{
"node": "Calclate ICP",
"type": "main",
"index": 0
}
]
]
},
"Extract Company Information": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 0
}
]
]
},
"Extract company LinkedIn url": {
"main": [
[
{
"node": "Is valid LinkedIn link?",
"type": "main",
"index": 0
}
]
]
},
"When Executed by Another Workflow": {
"main": [
[
{
"node": "Unify Params",
"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 automation identifies a company's LinkedIn profile, extracts key business data, and calculates an ICP (Ideal Customer Profile) score to qualify and enrich company records. It is perfect for sales teams, data enrichment pipelines, and CRM integrations. Company domain: The…
Source: https://n8n.io/workflows/4260/ — 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 automation enriches a person’s data using LinkedIn and calculates an Ideal Customer Profile (ICP) score based on their professional presence. It is particularly useful for lead qualification, con
Automatically responding to X (formerly Twitter) posts can help you engage with potential customers at scale, saving time while maintaining a personal touch.
Post on X. Uses airtop, executeWorkflowTrigger, stickyNote, formTrigger. Event-driven trigger; 9 nodes.
Seamlessly automate posting to X using Airtop and Make.
This automation scores companies based on their LinkedIn profile using custom Ideal Customer Profile (ICP) criteria. It’s ideal for qualifying B2B leads and prioritizing outreach based on fit.