Auto-enrich new HubSpot contacts with UpLead firmographics

Every new HubSpot contact lands fully filled in. Job title, seniority, company size, industry, LinkedIn, and phone, with a recap note on the record.

Agentic Task
HubSpotUpLeadSalesOperationsLead EnrichmentData Sync
PromptCreate

Build me an agent workflow that automatically enriches every new HubSpot contact with firmographic and personal context, so my reps never have to research a lead manually.

Trigger: HubSpot webhook for contact.creation. The moment a new contact is created in our HubSpot CRM, fire the workflow with the new contact's ID and email.

Step 1. Call HubSpot Get Contact using the contact ID from the webhook. Read the email plus these properties: jobtitle, hs_seniority, numberofemployees, industry, hs_linkedin_url, phone. Also read firstname, lastname, and company so I can pass them to UpLead if needed.

Step 2. Decide whether to enrich at all. Skip the workflow and exit cleanly if either of these is true:

• The email is on a free-email domain (gmail.com, yahoo.com, outlook.com, hotmail.com, icloud.com, aol.com, proton.me, protonmail.com, gmx.com, live.com, msn.com). UpLead lookups on these almost never resolve and waste credits.

• All six target properties (jobtitle, hs_seniority, numberofemployees, industry, hs_linkedin_url, phone) are already populated. No enrichment needed.

Step 3. Call UpLead Search Combined (Person + Company) with the contact's email. This returns the person and their full company profile in one request. If UpLead returns no match, or email_status is "invalid" or "unknown", log it and exit without writing anything to HubSpot.

Step 4. Map UpLead fields to the missing HubSpot properties. Use the agent's judgment to fill only the gaps:

• jobtitle ← UpLead title (capitalize: UpLead returns lowercase)

• hs_seniority ← UpLead management_level

• numberofemployees ← UpLead company employees

• industry ← UpLead company industry

• hs_linkedin_url ← UpLead linkedin_url (person)

• phone ← UpLead phone or mobile_phone

Important: never overwrite a HubSpot value that is already non-empty. The agent only fills blanks.

Step 5. Call HubSpot Update Contact using the contact ID, sending only the properties you are filling in. If nothing needs filling after the gap check, skip the update.

Step 6. Call HubSpot Create Note associated with the contact. Write a short, human-readable summary that includes:

• Which HubSpot properties were enriched and the new values.

• Notable signals from UpLead worth flagging to a rep: recent funding stage and amount, employee growth rate, technologies in their stack, headquarters location.

• A one-line opener the rep can lift into outbound.

Keep the note under 200 words. Lead with the enrichment summary, then signals.

Style: be concise and factual in the note. No emoji, no marketing fluff, no em dashes. If UpLead is missing a field, just leave it out of the note rather than saying "unknown".

What does this prompt do?

  • Listens for new contacts created in HubSpot and runs the moment one lands.
  • Looks up the person and their company in UpLead and writes the missing details back to the HubSpot contact.
  • Drops a short note on the contact summarizing what was added, plus signals like recent funding or tech stack.
  • Skips free email addresses and already-complete records so you don't waste UpLead credits.

What do I need to use this?

  • A HubSpot account with permission to read and update contacts and create notes.
  • An UpLead account with API access. Each enrichment uses one or two UpLead credits.
  • A short list of which HubSpot contact fields you want filled in (defaults are job title, seniority, employee count, industry, LinkedIn URL, and phone).

How can I customize it?

  • Adjust the list of fields to enrich, for example add revenue range, headquarters city, or technology stack.
  • Change the skip rules. Tighten or loosen the free-email-domain list, or always run on contacts from a specific source.
  • Edit what the recap note says. Lead with funding stage, hiring signals, or buying intent depending on what your reps care about most.

FAQs

When does the workflow run?
Every time a brand new contact is created in HubSpot. HubSpot pings General Input the moment the record appears, and the agent picks it up from there. You do not need to schedule anything.
Will it overwrite data my reps already entered?
No. The agent only fills fields that are empty. If a rep already wrote a job title or attached a LinkedIn URL, that value is left alone.
What happens with personal email addresses like Gmail or Yahoo?
Those contacts are skipped entirely so you don't burn UpLead credits on lookups that almost never resolve. You can edit the skip list to fit your business.
How much will this cost in UpLead credits?
About one credit per enriched contact in the standard setup. Contacts that get skipped (free emails, already complete records, or unverifiable matches) cost nothing.
Do I need a paid HubSpot plan?
Any HubSpot tier that supports the contacts API works, including HubSpot Free. You just need an account that can authorize the connection and let General Input read and update contacts.

Related templates

Turn Mailjet email clicks into ranked HubSpot follow-ups

Twice a day we spot the people clicking your pricing and demo pages, create a follow-up task for their owner, and post a ranked recap to Slack.

Mailjet
HubSpot
Slack Bot
Agentic Task
iMessage campaign console with pre-flight checks and delivery board

Build every text campaign in one screen: check who is actually reachable, see a realistic send plan, then watch delivery land row by row.

LoopMessage
Google Sheets
HubSpot
App
A searchable RFP answer library your bid team drafts from

Every proposal you have ever submitted in one searchable archive, with the closest past answers lined up against each question in a new RFP.

General Input Storage
General Input Database
Mistral AI
+2
App
See which target accounts just started advertising on LinkedIn

Open one board each Monday to see which of your target accounts are running LinkedIn ads right now, and which only switched them on this week.

LinkedIn Ad Library
HubSpot
General Input Database
App
Account health board that puts product usage next to your CRM

Your customer success team opens one board where every account's logins, seats and usage trend sit beside its owner, plan and renewal date.

Looker
HubSpot
Slack Bot
App
Look up a customer's full chat history mid conversation

Your agent types an email and sees every past conversation, rating and tag next to the CRM record, then files notes without ever leaving the chat.

LiveChat
HubSpot
App

Stop manually researching every new contact.

Connect HubSpot and UpLead once, and Geni backfills every new contact the moment it lands.