AutomationFlowsGeneral › Extract Person Data and Calculate Icp Score with Airtop

Extract Person Data and Calculate Icp Score with Airtop

ByAirtop @cesar-at-airtop on n8n.io

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, contact research, and targeted outreach.

Event trigger★★★★☆ complexity12 nodesForm TriggerExecute Workflow Trigger
General Trigger: Event Nodes: 12 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #4256 — 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 →

Download .json
{
  "id": "UY2lflocNrJbhBkQ",
  "name": "Extract person data and calculate ICP",
  "tags": [],
  "nodes": [
    {
      "id": "dab22b77-5792-48a8-9827-360b39a1f4d3",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -40,
        40
      ],
      "parameters": {
        "options": {},
        "formTitle": "Linkedin Profile Extractor",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Person Name",
              "requiredField": true
            },
            {
              "fieldLabel": "Work Email",
              "requiredField": true
            },
            {
              "fieldLabel": "Airtop Profile (connected to Linkedin)",
              "requiredField": true
            }
          ]
        },
        "formDescription": "<h2>Enrich New User's Data</h2>\n<p>This automation adds important information about a customer using name and work email address</p>\n\n<p>The automation requires an Airtop Profile name that is authenticated on Linkedin. Don't have one? Create a free Profile and log-in to X at - <a href=\"https://portal.airtop.ai/browser-profiles\">https://portal.airtop.ai/browser-profiles</a></p>\n"
      },
      "typeVersion": 2.2
    },
    {
      "id": "c6cbab26-ea9b-4574-aa6c-7f91b8f0302c",
      "name": "When Executed by Another Workflow",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        -40,
        240
      ],
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "person_name"
            },
            {
              "name": "work_email"
            },
            {
              "name": "Airtop_profile"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "b31a18d5-c85d-4664-95d4-190450cdb6ab",
      "name": "Unify Parameters",
      "type": "n8n-nodes-base.set",
      "position": [
        180,
        140
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e612bf63-72bd-4b61-82c9-786a90b58b7b",
              "name": "Person_name",
              "type": "string",
              "value": "={{ $json[\"Person Name\"] || $json.person_name }}"
            },
            {
              "id": "b8287f93-4ea5-40af-be1b-80ced616ec1a",
              "name": "Work_email",
              "type": "string",
              "value": "={{ $json[\"Work Email\"] || $json.work_email }}"
            },
            {
              "id": "567e5e7d-4efd-4d0a-a93c-6c7aed02c305",
              "name": "Airtop_profile",
              "type": "string",
              "value": "={{ $json[\"Airtop Profile (connected to Linkedin)\"] || $json.Airtop_profile }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "0f7dfe34-b88d-4be0-96fd-a54044f332f9",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -100,
        -40
      ],
      "parameters": {
        "width": 660,
        "height": 480,
        "content": "## Input Parameters\n** Run this workflow using a form or from another workflow"
      },
      "typeVersion": 1
    },
    {
      "id": "5848a514-c1e5-4265-a771-3e0de46eb1f5",
      "name": "Extract Person Data",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        1060,
        0
      ],
      "parameters": {
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "OGfsyvA3tBbLytSo",
          "cachedResultName": "AIRTOP \u2014 Extract LinkedIn Profile Information"
        },
        "workflowInputs": {
          "value": {
            "Linkedin_URL": "={{ $('Find Person Linkedin URL').item.json.data.modelResponse }}",
            "Airtop_profile": "={{ $('Unify Parameters').item.json.Airtop_profile }}"
          },
          "schema": [
            {
              "id": "Linkedin_URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Linkedin_URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Airtop_profile",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Airtop_profile",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "c702cf9a-ccb6-47c0-8af6-4c3b6d76894b",
      "name": "Find Person Linkedin URL",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        620,
        140
      ],
      "parameters": {
        "mode": "each",
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "BTxosiCF2PaCkBWJ",
          "cachedResultName": "AIRTOP \u2014 LinkedIn Profile Discovery w Verification"
        },
        "workflowInputs": {
          "value": {
            "Person_info": "={{ $json.Person_name }} - {{ $json.Work_email }}",
            "Airtop_profile": "={{ $json.Airtop_profile }}"
          },
          "schema": [
            {
              "id": "Person_info",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Person_info",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Airtop_profile",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Airtop_profile",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "db7f2856-4087-4bb7-a955-258b1ba6e96e",
      "name": "ICP Scoring",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        1060,
        260
      ],
      "parameters": {
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "io8TtPZaVjpZaVrf",
          "cachedResultName": "AIRTOP \u2014 Person ICP Scoring with Linkedin"
        },
        "workflowInputs": {
          "value": {
            "Linkedin_URL": "={{ $('Find Person Linkedin URL').item.json.data.modelResponse }}",
            "Airtop_profile": "={{ $('Unify Parameters').item.json.Airtop_profile }}"
          },
          "schema": [
            {
              "id": "Linkedin_URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Linkedin_URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Airtop_profile",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Airtop_profile",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "3aaa689c-aedb-4d40-b7c4-fb50ab805ed1",
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        1280,
        140
      ],
      "parameters": {
        "numberInputs": 3
      },
      "typeVersion": 3.1
    },
    {
      "id": "85d13c4c-4ed7-48a4-a3a2-d5d8c0dd90b3",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        580,
        -40
      ],
      "parameters": {
        "color": 4,
        "width": 860,
        "height": 480,
        "content": "## Enrich Person Data\n** Find Linkedin Profile, extract all information and calculate ICP score"
      },
      "typeVersion": 1
    },
    {
      "id": "dac0877b-b090-41f8-a1bc-72f9051420f9",
      "name": "Is corporate email?",
      "type": "n8n-nodes-base.filter",
      "position": [
        400,
        140
      ],
      "parameters": {
        "options": {
          "ignoreCase": true
        },
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": false,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "e1d8bcc5-dfd1-466b-acfb-afc7a31f6539",
              "operator": {
                "type": "string",
                "operation": "notEndsWith"
              },
              "leftValue": "={{ $json.Work_email }}",
              "rightValue": "@gmail.com"
            },
            {
              "id": "92883c4b-0753-40c2-8508-68ac70eb92a9",
              "operator": {
                "type": "string",
                "operation": "notEndsWith"
              },
              "leftValue": "={{ $json.Work_email }}",
              "rightValue": "@qq.com"
            },
            {
              "id": "4f457d3d-1a88-42bb-a296-abce7ffaba68",
              "operator": {
                "type": "string",
                "operation": "notContains"
              },
              "leftValue": "={{ $json.Work_email }}",
              "rightValue": "@hotmail."
            },
            {
              "id": "976a267e-ac44-429f-965b-beac68eb5aac",
              "operator": {
                "type": "string",
                "operation": "notEndsWith"
              },
              "leftValue": "={{ $json.Work_email }}",
              "rightValue": "@proton.me"
            },
            {
              "id": "8a5de40e-d533-444a-b8bf-fbdffde19d89",
              "operator": {
                "type": "string",
                "operation": "notContains"
              },
              "leftValue": "={{ $json.Work_email }}",
              "rightValue": "@msn."
            },
            {
              "id": "96903481-2bc1-4445-a9c8-240f49551e30",
              "operator": {
                "type": "string",
                "operation": "notContains"
              },
              "leftValue": "={{ $json.Work_email }}",
              "rightValue": "@yahoo."
            },
            {
              "id": "39c6a4f8-dd44-4809-b530-073755b5a791",
              "operator": {
                "type": "string",
                "operation": "notContains"
              },
              "leftValue": "={{ $json.Work_email }}",
              "rightValue": "@aol."
            },
            {
              "id": "d9ad3a5b-0407-42a2-b5a2-a8ae9735dfcf",
              "operator": {
                "type": "string",
                "operation": "notEndsWith"
              },
              "leftValue": "={{ $json.Work_email }}",
              "rightValue": ".edu"
            },
            {
              "id": "11cdc4db-8f55-4de2-a60e-d41545acce5c",
              "operator": {
                "type": "string",
                "operation": "notEndsWith"
              },
              "leftValue": "={{ $json.Work_email }}",
              "rightValue": ".net"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "49915a61-79d0-492d-ae2b-5281a216f1d8",
      "name": "Is valid Linkedin URL?",
      "type": "n8n-nodes-base.filter",
      "position": [
        840,
        140
      ],
      "parameters": {
        "options": {
          "ignoreCase": true
        },
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": false,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "c4c7e69b-3823-430f-82e6-83b0ebd0a5e5",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $json.data.modelResponse }}",
              "rightValue": ""
            },
            {
              "id": "340f952e-7922-4597-9a32-6b5c60f79dc7",
              "operator": {
                "type": "string",
                "operation": "notStartsWith"
              },
              "leftValue": "={{ $json.data.modelResponse }}",
              "rightValue": "NA"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "6a34a9ec-b2a6-492b-8c26-3898139dd0d7",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -820,
        -280
      ],
      "parameters": {
        "width": 700,
        "height": 1040,
        "content": "README\n\n# Automating LinkedIn Enrichment and ICP Scoring\n\n## Use Case\n\nThis automation enriches a person\u2019s data using LinkedIn and calculates an Ideal Customer Profile (ICP) score based on their professional presence. It is particularly useful for lead qualification, contact research, and targeted outreach.\n\n## What This Automation Does\n\nThe automation processes the following input parameters:\n\n- **Person Name**: Full name of the individual.\n- **Work Email**: Business email address to validate corporate identity.\n- **Airtop Profile (connected to Linkedin)**: A [LinkedIn-authenticated Airtop Profile](https://portal.airtop.ai/browser-profiles) for enrichment.\n\n## How It Works\n\n1. **Email Filtering**: Checks if the email is corporate (excludes free and personal domains).\n2. **LinkedIn Profile Discovery**: Searches and verifies the correct LinkedIn URL using Airtop.\n3. **Data Enrichment**: Extracts professional details from the LinkedIn profile.\n4. **ICP Scoring**: Calculates an ICP score based on extracted data and profile context.\n5. **Merge Outputs**: Consolidates enriched profile data and ICP results into a single output.\n\n## Setup Requirements\n\n1. [Airtop API Key](https://portal.airtop.ai/api-keys)\n2. An [Airtop Profile](https://portal.airtop.ai/browser-profiles) authenticated on LinkedIn.\n\n## Next Steps\n\n- **Combine with CRM Integration**: Push enriched and scored data into CRMs like HubSpot or Salesforce.\n- **Batch Processing**: Automate for lists of leads using Airtop + n8n or Airtop SDK.\n- **Scoring Customization**: Adjust scoring logic to reflect your ideal customer attributes more precisely.\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "9d019e18-0c9e-4fc4-8e2e-27d7154316bc",
  "connections": {
    "ICP Scoring": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Unify Parameters": {
      "main": [
        [
          {
            "node": "Is corporate email?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Unify Parameters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Person Data": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is corporate email?": {
      "main": [
        [
          {
            "node": "Find Person Linkedin URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is valid Linkedin URL?": {
      "main": [
        [
          {
            "node": "Extract Person Data",
            "type": "main",
            "index": 0
          },
          {
            "node": "ICP Scoring",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Find Person Linkedin URL": {
      "main": [
        [
          {
            "node": "Is valid Linkedin URL?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When Executed by Another Workflow": {
      "main": [
        [
          {
            "node": "Unify Parameters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

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, contact research, and targeted outreach.

Source: https://n8n.io/workflows/4256/ — original creator credit. Request a take-down →

More General workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

General

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

Form Trigger, Execute Workflow Trigger
General

Automatically responding to X (formerly Twitter) posts can help you engage with potential customers at scale, saving time while maintaining a personal touch.

Execute Workflow Trigger, Airtop, Form Trigger
General

Post on X. Uses airtop, executeWorkflowTrigger, stickyNote, formTrigger. Event-driven trigger; 9 nodes.

Airtop, Execute Workflow Trigger, Form Trigger
General

Seamlessly automate posting to X using Airtop and Make.

Airtop, Execute Workflow Trigger, Form Trigger
General

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.

Form Trigger, Airtop, Execute Workflow Trigger