Auto-research new HubSpot contacts with Perplexity

When a new contact lands in HubSpot, an agent pulls fresh company intel from Perplexity, writes it to the record with sources, and pings Slack for hot leads.

Agentic Task
HubSpotPerplexity AISlackSalesLead EnrichmentResearch & MonitoringNotifications & Alerts

Build an agent workflow that triggers on HubSpot's webhook for new contact creation. Every time a contact is created in my HubSpot, run the steps below.

Step 1: free-email skip filter. Read the contact's email from the webhook payload and parse the domain. If the domain is a free-email provider, stop the workflow immediately and do not run research. Default skip list: gmail.com, yahoo.com, hotmail.com, outlook.com, live.com, msn.com, icloud.com, me.com, mac.com, aol.com, proton.me, protonmail.com, gmx.com, gmx.net, mail.com, yandex.com, zoho.com, fastmail.com, hey.com, pm.me, duck.com. Expose this list as a configurable workflow input so I can edit it later.

Step 2: research the company with Perplexity AI. Use Perplexity's Create Chat Completion operation with model sonar-pro. Determine the company from the contact's email domain (and the HubSpot company association if present). Prompt Perplexity to return: (a) recent funding rounds in the last 18 months with amount, stage, and date; (b) leadership changes (new CEO, CRO, CTO, VP Eng, VP Sales) in the last 12 months; (c) product launches or major announcements in the last 6 months; (d) hiring signals such as aggressive headcount growth or a surge in open roles in a specific function; (e) a one-line fit summary classified as Hot, Warm, or Cold for the buyer profile I provide as a workflow input. Ask Perplexity for structured output (each section as its own field), and preserve Perplexity's citations as full clickable URLs alongside each finding.

Step 3: write structured fields back to the HubSpot contact. Use HubSpot's Update Contact operation. Write to these contact properties: company_research_summary (text), fit_score (enumeration: Hot / Warm / Cold), recent_funding (text), leadership_changes (text), product_launches (text), hiring_signals (text), research_updated_at (datetime). If any of these custom properties don't exist on the contact object yet, create them first.

Step 4: pin a full research note to the contact. Use HubSpot's Create Note operation and associate it with the contact ID. The note body should contain the long-form research findings with the Perplexity source URLs preserved as clickable HTML links (anchor tags), grouped by section (Funding, Leadership, Product, Hiring, Fit). Include the research timestamp at the top.

Step 5: alert Slack only on hot leads. If the fit_score is Hot, use Slack's Send a Message operation to post into a configurable sales channel (workflow input, default #sales-alerts). The message should include: contact name, company name, fit summary, top 2 reasons it's a fit, and a deep link back to the HubSpot contact record. If the fit_score is Warm or Cold, do not send a Slack message.

Configurable workflow inputs: buyer_profile (free-text description of our ICP, fed into the Perplexity prompt), slack_channel (defaults to #sales-alerts), free_email_domains (the skip list above), hot_lead_only (boolean, defaults to true so only Hot fires Slack). Use sonar-pro as the Perplexity model. Handle Perplexity 429 rate limits with exponential backoff. If the company can't be determined from the email domain (for example a contact with only a personal-sounding work domain), still run the research using whatever company info HubSpot has, and if there's none, write a short note saying research was skipped due to missing company info.

Additional information

What does this prompt do?
  • Triggers the second a new contact is created in HubSpot, no polling delay.
  • Skips personal Gmail, Yahoo, and Outlook signups so research only runs on real companies.
  • Pulls live web research on the company: recent funding, leadership changes, product launches, hiring signals, and a one-line Hot or Warm or Cold fit score, with clickable sources.
  • Writes the structured intel back onto the HubSpot contact and pins a full research note so reps see it without leaving the CRM.
  • Pings your sales channel in Slack only when the fit is strong, so reps don't drown in alerts.
What do I need to use this?
  • A HubSpot account where new contacts get created (Free, Starter, or higher all work).
  • A Perplexity AI account with API credits loaded.
  • A Slack workspace and the channel you want hot-lead alerts to post into.
How can I customize it?
  • Swap the research questions to match your sales motion (pricing model, tech stack, recent press coverage, hiring in a specific function).
  • Adjust the hot-lead threshold so Slack only fires on a tighter or looser fit.
  • Change which Slack channel gets the alert, or have it DM the contact's owner instead of posting publicly.
  • Add or remove free-email domains in the skip list (some teams want to skip .edu addresses too).

Frequently asked questions

Will this run on personal Gmail or Yahoo signups?
No. Free-email providers like gmail.com, yahoo.com, hotmail.com, and outlook.com are skipped automatically so you don't burn research credits on personal inboxes. You can add or remove domains in the skip list.
Where does the research actually land in HubSpot?
Two places. Structured fields (fit score, funding, leadership, product launches, hiring signals) are written directly to the contact record, and a full long-form note with clickable source links is pinned to the contact so reps can audit every claim.
How fast does it run after a contact is created?
Within seconds. We listen for HubSpot's webhook the moment a contact is added, so reps see the research before they ever open the record.
What if the research is wrong or out of date?
Every claim Perplexity makes comes with a clickable source link in the pinned note. Reps can verify in one click, and the structured fields include a timestamp so you know when the research was pulled.
Can I change which Slack channel gets the alert?
Yes. You pick the channel during setup, and you can swap it later. You can also flip it from a public channel post to a DM to the contact's HubSpot owner.

Stop manually Googling every new lead.

Connect HubSpot, Perplexity, and Slack once, and Geni researches every new contact for you with clickable sources.