{
  "id": "bB1VfLkZ793CWekn",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Enrich Company Data",
  "tags": [],
  "nodes": [
    {
      "id": "40a24c05-6a12-4f60-b70c-03354e0a5152",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        960,
        0
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": ""
      },
      "typeVersion": 1
    },
    {
      "id": "0365d1ef-a48f-4e04-8f50-ef731faa07bf",
      "name": "Company info",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        760,
        0
      ],
      "parameters": {
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "Ipc5s7U9UzuqexMI",
          "cachedResultName": "AIRTOP \u2014 Extract company data and calculate ICP"
        },
        "workflowInputs": {
          "value": {
            "Company domain": "={{ $json[\"Company domain\"] }}",
            "Company LinkedIn": "={{ $json[\"Company LinkedIn\"] }}",
            "Airtop Profile (connected to Linkedin)": "={{ $json[\"Airtop Profile (connected to Linkedin)\"] }}"
          },
          "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
            },
            {
              "id": "Company LinkedIn",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Company LinkedIn",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "409bf870-a1d3-433d-b0dd-46643a09d337",
      "name": "Save company Hubspot",
      "type": "n8n-nodes-base.executeWorkflow",
      "position": [
        1400,
        0
      ],
      "parameters": {
        "options": {},
        "workflowId": {
          "__rl": true,
          "mode": "list",
          "value": "I5o15J4MI1P1GRjh",
          "cachedResultName": "AIRTOP \u2014 Upsert company in Hubspot"
        },
        "workflowInputs": {
          "value": {
            "city": "={{ $json.city }}",
            "name": "={{ $json.name }}",
            "state": "={{ $json.state }}",
            "country": "={{ $json.country }}",
            "tagline": "={{ $json.tagline }}",
            "website": "={{ $json.website }}",
            "linkedin": "={{ $json.linkedin }}",
            "icp_score": "={{ $json.icp_score }}",
            "company_domain": "={{ $json.company_domain }}",
            "employee_count": "={{ $json.employee_count }}",
            "company_profile": "={{ $json.company_profile }}"
          },
          "schema": [
            {
              "id": "company_profile",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "company_profile",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "city",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "city",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_domain",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "company_domain",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "country",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "country",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "tagline",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "tagline",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "employee_count",
              "type": "number",
              "display": true,
              "required": false,
              "displayName": "employee_count",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "icp_score",
              "type": "number",
              "display": true,
              "required": false,
              "displayName": "icp_score",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "linkedin",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "linkedin",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "state",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "state",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "website",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "website",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": true
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "b0563618-a702-49f0-89ae-3af16d255851",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        460,
        -200
      ],
      "parameters": {
        "color": 4,
        "width": 220,
        "height": 460,
        "content": "## Keep only corporate emails"
      },
      "typeVersion": 1
    },
    {
      "id": "e0633395-62e4-433e-a231-450f4286a083",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        700,
        -200
      ],
      "parameters": {
        "color": 5,
        "width": 220,
        "height": 460,
        "content": "## Retrive company info"
      },
      "typeVersion": 1
    },
    {
      "id": "a7f17a76-df9f-4fe8-8ea4-ff3be9ba1311",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        940,
        -200
      ],
      "parameters": {
        "color": 6,
        "width": 640,
        "height": 460,
        "content": "## Save info in Hubspot"
      },
      "typeVersion": 1
    },
    {
      "id": "6e797623-203d-409c-85b6-740a4ebde4c4",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        80,
        -100
      ],
      "parameters": {
        "options": {},
        "formTitle": "New contact signup",
        "formFields": {
          "values": [
            {
              "fieldLabel": "Airtop Profile (connected to Linkedin)",
              "requiredField": true
            },
            {
              "fieldLabel": "Company domain",
              "requiredField": true
            },
            {
              "fieldLabel": "Company LinkedIn"
            }
          ]
        },
        "formDescription": "This automation searches for the contact's company and enriches the data accordingly"
      },
      "typeVersion": 2.2
    },
    {
      "id": "7fffe483-4e4e-4524-89cf-dbb83f430619",
      "name": "When Executed by Another Workflow",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        80,
        100
      ],
      "parameters": {
        "workflowInputs": {
          "values": [
            {
              "name": "Airtop Profile (connected to Linkedin)"
            },
            {
              "name": "Company domain"
            },
            {
              "name": "Company LinkedIn"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "fe563760-4e3b-4fdc-ba94-d09c28a8da33",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        40,
        -200
      ],
      "parameters": {
        "width": 400,
        "height": 460,
        "content": "## Input Parameters\nRun this workflow using a form or from another workflow"
      },
      "typeVersion": 1
    },
    {
      "id": "de64f719-7467-4a38-8f03-4bedacc89b4e",
      "name": "Unify Params",
      "type": "n8n-nodes-base.set",
      "position": [
        300,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "0033e14d-e1cc-45c8-a450-de8d60a33312",
              "name": "Airtop Profile (connected to Linkedin)",
              "type": "string",
              "value": "={{ $json[\"Airtop Profile (connected to Linkedin)\"] }}"
            },
            {
              "id": "f40df649-186c-4238-b331-00072a568683",
              "name": "Company domain",
              "type": "string",
              "value": "={{ $json[\"Company domain\"] }}"
            },
            {
              "id": "a855ff32-db29-4ef8-8a12-4db96ff84f67",
              "name": "Company LinkedIn",
              "type": "string",
              "value": "={{ $json[\"Company LinkedIn\"] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "1535a9d6-f0e9-4546-819f-5dad8519a55d",
      "name": "Map information",
      "type": "n8n-nodes-base.set",
      "position": [
        1180,
        0
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "d7709bb5-d093-4c3a-a081-ed555bcb4c8b",
              "name": "company_profile",
              "type": "string",
              "value": "={{ $json[\"\"][0].company_profile.overview }}"
            },
            {
              "id": "21ca7ea6-fb8c-4927-a0f1-9c2f66585627",
              "name": "city",
              "type": "string",
              "value": "={{ $json[\"\"][0].company_profile.location.city }}"
            },
            {
              "id": "f96d0cdf-52b0-466f-8202-4126659faba7",
              "name": "company_domain",
              "type": "string",
              "value": "={{ $('Is corporate email?').item.json[\"Company domain\"] }}"
            },
            {
              "id": "589b7797-7d80-4d15-9036-6fbe5490acc0",
              "name": "name",
              "type": "string",
              "value": "={{ $json[\"\"][0].company_profile.name }}"
            },
            {
              "id": "bc8d3dd6-61f5-4acf-9a51-0f2f8007517b",
              "name": "country",
              "type": "string",
              "value": "={{ $json[\"\"][0].company_profile.location.country }}"
            },
            {
              "id": "77f1dc98-ebde-47fa-91d1-85916e2b7b31",
              "name": "tagline",
              "type": "string",
              "value": "={{ $json[\"\"][0].company_profile.tagline }}"
            },
            {
              "id": "19565667-c14a-47ef-8a61-63d9cc600005",
              "name": "employee_count",
              "type": "number",
              "value": "={{ $json[\"\"][0].scale.employee_count }}"
            },
            {
              "id": "4493276c-313f-4981-80d2-e5c81aba0134",
              "name": "icp_score",
              "type": "number",
              "value": "={{ $json[\"\"][2].icp_company_score }}"
            },
            {
              "id": "5bf90342-4919-4330-bf82-2c47419980bd",
              "name": "linkedin",
              "type": "string",
              "value": "={{ $json[\"\"][1].company_linkedin }}"
            },
            {
              "id": "1a1b6850-c7ea-4060-8f97-a4b8410efc4f",
              "name": "state",
              "type": "string",
              "value": "={{ $json[\"\"][0].company_profile.location.state }}"
            },
            {
              "id": "d927bce2-823a-4e3c-80d9-b04bddaf440a",
              "name": "website",
              "type": "string",
              "value": "={{ $json[\"\"][0].company_profile.website }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "d3083a33-1a65-41e2-9458-d3563cecc110",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -840,
        -600
      ],
      "parameters": {
        "width": 860,
        "height": 1140,
        "content": "README\n\n# Automating Company Data Enrichment and HubSpot Integration\n\n## Use Case\n\nThis automation enriches company data based on email domain and LinkedIn profile, calculates an ICP (Ideal Customer Profile) score, and updates the corresponding company record in HubSpot. It\u2019s ideal for onboarding, qualification, and CRM enrichment.\n\n## What This Automation Does\n\n### Input Parameters\n\n- **Contact email**: Used to derive the company domain.\n- **Company domain**: Primary web domain of the company.\n- **Company LinkedIn** *(optional)*: LinkedIn URL for enrichment accuracy.\n- **Airtop Profile (connected to LinkedIn)**: An authenticated [Airtop Profile](https://portal.airtop.ai/browser-profiles).\n\n### What It Outputs\n\n- Full company profile (name, tagline, website, headquarters)\n- Employee count\n- ICP score based on AI/tech profile, scale, agency type, and location\n- Updates/creates record in HubSpot with all enriched attributes\n\n## How It Works\n\n1. **Input Validation**: Filters out non-corporate domains like Gmail, Yahoo, or .edu.\n2. **Enrichment Trigger**: Launches Airtop workflows to extract and analyze data from LinkedIn and calculate the ICP score.\n3. **Data Mapping**: Compiles structured fields including:\n   - Overview, location (city, state, country)\n   - Company website and domain\n   - LinkedIn URL, employee count\n   - ICP score\n4. **HubSpot Sync**: Sends all the enriched fields to the designated HubSpot object for upsertion.\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 active LinkedIn authentication\n3. HubSpot integration enabled for object updates\n\n## Next Steps\n\n- **Use in Webforms**: Trigger this on signup to auto-populate CRM records.\n- **Enrich Manually Entered Contacts**: Use with list-based workflows for batch enrichment.\n- **Sync to Other CRMs**: Replace HubSpot step with Salesforce, Pipedrive, etc. for flexible integration.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "4e5348ba-c285-4068-9d90-17bed5c752c4",
      "name": "Is corporate email?",
      "type": "n8n-nodes-base.filter",
      "position": [
        520,
        0
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "b42f06fe-5708-4e22-8202-7585230bbabb",
              "operator": {
                "type": "string",
                "operation": "notRegex"
              },
              "leftValue": "={{ $json[\"Company domain\"] }}",
              "rightValue": "=\\b(gmail|hotmail|yahoo|outlook|icloud|aol|protonmail|live|msn|ya)\\b"
            },
            {
              "id": "5128b950-9f99-419b-b34b-223382f2d4f2",
              "operator": {
                "type": "string",
                "operation": "notEndsWith"
              },
              "leftValue": "={{ $json[\"Company domain\"] }}",
              "rightValue": ".edu"
            }
          ]
        }
      },
      "typeVersion": 2.2
    }
  ],
  "active": false,
  "settings": {
    "callerPolicy": "workflowsFromSameOwner",
    "errorWorkflow": "jOzgI7as1gGhlZ91",
    "executionOrder": "v1"
  },
  "versionId": "a161b997-14a1-4951-89a6-98fba5fa5d78",
  "connections": {
    "Aggregate": {
      "main": [
        [
          {
            "node": "Map information",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Company info": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Unify Params": {
      "main": [
        [
          {
            "node": "Is corporate email?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Map information": {
      "main": [
        [
          {
            "node": "Save company Hubspot",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Unify Params",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is corporate email?": {
      "main": [
        [
          {
            "node": "Company info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When Executed by Another Workflow": {
      "main": [
        [
          {
            "node": "Unify Params",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}