🔓 Unlock all 10,000+ workflows & prompts free Join Newsletter →
✅ Full access unlocked — explore all 10,000 AI workflow and prompt templates Browse Templates →
Home n8n Workflow
January 22, 2026

LinkedIn to HubSpot, enriched leads with AI notes

Lisa Granqvist Partner Workflow Automation Expert

Your CRM is full of “leads,” but not enough context. You open a contact in HubSpot, then jump to LinkedIn, then back to HubSpot, then to a doc. You lose the thread. And you still have to write a decent first message.

This is where HubSpot lead enrichment hits hardest for sales ops and demand gen teams. Agency folks doing outbound feel it too, because every client expects “personalized outreach” at scale. The outcome is simple: each contact gets a LinkedIn URL plus AI-written notes you can actually use.

This workflow pulls LinkedIn data, summarizes it, and updates HubSpot (or Pipedrive) automatically. You’ll see what it fixes, how it runs, what you need, and what to tweak so the AI notes match your voice.

How This Automation Works

See how this solves the problem:

n8n Workflow Template: LinkedIn to HubSpot, enriched leads with AI notes

The Challenge: Researching Every Lead Without Losing Hours

“Do a bit of LinkedIn research before you reach out” sounds reasonable until you have 30 new contacts to touch. Now you’re hunting for the right profile, scanning job history, guessing what matters, and trying to turn that into a message without sounding creepy. It’s not just time. It’s context switching, duplicate tabs, and inconsistent notes that never make it back into the CRM. And when the team scales, the quality drops fast because everyone researches differently.

It adds up fast. Here’s where it breaks down in day-to-day work.

  • You waste about 10 minutes per lead just finding the correct LinkedIn profile and confirming it’s the right person.
  • Notes live in random places (a doc, a Slack DM, a browser tab), so the next person who touches the lead starts from zero.
  • Outreach gets generic because nobody has time to summarize a profile and recent posts consistently.
  • Manual copy-paste into HubSpot fields causes mistakes, and those mistakes quietly poison segmentation and follow-ups.

The Fix: LinkedIn Research That Writes Back Into HubSpot

This automation watches for new or updated contacts in your CRM, then enriches them with LinkedIn context automatically. When a contact comes in (or when you flag them as “needs enrichment”), the workflow tries to find their LinkedIn profile using the email first. If that fails, it falls back to a smarter search using name and company data. Once it finds a match, it pulls profile details and recent activity, then hands that raw info to an AI agent. The AI turns it into clean, skimmable notes and updates your HubSpot contact record with the LinkedIn URL, a professional summary, and a posts/activity summary.

The workflow starts from HubSpot or Pipedrive triggers. From there, AnySite’s LinkedIn node collects profile and post data, and an OpenAI-powered agent summarizes what matters. Finally, HubSpot gets updated with consistent properties that your team can use for outreach, routing, and segmentation.

What Changes: Before vs. After

Real-World Impact

Say your team adds 20 new contacts a week into HubSpot from forms, events, and list uploads. If you spend roughly 10 minutes finding the right LinkedIn profile and another 10 minutes writing a usable summary, that’s about 6 hours weekly. With this workflow, the “work” becomes tagging a contact for enrichment (or letting the creation trigger run), then waiting for the notes to land on the record. Realistically, you’re down to a few minutes of spot-checking instead of hours of research.

Requirements

  • n8n instance (try n8n Cloud free)
  • Self-hosting option if you prefer (Hostinger works well)
  • HubSpot to store enriched contact properties.
  • AnySite LinkedIn (HDW community node) to fetch LinkedIn profiles and posts.
  • OpenAI API key (get it from your OpenAI dashboard) to generate the AI notes.

Skill level: Intermediate. You’ll be connecting accounts, creating HubSpot properties, and self-hosting if you want the LinkedIn community node to work.

Need help implementing this? Talk to an automation expert (free 15-minute consultation).

The Workflow Flow

A contact event kicks things off. The workflow triggers when a new HubSpot contact is created, when a HubSpot contact is updated with an enrichment flag, or when a Pipedrive person is created/updated (depending on which CRM you use).

It decides if enrichment is needed. Simple checks make sure you’re not enriching everything all the time. If the “need_enrichment” property (or the Pipedrive equivalent) isn’t set, the workflow can skip, which keeps costs and noise down.

LinkedIn data gets collected. Using the AnySite LinkedIn community node, it tries an email-based lookup first. If there’s no match, it searches by name and company, then pulls profile details and recent posts for the best candidate.

AI writes usable notes and the CRM gets updated. The AI agent summarizes the person’s background and activity into clean text, then the workflow updates HubSpot properties like linkedin_url, profile_summary, and linkedin_posts_summary. You can also log results to Google Sheets if you want a simple audit trail.

You can easily modify the enrichment flag rules to run only for specific pipelines, regions, or lead sources based on your needs. See the full implementation guide below for customization options.

Step-by-Step Implementation Guide

Step 1: Configure the HubSpot Trigger

