Auto-enrich new HubSpot contacts with Tavily company news

By General Input

When a new contact lands in HubSpot, an agent pulls funding, hiring, and product news from the past 90 days, writes a summary to the record, and pings the owning rep in Slack.

Integrations

  • HubSpot
  • Tavily
  • Slack

Type

Agentic Task

Categories

  • Sales

Build me an agent workflow that enriches every new HubSpot contact with fresh company news from the web and pings the owning sales rep in Slack.

Trigger: when a new contact is created in HubSpot. Use HubSpot's outgoing contact-creation webhook so the workflow runs the moment the contact lands.

Step 1, gate on the email domain. If the contact's email is on a personal-email blocklist (gmail.com, yahoo.com, outlook.com, hotmail.com, icloud.com, aol.com, proton.me, protonmail.com, gmx.com, live.com, msn.com), exit immediately. Do not call Tavily, do not update HubSpot, do not Slack. Log a one-line reason and stop. Expose the blocklist as a workflow config so the user can edit it.

Step 2, identify the company. Read the contact's associated company record from HubSpot for the company name and domain. If no company is associated, fall back to the email domain (everything after the @) as the company identifier.

Step 3, research with Tavily Search. Run several targeted searches against the past 90 days, one per signal type, instead of one giant query. Use Tavily's Search action with search_depth=advanced, time_range or start_date set to 90 days ago, topic=news where appropriate, and max_results around 5 per search. Cover these signals: recent company news and press, funding rounds and investments, hiring sprees and notable role openings, and product launches or major announcements.

Step 4, clean and summarize. Dedupe results by URL and by near-identical headlines. Drop anything dated older than 90 days. Compose: a 2 to 3 sentence company_summary, a recent_news list of 3 to 5 bullet headlines (each with date and source link), and a signal_score from 0 to 100 weighted as funding > hiring > product launches > general press. Set last_enriched_at to the current timestamp.

Step 5, update the contact. Call HubSpot's Update Contact action and write to four custom contact properties: company_summary, recent_news, signal_score, last_enriched_at. If those properties don't exist, surface a clear setup error telling the user to create them as custom contact properties (text, long text, number, datetime) before running again.

Step 6, notify Slack. Call Slack Send a Message and post into the channel mapped to the contact's HubSpot owner. Let the user configure the owner-to-channel map during setup with a default fallback channel for unmapped owners. Message body: one headline line (New contact at <Company>, score <signal_score>/100), 2 to 3 top headlines as bullets with source links, and a direct link back to the HubSpot contact record.

Quiet defaults: if Tavily returns nothing meaningful in the last 90 days, still write last_enriched_at and a short 'no recent signals' summary back to HubSpot, but skip the Slack ping so the channel doesn't get noised with empty briefings. Make the whole workflow idempotent so re-running on the same contact is safe.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredTurn Mailjet email clicks into ranked HubSpot follow-upsiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsA searchable RFP answer library your bid team drafts fromSee which target accounts just started advertising on LinkedInAccount health board that puts product usage next to your CRMLook up a customer's full chat history mid conversationLusha prospecting workbench with credit-safe reveals