AutomationFlowsWeb Scraping › Automatically Enrich Salesforce Accounts with Web Crawling, Linkedin Data, Gpt

Automatically Enrich Salesforce Accounts with Web Crawling, Linkedin Data, Gpt

ByLe Nguyen @leeseifer on n8n.io

Crawl the web, mine LinkedIn, think with GPT, and auto‑enrich Salesforce—all inside n8n. Listen – Trigger on new Salesforce Accounts. Discover – Crawl the company site (depth-limited) + grab/parse LinkedIn. Distill – GPT (JSON mode) returns a clean insight object + HTML summary.…

Event trigger★★★★★ complexityAI-powered30 nodesHTTP RequestSalesforce TriggerSalesforceOpenAI
Web Scraping Trigger: Event Nodes: 30 Complexity: ★★★★★ AI nodes: yes Added:

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

This workflow follows the HTTP Request → OpenAI 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": "UuI8GjOvaIAFAZNO",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "My workflow 12",
  "tags": [],
  "nodes": [
    {
      "id": "0880fc81-3ac6-4188-be5a-1a3f3047ec3a",
      "name": "Fetch HTML Page",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Makes HTTP request to fetch the content of the current URL.",
      "onError": "continueRegularOutput",
      "position": [
        -5620,
        -585
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "37d6cd45-11d4-4e27-90ef-12c22ff4764b",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -7160,
        260
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "300138cc-06bb-4441-a8fa-7b4b4797c133",
      "name": "SF: On Account Created",
      "type": "n8n-nodes-base.salesforceTrigger",
      "position": [
        -6720,
        -310
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "dbe7d31c-13b8-4753-95c4-cc3ffe3f89f3",
      "name": "SF: Get Account",
      "type": "n8n-nodes-base.salesforce",
      "position": [
        -6500,
        -310
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "98b5b440-7220-42d8-90b3-ada3b6bd68f9",
      "name": "Init Crawl Params",
      "type": "n8n-nodes-base.set",
      "notes": "Defines the root URL, domain name, and max crawl depth.",
      "position": [
        -6280,
        -510
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "6f994d65-82a3-4fd0-af3a-65f422d8bc4d",
      "name": "Init Globals",
      "type": "n8n-nodes-base.code",
      "notes": "Initializes the pending count in static data for crawl completion tracking.",
      "position": [
        -6060,
        -510
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "31441d36-3eb7-4f03-924b-e993f111c066",
      "name": "Prep LinkedIn Search Inputs",
      "type": "n8n-nodes-base.set",
      "position": [
        -5840,
        -60
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "ddd74792-6f92-414f-818f-63cbf485168d",
      "name": "IF LInkedin URL Missing?",
      "type": "n8n-nodes-base.if",
      "position": [
        -5620,
        -60
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "d0b8f6eb-c1b2-4df2-9ada-201e11342afc",
      "name": "DDG Search (LinkedIn)",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -5400,
        -160
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "569c3c50-ca71-4254-b3fc-618c61fd66b3",
      "name": "Parse LinkedIn URL",
      "type": "n8n-nodes-base.code",
      "position": [
        -5180,
        -160
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "07da164e-7abd-4cce-9ea4-b52ca6b54f41",
      "name": "Use Provided URL (Fallback)",
      "type": "n8n-nodes-base.code",
      "position": [
        -5180,
        40
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "44ac3160-3f3f-47e1-be3d-6f069689e3ed",
      "name": "Merge LinkedIn URL Branches",
      "type": "n8n-nodes-base.merge",
      "position": [
        -4960,
        -60
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "d88b89e6-e460-4548-8556-70640ee8394a",
      "name": "Fetch LinkedIn HTML1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -4740,
        -60
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "a56711f5-5cd9-47ca-9c17-db8119a074ff",
      "name": "Extract LinkedIn Body",
      "type": "n8n-nodes-base.html",
      "position": [
        -4520,
        -60
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "72625098-dd8e-475b-91dc-eb8f7408b633",
      "name": "Parse LinkedIn Company Info",
      "type": "n8n-nodes-base.code",
      "position": [
        -4300,
        -60
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "59febd52-b3ad-4a68-84fb-521fa519eee0",
      "name": "Seed Root Crawl Item",
      "type": "n8n-nodes-base.merge",
      "position": [
        -5840,
        -510
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "fdb0dfaa-72fd-4ce4-bb72-18e528e5e424",
      "name": "Attach URL/Depth to HTML",
      "type": "n8n-nodes-base.code",
      "position": [
        -5400,
        -585
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "9f900eb8-4135-4568-b092-25d2cfeec572",
      "name": "Extract Body & Links",
      "type": "n8n-nodes-base.html",
      "notes": "Parses HTML content and extracts body text and anchor href links.",
      "position": [
        -5180,
        -585
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "24ed0fff-18e3-4f28-89d2-89444d925c13",
      "name": "Queue & Dedup Links",
      "type": "n8n-nodes-base.code",
      "notes": "Cleans and deduplicates links. Tracks visited URLs. Prepares next crawl queue.",
      "onError": "continueRegularOutput",
      "position": [
        -4960,
        -585
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "a43c0137-7b90-4f85-8856-ea12f70beb2c",
      "name": "IF Crawl Depth OK?",
      "type": "n8n-nodes-base.if",
      "notes": "Validates whether the current depth is below the maximum depth allowed.",
      "onError": "continueRegularOutput",
      "position": [
        -4740,
        -585
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "b82eeddd-7519-497a-a31a-019c34179fc0",
      "name": "Requeue Link Item",
      "type": "n8n-nodes-base.code",
      "notes": "Removes internal 'type' field and re-enqueues the link for next crawl.",
      "position": [
        -4520,
        -660
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "5aa5ff4c-380a-402b-832a-dbbc25abdb97",
      "name": "Loop Links (Batches)",
      "type": "n8n-nodes-base.splitInBatches",
      "notes": "Iterates through the queue of links to be crawled one at a time.",
      "position": [
        -4300,
        -660
      ],
      "parameters": {},
      "executeOnce": false,
      "typeVersion": 1
    },
    {
      "id": "e66a22c6-be74-4b58-9d12-793c5713d279",
      "name": "Store Page Data",
      "type": "n8n-nodes-base.set",
      "notes": "Captures the URL, page content, and depth for storage or export.",
      "position": [
        -4520,
        -460
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "c1a8638c-35ae-40bc-8dce-b771b77dd779",
      "name": "Collect Pages & Emit When Done",
      "type": "n8n-nodes-base.code",
      "position": [
        -4300,
        -460
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "9837029f-c7c3-4fad-be18-6a89ac7790bc",
      "name": "Merge Web Pages + LinkedIn JSON",
      "type": "n8n-nodes-base.merge",
      "position": [
        -4080,
        -210
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "7922088b-e3fe-4e1b-8dd9-dc327040b9c2",
      "name": "Combine & Chunk for LLM",
      "type": "n8n-nodes-base.code",
      "position": [
        -3860,
        -210
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "9a752c16-445e-455c-a75b-dabb96c476e4",
      "name": "Build LLM Prompt",
      "type": "n8n-nodes-base.code",
      "position": [
        -3640,
        -210
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "2c4d9fd7-b895-4c34-a71b-cc1fd0af1cd6",
      "name": "OpenAI: Generate Insights",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        -3420,
        -210
      ],
      "parameters": {},
      "typeVersion": 1.8
    },
    {
      "id": "8a3efe35-9bbd-4028-ab10-666dc6b09efb",
      "name": "Salesforce",
      "type": "n8n-nodes-base.salesforce",
      "position": [
        -3044,
        -210
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "bdb57a9a-49b0-41e9-97ed-737353df5fce",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -6260,
        360
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "61900d2b-ac2d-489e-b325-290d3b95caad",
  "connections": {
    "Init Globals": {
      "main": [
        [
          {
            "node": "Seed Root Crawl Item",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch HTML Page": {
      "main": [
        [
          {
            "node": "Attach URL/Depth to HTML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "SF: Get Account": {
      "main": [
        [
          {
            "node": "Init Crawl Params",
            "type": "main",
            "index": 0
          },
          {
            "node": "Prep LinkedIn Search Inputs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Store Page Data": {
      "main": [
        [
          {
            "node": "Collect Pages & Emit When Done",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build LLM Prompt": {
      "main": [
        [
          {
            "node": "OpenAI: Generate Insights",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Init Crawl Params": {
      "main": [
        [
          {
            "node": "Init Globals",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Requeue Link Item": {
      "main": [
        [
          {
            "node": "Loop Links (Batches)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF Crawl Depth OK?": {
      "main": [
        [
          {
            "node": "Requeue Link Item",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Store Page Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse LinkedIn URL": {
      "main": [
        [
          {
            "node": "Merge LinkedIn URL Branches",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Queue & Dedup Links": {
      "main": [
        [
          {
            "node": "IF Crawl Depth OK?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Body & Links": {
      "main": [
        [
          {
            "node": "Queue & Dedup Links",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch LinkedIn HTML1": {
      "main": [
        [
          {
            "node": "Extract LinkedIn Body",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Links (Batches)": {
      "main": [
        [
          {
            "node": "Seed Root Crawl Item",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Seed Root Crawl Item": {
      "main": [
        [
          {
            "node": "Fetch HTML Page",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "DDG Search (LinkedIn)": {
      "main": [
        [
          {
            "node": "Parse LinkedIn URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract LinkedIn Body": {
      "main": [
        [
          {
            "node": "Parse LinkedIn Company Info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "SF: On Account Created": {
      "main": [
        [
          {
            "node": "SF: Get Account",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine & Chunk for LLM": {
      "main": [
        [
          {
            "node": "Build LLM Prompt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Attach URL/Depth to HTML": {
      "main": [
        [
          {
            "node": "Extract Body & Links",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "IF LInkedin URL Missing?": {
      "main": [
        [
          {
            "node": "DDG Search (LinkedIn)",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Use Provided URL (Fallback)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI: Generate Insights": {
      "main": [
        [
          {
            "node": "Salesforce",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge LinkedIn URL Branches": {
      "main": [
        [
          {
            "node": "Fetch LinkedIn HTML1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse LinkedIn Company Info": {
      "main": [
        [
          {
            "node": "Merge Web Pages + LinkedIn JSON",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Prep LinkedIn Search Inputs": {
      "main": [
        [
          {
            "node": "IF LInkedin URL Missing?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Use Provided URL (Fallback)": {
      "main": [
        [
          {
            "node": "Merge LinkedIn URL Branches",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Collect Pages & Emit When Done": {
      "main": [
        [
          {
            "node": "Merge Web Pages + LinkedIn JSON",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Web Pages + LinkedIn JSON": {
      "main": [
        [
          {
            "node": "Combine & Chunk for LLM",
            "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

Crawl the web, mine LinkedIn, think with GPT, and auto‑enrich Salesforce—all inside n8n. Listen – Trigger on new Salesforce Accounts. Discover – Crawl the company site (depth-limited) + grab/parse LinkedIn. Distill – GPT (JSON mode) returns a clean insight object + HTML summary.…

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

More Web Scraping workflows → · Browse all categories →

Related workflows

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

Web Scraping

This workflow is Part 2 of the HR Client Acquisition system and builds on the lead discovery pipeline from the previous workflow:

Google Sheets, HTTP Request, OpenAI +2
Web Scraping

Product - SERP Analysis (Serper + Firecrawl). Uses formTrigger, httpRequest, googleSheets, openAi. Event-driven trigger; 40 nodes.

Form Trigger, HTTP Request, Google Sheets +1
Web Scraping

Product - SERP Analysis (Serper & Crawl4AI). Uses formTrigger, httpRequest, googleSheets, openAi. Event-driven trigger; 39 nodes.

Form Trigger, HTTP Request, Google Sheets +1
Web Scraping

Product - SERP Analysis (SerpAPI + Crawl4AI). Uses formTrigger, httpRequest, googleSheets, openAi. Event-driven trigger; 38 nodes.

Form Trigger, HTTP Request, Google Sheets +1
Web Scraping

Categories: PPC Automation, Creative Generation, Competitive Intelligence

Google Drive, HTTP Request, OpenAI +1