Set up the HubSpot webhook that starts the enrichment flow when a contact is created or marked for enrichment.

  1. Add the HubSpot Event Trigger node and connect it to your HubSpot app.
  2. Credential Required: Connect your hubspotDeveloperApi credentials.
  3. In HubSpot Event Trigger, set eventsUi to include contact.propertyChange for the need_enrichment property.
  4. Keep the webhook URL active in HubSpot so HubSpot Event Trigger can receive events.

Step 2: Connect Pipedrive Triggers for Person Events

Configure Pipedrive to kick off LinkedIn enrichment on new or updated person records.

  1. Add the Pipedrive New Person Trigger node with action set to create and entity set to person.
  2. Credential Required: Connect your pipedriveApi credentials to Pipedrive New Person Trigger.
  3. Add the Pipedrive Update Trigger node with action set to change and entity set to person.
  4. Credential Required: Connect your pipedriveApi credentials to Pipedrive Update Trigger.

Step 3: Set Up HubSpot Contact Fetch and Routing Logic

This step ensures the workflow enriches only the right HubSpot events and pulls the contact data needed for AI processing.

  1. In Fetch HubSpot Contact, set operation to get and authentication to appToken.
  2. Set contactId to {{ $json.contactId }} and include properties for firstname, lastname, email, and company.
  3. Credential Required: Connect your hubspotAppToken credentials to Fetch HubSpot Contact.
  4. Configure Creation Event Check to match {{ $('HubSpot Event Trigger').item.json.subscriptionType }} equals contact.creation.
  5. Configure Enrich Flag Check so {{ $('HubSpot Event Trigger').item.json.subscriptionType }} equals contact.propertyChange and {{ $json.properties.need_enrichment.value }} equals true.

Step 4: Configure AI Enrichment Agents and Language Models

Connect the language models to the enrichment agents and verify the agent input payloads.

  1. In OpenAI Chat Engine, select the gpt-4o model and connect it to LinkedIn Enrichment Agent.
  2. Credential Required: Connect your openAiApi credentials to OpenAI Chat Engine.
  3. In OpenAI Chat Engine B, select the gpt-4o model and connect it to Pipedrive Enrichment Agent.
  4. Credential Required: Connect your openAiApi credentials to OpenAI Chat Engine B.
  5. In OpenAI Chat Engine C, select the gpt-4o model and connect it to HubSpot Enrichment Agent.
  6. Credential Required: Connect your openAiApi credentials to OpenAI Chat Engine C.
  7. Verify the input text in LinkedIn Enrichment Agent uses User data:\nemail - {{ $json.data.emails[0].value }}\nname - {{ $json.data.name }}\norganization id - {{ $json.data.org_id }}.
  8. Verify the input text in HubSpot Enrichment Agent uses User data:\nemail - {{ $json['identity-profiles'][0].identities[0].value }}\nname - {{ $json.properties.hs_full_name_or_email.value }}\nCompany name - {{ $json.properties.company.value }}.

AI tools like Find LinkedIn by Email, Search LinkedIn Profiles, and Fetch LinkedIn Details are connected as tools inside the agents. Add credentials to the tool nodes, but manage AI prompt logic in the parent agents.

Step 5: Connect LinkedIn and CRM Tooling for Enrichment

