AutomationFlowsAI & RAG › Enrich Linkedin Leads with Aimfox, Apify, Openai and Airtable

Enrich Linkedin Leads with Aimfox, Apify, Openai and Airtable

Byn8n Lab @n8n-lab on n8n.io

This workflow listens for Aimfox webhooks when a LinkedIn connection request is accepted, notifies a Slack channel, creates and enriches a lead in Airtable using Apify scrapers for profile/company data and website content, and uses OpenAI to generate a lead rating, outreach…

Webhook trigger★★★★☆ complexityAI-powered21 nodesSlackOpenAI ChatAirtable@Apify/N8N Nodes ApifyOutput Parser StructuredHTTP RequestAgent
AI & RAG Trigger: Webhook Nodes: 21 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #16282 — we link there as the canonical source.

This workflow follows the Agent → Airtable 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": "Dz68vUYYOeaiwzys",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Enrich new LinkedIn connections with Aimfox, Apify, OpenAI, and Airtable",
  "tags": [],
  "nodes": [
    {
      "id": "d0879a66-d98a-4330-a2fb-012e4269710b",
      "name": "Send a message",
      "type": "n8n-nodes-base.slack",
      "position": [
        -2688,
        48
      ],
      "parameters": {
        "text": "=*{{ $json.target.first_name }} {{ $json.target.last_name }}* accepted the connection request <https://www.linkedin.com/in/{{ $json.public_identifier }}|(view profile)>\nCampaign: *{{ $json.campaign.name }}* ({{ $json.account.first_name }})",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "name",
          "value": "aimfox-connections"
        },
        "otherOptions": {
          "includeLinkToWorkflow": false
        }
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.4
    },
    {
      "id": "2acf700a-48e8-4221-9279-32607eaa0795",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        -2912,
        48
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "06649d4b-348f-4173-a5f9-b269cc36f9bd",
              "name": "account.first_name",
              "type": "string",
              "value": "={{ $json.body.event.account.first_name }}"
            },
            {
              "id": "19fcb50e-9e99-4b7b-8ca4-218130645c08",
              "name": "campaign.name",
              "type": "string",
              "value": "={{ $json.body.event.campaign.name }}"
            },
            {
              "id": "5600eb7a-b529-43de-9aad-5045b159db71",
              "name": "target.first_name",
              "type": "string",
              "value": "={{ $json.body.event.target.first_name }}"
            },
            {
              "id": "3ea0c88d-aae7-447d-b601-ec7d5535693c",
              "name": "target.last_name",
              "type": "string",
              "value": "={{ $json.body.event.target.last_name }}"
            },
            {
              "id": "9a066648-a1c1-468a-b953-7dd6207ac2b5",
              "name": "target.email",
              "type": "string",
              "value": "={{ $json.body.event.target.email }}"
            },
            {
              "id": "978557f3-b0c6-4a6e-a994-35d96f6aa8db",
              "name": "public_identifier",
              "type": "string",
              "value": "={{ $json.body.event.target.public_identifier }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "3099e01a-7d73-49cb-8af6-1f0172b0136e",
      "name": "OpenAI Model - Parser2",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -512,
        224
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {},
        "builtInTools": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "7d846989-0676-4d5b-9186-c01d8b62faad",
      "name": "Create a record",
      "type": "n8n-nodes-base.airtable",
      "position": [
        -2384,
        48
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appNJiebykPa4MLQK",
          "cachedResultUrl": "https://airtable.com/appNJiebykPa4MLQK",
          "cachedResultName": "n8n Lab: Outbound June 2026 "
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblAp8DjmRfjr9H6k",
          "cachedResultUrl": "https://airtable.com/appNJiebykPa4MLQK/tblAp8DjmRfjr9H6k",
          "cachedResultName": "Imported table"
        },
        "columns": {
          "value": {
            "datum": "={{ $now.format('dd.LL.yyyy') }}",
            "LN url": "=https://www.linkedin.com/in/{{ $('Edit Fields').item.json.public_identifier }}",
            "Campaign": "={{ $('Edit Fields').item.json.account.first_name }} - {{ $('Edit Fields').item.json.campaign.name }}",
            "Full Name": "={{ $('Edit Fields').item.json.target.first_name }} {{ $('Edit Fields').item.json.target.last_name }}",
            "First Name": "={{ $('Edit Fields').item.json.target.first_name }}",
            "LN Connections": 0
          },
          "schema": [
            {
              "id": "Campaign",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Campaign",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Full Name",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Full Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "First Name",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "First Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "LN url",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "LN url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "datum",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "datum",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Country",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Country",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Headline",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Headline",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "About",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "About",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "LinkedIn posts",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "LinkedIn posts",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "LN Connections",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "LN Connections",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company Name",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Company Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company location",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Company location",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Tag line",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Tag line",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company Website",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Company Website",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company Linkedin",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Company Linkedin",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Industry/Expertise",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Industry/Expertise",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company employees",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Company employees",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company followers",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Company followers",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company posts",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Company posts",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Icp match",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Icp match",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Automation angle",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Automation angle",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Hooks",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Hooks",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "sent",
                  "value": "sent"
                },
                {
                  "name": "not contacted",
                  "value": "not contacted"
                },
                {
                  "name": "not fit",
                  "value": "not fit"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Time of sending",
              "type": "dateTime",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Time of sending",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "create"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "cafd2739-93cb-447f-97b3-9a15516ce20c",
      "name": "lead",
      "type": "@apify/n8n-nodes-apify.apify",
      "onError": "continueRegularOutput",
      "position": [
        -2128,
        48
      ],
      "parameters": {
        "actorId": {
          "__rl": true,
          "mode": "list",
          "value": "LpVuK3Zozwuipa5bp",
          "cachedResultUrl": "https://console.apify.com/actors/LpVuK3Zozwuipa5bp/input",
          "cachedResultName": "LinkedIn Profile Scraper + Email \u2705 No Cookies $4/$10 per 1k (harvestapi/linkedin-profile-scraper)"
        },
        "timeout": {},
        "operation": "Run actor and get dataset",
        "customBody": "={\n  \"profileScraperMode\": \"Profile details no email ($4 per 1k)\",\n  \"queries\": [\n    \"{{ $json.fields['LN url'] }}\"\n  ]\n}"
      },
      "credentials": {
        "apifyApi": {
          "name": "<your credential>"
        }
      },
      "executeOnce": false,
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "1efd9514-9157-46b9-826d-d1c3a7bb2e2d",
      "name": "leads post",
      "type": "@apify/n8n-nodes-apify.apify",
      "onError": "continueRegularOutput",
      "position": [
        -1904,
        48
      ],
      "parameters": {
        "actorId": {
          "__rl": true,
          "mode": "list",
          "value": "A3cAPGpwBEG8RJwse",
          "cachedResultUrl": "https://console.apify.com/actors/A3cAPGpwBEG8RJwse/input",
          "cachedResultName": "LinkedIn Profile Posts Scraper (No Cookies)\u26a1$2 per 1k (harvestapi/linkedin-profile-posts)"
        },
        "timeout": {},
        "operation": "Run actor and get dataset",
        "customBody": "={\n    \"includeQuotePosts\": true,\n    \"includeReposts\": false,\n    \"maxComments\": 0,\n    \"maxPosts\": 1,\n    \"maxReactions\": 0,\n    \"postNestedComments\": false,\n    \"postNestedReactions\": false,\n    \"scrapeComments\": false,\n    \"scrapeReactions\": false,\n    \"targetUrls\": [\n        \"{{ $json.linkedinUrl }}\"\n    ]\n}"
      },
      "credentials": {
        "apifyApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "85f71e96-91b6-4497-a0f3-14445c856f37",
      "name": "company",
      "type": "@apify/n8n-nodes-apify.apify",
      "onError": "continueRegularOutput",
      "position": [
        -1680,
        48
      ],
      "parameters": {
        "actorId": {
          "__rl": true,
          "mode": "list",
          "value": "UwSdACBp7ymaGUJjS",
          "cachedResultUrl": "https://console.apify.com/actors/UwSdACBp7ymaGUJjS/input",
          "cachedResultName": "Linkedin Company Details Scraper (No Cookies) \u2705 Bulk (harvestapi/linkedin-company)"
        },
        "timeout": {},
        "operation": "Run actor and get dataset",
        "customBody": "={\n  \"companies\": [\n    \"{{ $('lead').item.json.experience[0].companyLinkedinUrl }}\"\n  ]\n}"
      },
      "credentials": {
        "apifyApi": {
          "name": "<your credential>"
        }
      },
      "executeOnce": false,
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "202a3fe1-c0d0-4377-8993-0b7be11c7d19",
      "name": "company post",
      "type": "@apify/n8n-nodes-apify.apify",
      "onError": "continueRegularOutput",
      "position": [
        -1456,
        48
      ],
      "parameters": {
        "actorId": {
          "__rl": true,
          "mode": "list",
          "value": "A3cAPGpwBEG8RJwse",
          "cachedResultUrl": "https://console.apify.com/actors/A3cAPGpwBEG8RJwse/input",
          "cachedResultName": "LinkedIn Profile Posts Scraper (No Cookies)\u26a1$2 per 1k (harvestapi/linkedin-profile-posts)"
        },
        "timeout": {},
        "operation": "Run actor and get dataset",
        "customBody": "={\n    \"includeQuotePosts\": true,\n    \"includeReposts\": false,\n    \"maxComments\": 0,\n    \"maxPosts\": 1,\n    \"maxReactions\": 0,\n    \"postNestedComments\": false,\n    \"postNestedReactions\": false,\n    \"scrapeComments\": false,\n    \"scrapeReactions\": false,\n    \"targetUrls\": [\n        \"{{ $json.linkedinUrl }}\"\n    ]\n}"
      },
      "credentials": {
        "apifyApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "2650a8ed-6925-44fe-bdd4-5d5bb4dae754",
      "name": "Update record",
      "type": "n8n-nodes-base.airtable",
      "position": [
        -48,
        48
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appNJiebykPa4MLQK",
          "cachedResultUrl": "https://airtable.com/appNJiebykPa4MLQK",
          "cachedResultName": "n8n Lab: Outbound June 2026 "
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblAp8DjmRfjr9H6k",
          "cachedResultUrl": "https://airtable.com/appNJiebykPa4MLQK/tblAp8DjmRfjr9H6k",
          "cachedResultName": "Imported table"
        },
        "columns": {
          "value": {
            "id": "={{ $('Create a record').item.json.id }}",
            "About": "={{ $('prepare all data').item.json.about }}",
            "Hooks": "={{ $json.output.outreach_hooks }}",
            "Title": "={{ $('prepare all data').item.json.experience[0].position }}",
            "Status": "not contacted",
            "Country": "={{ $('prepare all data').item.json.leadlocation }}",
            "Headline": "={{ $('prepare all data').item.json.headline }}",
            "Tag line": "={{ $('prepare all data').item.json.tagline }}",
            "Icp match": "={{ $json.output.lead_rating }}",
            "Company Name": "={{ $('prepare all data').item.json.name }}",
            "Company posts": "={{ $('prepare all data').item.json.comppost }}",
            "LN Connections": "={{ $('prepare all data').item.json.connectionsCount }}",
            "LinkedIn posts": "={{ $('prepare all data').item.json.leadpost }}",
            "Company Website": "={{ $('prepare all data').item.json.website }}",
            "Automation angle": "={{ $json.output.automation_angles }}",
            "Company Linkedin": "={{ $('prepare all data').item.json.linkedinUrl }}",
            "Company location": "={{ $('prepare all data').item.json.locations[0].parsed.text }}",
            "Company employees": "={{ $('prepare all data').item.json.employeeCount }}",
            "Company followers": "={{ $('prepare all data').item.json.followerCount }}",
            "Industry/Expertise": "={{ $('prepare all data').item.json.industries[0].name }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "Campaign",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Campaign",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Full Name",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Full Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "First Name",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "First Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "LN url",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "LN url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "datum",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "datum",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Title",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Country",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Country",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Headline",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Headline",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "About",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "About",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "LinkedIn posts",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "LinkedIn posts",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "LN Connections",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "LN Connections",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company Name",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Company Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company location",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Company location",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Tag line",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Tag line",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company Website",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Company Website",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company Linkedin",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Company Linkedin",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Industry/Expertise",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Industry/Expertise",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company employees",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Company employees",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company followers",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Company followers",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company posts",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Company posts",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Icp match",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Icp match",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Automation angle",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Automation angle",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Hooks",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Hooks",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "sent",
                  "value": "sent"
                },
                {
                  "name": "not contacted",
                  "value": "not contacted"
                },
                {
                  "name": "not fit",
                  "value": "not fit"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Time of sending",
              "type": "dateTime",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Time of sending",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "retryOnFail": true,
      "typeVersion": 2.1,
      "waitBetweenTries": 5000
    },
    {
      "id": "b7292166-ca37-4d2c-a592-514372704393",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        -368,
        224
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"lead_rating\": \"\",\n  \"automation_angles\": \"\",\n  \"outreach_hooks\": \"\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "96caefa0-36f7-4c4c-9ab2-5d419ac519fa",
      "name": "Scrape website",
      "type": "n8n-nodes-base.httpRequest",
      "onError": "continueRegularOutput",
      "position": [
        -1232,
        48
      ],
      "parameters": {
        "url": "={{ $('company').item.json.website }}",
        "options": {}
      },
      "typeVersion": 4.3,
      "alwaysOutputData": true
    },
    {
      "id": "0aa5629f-4694-4bff-af3b-95ee8ee8c2e3",
      "name": "Convert to Markdown",
      "type": "n8n-nodes-base.markdown",
      "onError": "continueRegularOutput",
      "position": [
        -1008,
        48
      ],
      "parameters": {
        "html": "={{ $json.data }}",
        "options": {}
      },
      "typeVersion": 1,
      "alwaysOutputData": true
    },
    {
      "id": "3e181a73-b69c-4f8c-8e4f-d137e14c8e2a",
      "name": "Aimfox - Lead accepted connection request",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -3136,
        48
      ],
      "parameters": {
        "path": "d8c84403-1db0-4b49-aa6f-981a876cff5b",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2.1
    },
    {
      "id": "021e3334-b25c-4ecb-bafc-bf1c5db98a26",
      "name": "prepare all data",
      "type": "n8n-nodes-base.set",
      "onError": "continueRegularOutput",
      "position": [
        -784,
        48
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "23e0cd05-1cd0-4059-9e28-132d1f5a5a02",
              "name": "leadlinkedinUrl",
              "type": "string",
              "value": "={{ $('lead').item.json.linkedinUrl }}"
            },
            {
              "id": "441c9f01-c288-4fd2-98e6-58c51d8a943b",
              "name": "fullName",
              "type": "string",
              "value": "={{ $('lead').item.json.firstName }} {{ $('lead').item.json.lastName }}"
            },
            {
              "id": "b1349b3c-7766-4026-bacd-1f456336de91",
              "name": "headline",
              "type": "string",
              "value": "={{ $('lead').item.json.headline }}"
            },
            {
              "id": "29074c87-1066-411d-b186-8e83ccc91d43",
              "name": "leadlocation",
              "type": "string",
              "value": "={{ $('lead').item.json.location.linkedinText }}"
            },
            {
              "id": "c5dd8a2a-a422-4fca-a132-040686adf05b",
              "name": "connectionsCount",
              "type": "number",
              "value": "={{ $('lead').item.json.connectionsCount }}"
            },
            {
              "id": "1b0aab3b-528b-4cd0-9f91-de2383a602ce",
              "name": "about",
              "type": "string",
              "value": "={{ $('lead').item.json.about }}"
            },
            {
              "id": "cc168ba3-56cf-493d-b0b2-bc726b7cac1a",
              "name": "experience[0].position",
              "type": "string",
              "value": "={{ $('lead').item.json.experience[0].position }}"
            },
            {
              "id": "5e412524-ccd3-46bc-94cb-7e1c4cf58577",
              "name": "name",
              "type": "string",
              "value": "={{ $('company').item.json.name }}"
            },
            {
              "id": "25cfc5a2-6e39-4327-a88c-0d72caec6afa",
              "name": "tagline",
              "type": "string",
              "value": "={{ $('company').item.json.tagline }}"
            },
            {
              "id": "e176f4bb-463d-47e9-9d70-1e58ddb3fb07",
              "name": "website",
              "type": "string",
              "value": "={{ $('company').item.json.website }}"
            },
            {
              "id": "057589ba-5280-44e0-8018-9b97f47a77f2",
              "name": "linkedinUrl",
              "type": "string",
              "value": "={{ $('company').item.json.linkedinUrl }}"
            },
            {
              "id": "f408ef2c-b2e6-4979-a47b-77a5198bb1da",
              "name": "locations[0].parsed.text",
              "type": "string",
              "value": "={{ $('company').item.json.locations[0].parsed.text }}"
            },
            {
              "id": "fa34c433-937d-4e94-9a91-d60667bf933c",
              "name": "industries[0].name",
              "type": "string",
              "value": "={{ $('company').item.json.industries[0].name }}, {{ $('company').item.json.industries[0].hierarchy }}"
            },
            {
              "id": "fe4014a5-352f-4844-8b8c-2545ea7e5581",
              "name": "employeeCount",
              "type": "string",
              "value": "={{ $('company').item.json.employeeCount }} ({{ $('company').item.json.employeeCountRange.start }}-{{ $('company').item.json.employeeCountRange.end }})"
            },
            {
              "id": "c832cd2a-b4f7-43fd-98f3-25bd737f5518",
              "name": "followerCount",
              "type": "string",
              "value": "={{ $('company').item.json.followerCount }}"
            },
            {
              "id": "68defff3-5ad2-4f20-a4c1-a23c05c9f4d9",
              "name": "description",
              "type": "string",
              "value": "={{ $('company').item.json.description }}"
            },
            {
              "id": "d3bd0fc3-fd6c-41af-a3c8-796e6b3ff189",
              "name": "leadpost",
              "type": "string",
              "value": "={{ $('leads post').item.json.linkedinUrl }}"
            },
            {
              "id": "acb1a3ea-48e5-44d8-860f-e2e7329c15e9",
              "name": "comppost",
              "type": "string",
              "value": "={{ $('company post').item.json.linkedinUrl }}"
            }
          ]
        }
      },
      "typeVersion": 3.4,
      "alwaysOutputData": true
    },
    {
      "id": "c3287d10-54c3-4243-8c8c-e205f25bdbd5",
      "name": "Generate rating, hooks and outreach angles",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "onError": "continueRegularOutput",
      "position": [
        -512,
        48
      ],
      "parameters": {
        "text": "={{ $json }}",
        "options": {
          "systemMessage": "Generate three things:\n- Rating of a lead\n- Outreach angles or offering proposals \n- Three hooks for outreach based on their posts, website, and all the data "
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "retryOnFail": true,
      "typeVersion": 3.1,
      "alwaysOutputData": true,
      "waitBetweenTries": 5000
    },
    {
      "id": "770b1341-dc3f-4f15-99c9-bd70f9cdc216",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -560,
        -48
      ],
      "parameters": {
        "color": 7,
        "width": 368,
        "height": 256,
        "content": "### 4. AI Insights\nUse AI to generate outreach angles, hooks, and a lead rating from the prepared data.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "fc3c64ed-b470-4cb1-81d8-e8b9f49032fa",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3296,
        -48
      ],
      "parameters": {
        "color": 7,
        "width": 784,
        "height": 256,
        "content": "### 1. Trigger & Initialization  \nWebhook from Aimfox when a lead accepts a LinkedIn connection request.  \nBasic data is normalized and a notification is sent to Slack.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "f9c83c6e-5d65-4122-9fa1-45f542bef170",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        -48
      ],
      "parameters": {
        "color": 7,
        "width": 352,
        "height": 256,
        "content": "### 5. Airtable Update  \nUpdate the existing Airtable lead record with all enriched fields.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "b1cb45b8-ad40-475f-b792-871a4bd3ebba",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2144,
        -48
      ],
      "parameters": {
        "color": 7,
        "width": 1552,
        "height": 256,
        "content": "### 3. Data Collection & Preparation  \nScrape the lead, lead posts, company, company posts, and company website, convert content to markdown, and prepare all data for AI.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "dad95cb0-9a26-4395-85ad-e34850b345f3",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2496,
        -48
      ],
      "parameters": {
        "color": 7,
        "width": 342,
        "height": 256,
        "content": "### 2. Lead Record Creation  \nA new Airtable record is created for the lead.  \nKey fields are populated."
      },
      "typeVersion": 1
    },
    {
      "id": "22188dfd-7408-4cf7-874f-a35f54038a72",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -3952,
        -224
      ],
      "parameters": {
        "color": 7,
        "width": 592,
        "height": 1248,
        "content": "# [Aimfox](https://www.aimfox.com/) & [n8n Lab](https://n8nlab.io/): AI\u2011Powered Lead Enrichment for Accepted Connections\n\nThis flow automatically transforms every accepted LinkedIn connection into a fully researched, AI\u2011enriched lead inside Airtable. It listens to Aimfox webhooks, aggregates data from LinkedIn and the company website, prepares that data for AI, and then stores the final insights in a structured way that can power both manual and automated outreach.\n\n## Core Purpose & Value\n\nThe main goal of this automation is to remove the manual \u201cresearch\u201d phase before outreach. Instead of the team visiting profiles, reading posts, and scrolling through websites, the flow does it automatically and delivers a ready\u2011to\u2011use lead profile with suggested angles, hooks, and a priority rating. This saves time, standardizes how leads are evaluated, and makes it much easier to write relevant, personalized messages at scale.\n\n## What This Flow Does\n\n- **Listens** for accepted connection events from Aimfox and immediately logs them into Airtable as new lead records.  \n- **Collects** rich context by scraping the lead\u2019s profile, their posts, the company\u2019s profile, the company\u2019s posts, and the company website.  \n- **Converts** website content to markdown and prepares a clean, structured data package that is easy for AI to understand.  \n- **Sends** this context to an AI model that generates outreach angles, message hooks, and a rating that reflects how strong and relevant the lead is.  \n- **Updates** the Airtable record with both raw context and AI\u2011generated insights, so every lead becomes a single, centralized source of truth for your outreach.\n\n## How Users Can Work With It\n\nUse Airtable as your \u201clead control center\u201d \u2013 every accepted connection appears there with context and AI insights already filled in. For manual outreach, users can quickly scan the angles and hooks fields to craft personalized messages without doing additional research. For automated outreach, the same AI\u2011generated fields can be mapped into templates or sequences in Aimfox, so campaigns stay relevant at scale. Over time, prompts and scraping logic can be adjusted to better match the ICP, offers, and current campaigns.\n\n## Tool Stack\n\n- **Aimfox** \u2013 triggers the flow when a connection request is accepted  \n- **n8n** \u2013 orchestrates all steps in the automation  \n- **Slack** \u2013 receives team notifications about new leads  \n- **Airtable** \u2013 stores and organizes all lead data  \n- **appify** \u2013 handles scraping from LinkedIn and websites  \n- **OpenAI** \u2013 generates angles, hooks, and lead ratings"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "26d0fa6a-d266-446b-8d44-ee0f8957a9d6",
  "connections": {
    "lead": {
      "main": [
        [
          {
            "node": "leads post",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "company": {
      "main": [
        [
          {
            "node": "company post",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "leads post": {
      "main": [
        [
          {
            "node": "company",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "company post": {
      "main": [
        [
          {
            "node": "Scrape website",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape website": {
      "main": [
        [
          {
            "node": "Convert to Markdown",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Send a message": {
      "main": [
        [
          {
            "node": "Create a record",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a record": {
      "main": [
        [
          {
            "node": "lead",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "prepare all data": {
      "main": [
        [
          {
            "node": "Generate rating, hooks and outreach angles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to Markdown": {
      "main": [
        [
          {
            "node": "prepare all data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Model - Parser2": {
      "ai_languageModel": [
        [
          {
            "node": "Generate rating, hooks and outreach angles",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Generate rating, hooks and outreach angles",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Aimfox - Lead accepted connection request": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate rating, hooks and outreach angles": {
      "main": [
        [
          {
            "node": "Update record",
            "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.

Pro

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

About this workflow

This workflow listens for Aimfox webhooks when a LinkedIn connection request is accepted, notifies a Slack channel, creates and enriches a lead in Airtable using Apify scrapers for profile/company data and website content, and uses OpenAI to generate a lead rating, outreach…

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

More AI & RAG workflows → · Browse all categories →

Related workflows

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

AI & RAG

Automate candidate evaluation from CV submission to interview booking. Perfect for HR teams and recruiters.

Airtable, HTTP Request, Information Extractor +6
AI & RAG

• Webhook receives lead form submissions from your website • AI Agent (GPT-4o) analyzes lead quality using intelligent scoring framework • Clearbit enriches company data automatically (employee count,

Agent, Execute Workflow Trigger, HTTP Request +6
AI & RAG

This workflow automatically processes new free-trial / lead sign-ups in real time: Catches a webhook from any source (Webflow form, Intercom, custom agent, etc.) Filters out personal / disposable / .e

Output Parser Structured, Agent, HTTP Request +7
AI & RAG

Public-facing professionals (developer advocates, founders, marketers, content creators) who get bombarded with LinkedIn messages that aren't actually for them - support requests when you're in market

Slack, HTTP Request, Agent +4
AI & RAG

This workflow generates comprehensive B2B leads, from a selected Business type in ANY CITY IN THE WORLD, including: Company name; Website; Email (enriched with AI Agent); Phone number; Address; Main L

Output Parser Structured, Memory Buffer Window, Agent +8