Research new HubSpot leads with Parallel and alert Slack
When a new HubSpot contact lands, run a cited web research job on their company, write the findings back to HubSpot, and ping sales in Slack.
Build an agent workflow that auto-researches every new HubSpot contact using Parallel and posts a briefing to Slack.
Trigger: a HubSpot webhook on the contact.creation event. The webhook payload gives us the contact ID and email.
Step 1. Pull the contact from HubSpot to get the email, the contact ID, and the existing company association if there is one. Extract the email domain. If the domain is a known free-mail provider (gmail.com, yahoo.com, outlook.com, hotmail.com, icloud.com, aol.com, proton.me, protonmail.com, gmx.com, mail.com, live.com, msn.com), stop here. Do not kick off a Parallel run on these because we do not want to waste spend on personal emails.
Step 2. Call Parallel Create Task Run with processor set to "core" (use "pro" if the user wants higher quality) so that citations are included. The input should describe the company by its email domain. Use a structured output schema with these fields: employee_headcount_band (one of "1-10", "11-50", "51-200", "201-1000", "1001-5000", "5000+"), industry, recent_funding_round (round name or null), recent_funding_date (ISO date or null), marketing_tech_stack (array of strings), sales_tech_stack (array of strings), top_buying_signals (array of short strings), icp_fit_summary (one paragraph), company_name, company_match_confidence (one of "high", "medium", "low"), and recommended_next_action (short string). Wait for the run to complete using the blocking result endpoint.
Step 3. If company_match_confidence comes back as "low", do not write the enriched fields. Instead call HubSpot Update Contact and set a needs_review property to true so a human can take a look. Then post a short Slack message to the #new-leads channel saying we could not confidently identify the company for that domain and that the contact has been flagged. Stop the workflow here.
Step 4. Otherwise call HubSpot Update Contact and populate the custom properties on the contact: headcount band, industry, latest funding round and date, marketing tech stack, sales tech stack, ICP fit summary. Use whatever the user has named these properties in their HubSpot account (ask if you need clarification, but assume sensible defaults like company_headcount_band, company_industry, latest_funding_round, latest_funding_date, marketing_stack, sales_stack, icp_fit_summary).
Step 5. Call HubSpot Create Note and associate it with the contact. The note body should contain the full research summary in plain prose with the top buying signals as a bulleted list, followed by a Sources section listing every cited URL Parallel returned in its basis output. Title the note something like "Parallel research summary".
Step 6. Post a message in the #new-leads Slack channel using Slack Bot Send a Message. Format the message as: company name and email domain, a one-line headline signal (the strongest item from top_buying_signals), and a one-line recommended next action. Keep it short, scannable, and link to the HubSpot contact record.
Operations to use: parallel-ai Create Task Run, hubspot Update Contact, hubspot Create Note, slackbot Send a Message.
Additional information
What does this prompt do?
- Watches HubSpot for new contacts and kicks off automatic company research the moment one is created.
- Pulls a structured profile of the contact's company: headcount, industry, latest funding, tech stack signals, and a short ICP-fit summary.
- Writes the enriched fields back to the HubSpot contact and drops a full note with cited source URLs so your reps can verify every claim.
- Posts a short briefing to your sales Slack channel with the company name, the headline signal, and a recommended next step.
What do I need to use this?
- A HubSpot account with permission to read and update contacts and create notes.
- A Parallel account and API key for the research jobs.
- A Slack workspace and the channel you want briefings posted to (for example, a #new-leads channel).
- The custom contact properties you want filled in (headcount, industry, latest funding, tech stack, ICP fit, needs review).
How can I customize it?
- Change the research schema to match the fields your sales team actually scores on, like ARR band, geography, or product-led signals.
- Edit the free-mail skip list (gmail.com, yahoo.com, outlook.com, and any others) so personal-email leads do not burn research credits.
- Swap the Slack destination, switch to a direct message to the deal owner, or route by territory or company size.
- Tune the recommended next action: book a demo, enroll in a nurture sequence, or assign a task to the rep.
Frequently asked questions
What happens if the research can't confidently match the company?
Will this fire on every contact, even Gmail and Yahoo signups?
Are the research findings backed by sources?
Can I change which Slack channel the briefings post to?
Does this work with my existing HubSpot custom properties?
Stop hand-researching every new lead.
Connect HubSpot, Parallel, and Slack once, and Geni profiles every new contact with cited research while your reps are still pouring coffee.