Auto-enrich new HubSpot contacts with LinkedIn profile data

When a new HubSpot contact arrives with a LinkedIn URL, scrape their profile and write job title, company, location, and headline back to the CRM.

Deterministic Code
HubSpotPhantomBusterSalesMarketingLead EnrichmentData Sync
PromptCreate

Build a code workflow that auto-enriches every new HubSpot contact with fresh LinkedIn profile data using PhantomBuster.

Trigger: HubSpot webhook on the contact.creation event. The webhook payload includes the new contact ID.

Steps, in order:

1. Read the new contact from HubSpot using the contact ID from the webhook payload. Fetch the standard LinkedIn URL property (and any custom LinkedIn URL property the user names). If no LinkedIn URL is present, log a 'skipped: no LinkedIn URL' message and exit cleanly. Do not error.

2. Launch a pre-configured LinkedIn Profile Scraper Phantom in PhantomBuster using the Launch Agent with Output (v1) operation. Use blocking mode (output=result-object) so the single call returns the structured scrape result, with the agent ID pulled from a workflow input. Pass the contact's LinkedIn URL as the profileUrls argument (JSON-stringified, as the v1 launch endpoint requires).

3. Parse the structured profile data returned by PhantomBuster. Extract: current job title, current company name, location, headline, skills count, and follower count. Be defensive about missing fields (the LinkedIn scraper does not always return every field) and substitute null when something is absent.

4. Update the HubSpot contact using the Update Contact operation, keyed by the original contact ID from the webhook. Map the parsed fields to HubSpot contact properties. Default the mapping to: jobtitle, company, city/state (split from location), and a custom property each for headline, linkedin_skills_count, and linkedin_follower_count. Make the property mapping easy for the user to tweak in workflow inputs.

This is a deterministic pipeline with one fixed path: webhook in, optional skip, one blocking PhantomBuster call, one HubSpot update. No branching judgment, no LLM reasoning needed.

Make sure the workflow exposes these inputs: the PhantomBuster LinkedIn scraper agent ID, the HubSpot LinkedIn URL property name (default 'linkedin_url' or the standard 'hs_linkedin_url'), and the custom HubSpot property names that should receive headline, skills count, and follower count.

What does this prompt do?

  • Listens for new contacts in HubSpot and reacts the moment one is created.
  • Runs your LinkedIn profile scraper in PhantomBuster and waits for the result in a single step.
  • Writes the fresh job title, company, location, headline, skills count, and follower count back onto the contact in HubSpot.
  • Quietly skips any contact that does not have a LinkedIn URL set, so nothing breaks when the field is empty.

What do I need to use this?

  • A HubSpot account where you can add a new contact and a few custom contact properties.
  • A PhantomBuster workspace with a LinkedIn Profile Scraper Phantom already set up and connected to your LinkedIn session.
  • A LinkedIn URL field on your HubSpot contact record (the standard one or a custom property).

How can I customize it?

  • Pick which HubSpot properties get the scraped fields written into them, including any custom fields you already use.
  • Choose a different Phantom (for example a company page scraper) if you want to enrich based on a company URL instead of a personal profile.
  • Add a simple filter so only certain contacts get enriched, such as new contacts in a specific lifecycle stage or list.

FAQs

Does this work with HubSpot Free?
Yes. Contact webhooks and contact property updates are available on every HubSpot CRM tier, so the workflow runs on Free, Starter, Professional, and Enterprise.
What happens to contacts that do not have a LinkedIn URL?
They are skipped silently. The workflow only runs the scraper when a LinkedIn URL is present, so empty contacts are left alone instead of failing.
How fresh is the data?
Very fresh. Each contact triggers a new run of your LinkedIn scraper Phantom in real time, so the job title, company, and headline reflect what is on the profile right now, not a cached snapshot.
Can I scrape something other than personal profiles?
Yes. Point the workflow at any Phantom that returns structured results, such as a company page scraper or a post engagement scraper, and map the new fields to the HubSpot properties you care about.
Will it burn through my PhantomBuster execution time?
Only if you create lots of new contacts. The workflow runs the Phantom exactly once per new contact with a LinkedIn URL, so usage scales with your inbound lead volume.

Related templates

Log Agorapulse social conversations to HubSpot contacts

Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.

Agorapulse
HubSpot
Slack Bot
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Clean up HubSpot contacts from your Amazon SES suppression list

Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.

Amazon SES
HubSpot
Slack Bot
Agentic Task
Provision customer entitlements in DynamoDB when a deal is won

When a HubSpot deal hits Closed Won, the customer's plan, seats and renewal dates land in your DynamoDB accounts table, with a Slack note showing what changed.

HubSpot
Amazon DynamoDB
Slack Bot
Agentic Task
Raise a Zoho Books invoice the moment a HubSpot deal is won

When a deal moves to closed won in HubSpot, we find or create the customer in Zoho Books, draft the invoice, and tell finance in Slack.

HubSpot
Zoho Books
Slack
Deterministic Code
File win-loss survey feedback on the right HubSpot deal

The moment someone finishes your win-loss survey, their answers land as a short note on the deal they belong to, not in a dashboard nobody opens.

SurveyMonkey
HubSpot
Slack Bot
Agentic Task

Stop hand-copying LinkedIn into HubSpot.

Connect HubSpot and PhantomBuster once, and every new contact arrives with a current job title, company, and headline already filled in.