These tools are called by the agents to find LinkedIn profiles, fetch details, and update CRM records. Due to high node counts, configure LinkedIn tools by function groups.

  1. For LinkedIn email lookup, confirm Find LinkedIn by Email, Find LinkedIn by Email B, and Find LinkedIn by Email C use {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Email', `user email`, 'string') }}.
  2. Credential Required: Connect your hdwLinkedinApi credentials to all LinkedIn tools (12+ nodes, including profile search, details, and posts).
  3. In Search LinkedIn Profiles, Search LinkedIn Profiles B, and Search LinkedIn Profiles C, keep keywords set to {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Keywords', ``, 'string') }} and additional fields for location, first/last name, and company keywords.
  4. In Fetch LinkedIn Details, Fetch LinkedIn Details B, and Fetch LinkedIn Details C, set operation to getProfile and user to {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('User', `user alias`, 'string') }}.
  5. In Retrieve LinkedIn Posts, Retrieve LinkedIn Posts B, and Retrieve LinkedIn Posts C, set operation to getPosts and urn to {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('User_URN', `user URN with prefix: fsd_profile:ACoAA..`, 'string') }}.
  6. For Pipedrive company lookups, keep Fetch CRM Company and Retrieve CRM Company B set to resource organization and operation get, with organizationId set to {{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Organization_ID', `org_id`, 'number') }}.

⚠️ Common Pitfall: The Pipedrive update tools contain placeholder custom property names like [CONFIGURE_YOUR_API_KEY]. Replace these with your actual Pipedrive custom field keys in Update Pipedrive Contact and Modify Pipedrive Contact before running the workflow.

Step 6: Configure CRM Update Actions

These nodes write enriched LinkedIn insights back to Pipedrive and HubSpot.

  1. In Update Pipedrive Contact, set personId to {{ $('Pipedrive New Person Trigger').item.json.data.id }} and keep resource as person with operation update.
  2. Credential Required: Connect your pipedriveApi credentials to Update Pipedrive Contact and Modify Pipedrive Contact.
  3. In Modify Pipedrive Contact, set personId to {{ $('Pipedrive Update Trigger').item.json.data.id }} and map the AI values in customProperties.
  4. In Update HubSpot Contact, set authentication to appToken and email to {{ $json.properties.email.value }}.
  5. Credential Required: Connect your hubspotAppToken credentials to Update HubSpot Contact.
  6. Map custom properties in Update HubSpot Contact to linkedin_posts_summary, profile_summary, and linkedin_url using the AI expressions already configured.

Step 7: Test and Activate Your Workflow

Run a controlled test for both HubSpot and Pipedrive triggers before enabling the workflow in production.

  1. Use Execute Workflow and trigger Pipedrive New Person Trigger with a test person to confirm LinkedIn Enrichment Agent runs and updates data via Update Pipedrive Contact.
  2. Trigger a HubSpot contact creation or set need_enrichment to true and confirm HubSpot Event TriggerFetch HubSpot ContactCreation Event Check / Enrich Flag CheckHubSpot Enrichment Agent executes successfully.
  3. Verify LinkedIn fields and summaries are written to Pipedrive and HubSpot records as expected.
  4. Once tests succeed, toggle the workflow to Active so it runs automatically.
🔒

Unlock Full Step-by-Step Guide

Get the complete implementation guide + downloadable template

Watch Out For

  • HubSpot private app tokens and permissions can block updates. If the workflow runs but fields stay empty, check the HubSpot credential scopes and the contact property internal names first.
  • If you’re using Wait nodes or external rendering, processing times vary. Bump up the wait duration if downstream nodes fail on empty responses.
  • Default prompts in AI nodes are generic. Add your brand voice early or you’ll be editing outputs forever.

Common Questions

How quickly can I implement this HubSpot lead enrichment automation?

Plan on about an hour if your HubSpot properties and API keys are ready.

Can non-technical teams implement this lead enrichment?

Yes, but you’ll want someone comfortable with setting up HubSpot properties and pasting API keys. The LinkedIn part requires self-hosted n8n because it uses a community node.

Is n8n free to use for this HubSpot lead enrichment workflow?

Yes. n8n has a free self-hosted option and a free trial on n8n Cloud. Cloud plans start at $20/month for higher volume. You’ll also need to factor in OpenAI API costs (often a few cents per enriched contact, depending on prompt size) and AnySite usage.

Where can I host n8n to run this automation?

Two options: n8n Cloud (managed, easiest setup) or self-hosting on a VPS. For self-hosting, Hostinger VPS is affordable and handles n8n well. Self-hosting gives you unlimited executions but requires basic server management.

How do I adapt this HubSpot lead enrichment solution to my specific challenges?

Start by editing the prompts inside the LinkedIn Enrichment Agent, HubSpot Enrichment Agent, or Pipedrive Enrichment Agent so the summaries match your outreach style. You can also change the enrichment rules in the “Enrich Flag Check” and “Validate Enrich Flag” logic so it only runs for certain lead sources, lifecycle stages, or owners. If you prefer different outputs, map the AI response into different HubSpot properties in the “Update HubSpot Contact” step.

Why is my HubSpot connection failing in this workflow?

Usually it’s missing permissions or a wrong property name. Check that your HubSpot credential is allowed to read and write contacts, then confirm the internal property keys (like linkedin_url) match exactly what you created in HubSpot. If it only fails sometimes, you may be hitting rate limits while enriching batches, so add a short delay between contacts.

What’s the capacity of this HubSpot lead enrichment solution?

If you self-host n8n, there’s no execution cap (it’s mostly your server and API limits). On n8n Cloud, capacity depends on your plan’s monthly executions. In practice, most teams run enrichment in small batches because LinkedIn lookups and AI calls can be rate-limited.

Is this HubSpot lead enrichment automation better than using Zapier or Make?

Often, yes. The main reason is the LinkedIn enrichment node here is a community node intended for self-hosted n8n, and the workflow uses branching logic (email lookup, then fallback search, then profile + posts, then summarization) that gets expensive and awkward in Zapier. n8n also makes it easier to store structured fields, merge results, and loop through batches without paying per “path.” That said, if you only want “copy a LinkedIn URL into HubSpot,” Zapier or Make can be simpler. If you’re unsure, Talk to an automation expert and describe your volume and your exact fields.

Once this is set up, your CRM stops being a list of names and starts being a set of ready-to-contact people. The workflow does the research grind so your team can focus on conversations.

Need Help Setting This Up?

Our automation experts can build and customize this workflow for your specific needs. Free 15-minute consultation—no commitment required.

Lisa Granqvist

Workflow Automation Expert

Expert in workflow automation and no-code tools.

×

Use template

Get instant access to this n8n workflow Json file

💬
Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Get a free quote today!
Get a free quote today!

Tell us what you need and we'll get back to you within one working day.

Launch login modal Launch register modal