Profile new HubSpot leads from their website with a Slack alert

When a new contact lands in HubSpot, read their company website, fill in industry, product, ICP, and a one-line pitch, then ping sales in Slack.

Agentic Task
HubSpotScrapingBeeSlackSalesMarketingLead EnrichmentNotifications & Alerts
PromptCreate

Run this workflow every time a new contact is created in HubSpot. Use HubSpot's webhook trigger on the contact creation event so it fires the moment the record appears, not on a poll.

When a new contact comes in, do the following:

1. Read the email address on the new contact and extract the domain (the part after the @).

2. If the domain is a known free or personal email provider (gmail.com, outlook.com, hotmail.com, yahoo.com, icloud.com, aol.com, proton.me, live.com, msn.com), skip the website enrichment entirely. Jump to step 6 and post a short Slack message noting this is a personal-email lead with no company website to profile.

3. Otherwise, call ScrapingBee's Extract Data with AI operation against https://{domain} (fall back to https://www.{domain} if the first attempt 404s). Use the ai_query parameter to ask for four fields in one call:

- industry: one or two words describing what industry the company operates in.

- primary_product: one sentence describing the main product or service the company sells.

- ideal_customer_profile: one sentence describing who this company sells to.

- value_proposition: a single one-line pitch in the company's own voice.

Ask ScrapingBee to return the result as structured JSON so the fields are easy to read back. If the homepage scrape fails or the values come back empty or nonsensical, set the missing fields to "unknown" and continue.

4. Use HubSpot Update Contact to write the four values into custom contact properties named company_industry, primary_product, ideal_customer_profile, and value_proposition. If any of those properties don't exist yet on the contact schema, create them as single-line text properties first.

5. Use HubSpot Create Note associated with the contact. Title the note "Company profile from website" and put the four enrichment fields in the body as a short bulleted summary, with the source domain at the top.

6. Use Slack Send a Message to post to the sales channel (default to #sales-new-leads, but prompt me to confirm the channel during setup). Format the message like this:

New lead: {first_name} {last_name} at {company_or_domain} Industry: {industry} Product: {primary_product} Sells to: {ideal_customer_profile} Pitch: {value_proposition} HubSpot record: {link_to_contact}

Build the HubSpot record link as https://app.hubspot.com/contacts/{portalId}/contact/{contactId}, where portalId is the HubSpot account/hub ID and contactId is the new contact's id from the trigger payload.

For free-email leads, send an abbreviated version of the Slack message that just announces the contact name and email and notes that no company profile was generated because the email is personal.

Keep the whole workflow focused on this enrichment pass. Don't create deals, don't assign owners, don't send outbound emails. The goal is to give sales reps real context the moment a lead lands.

What does this prompt do?

  • Watches for new HubSpot contacts and reads the company domain from their work email.
  • Visits the company homepage and derives industry, primary product, ideal customer profile, and a one-line value proposition.
  • Writes those values into custom contact properties and files a short company summary as a note on the contact.
  • Posts a heads-up to your sales Slack channel with the highlights and a direct link to the HubSpot record.

What do I need to use this?

  • A HubSpot account with permission to read and update contacts and create notes.
  • A ScrapingBee API key for visiting the company homepage.
  • A Slack workspace and the channel where alerts should land.
  • Custom contact properties for industry, product, customer profile, and value prop (we can create these for you if they don't exist).

How can I customize it?

  • Change which questions get asked of the homepage. Add tech stack, employee count, recent news, or anything you can describe in plain English.
  • Pick a different Slack channel, or route alerts based on lead source, country, or deal owner.
  • Extend or replace the list of free email providers that get skipped (gmail.com, outlook.com, yahoo.com).

FAQs

What happens if the lead signs up with a personal email like gmail.com?
The workflow skips the website scrape and posts a short Slack heads-up noting it's a personal-email lead with no company to profile. Reps still see the new contact, they just don't get the enrichment.
Can I run this on contacts that already exist instead of brand-new ones?
Yes. Tell the workflow to sweep contacts missing the enrichment fields on a schedule instead of firing on the new-contact event. The same scrape and write-back logic applies.
What if the company website blocks scrapers or runs heavy JavaScript?
ScrapingBee handles browser rendering, proxy rotation, and stealth modes for tougher sites. You can switch on premium or stealth options inside the workflow if a particular domain keeps failing.
Does it work with HubSpot Free?
Yes. HubSpot Free supports custom contact properties and notes, which is all this workflow writes back. No paid tier required.
How do I change which Slack channel it posts to?
Open the workflow, swap the channel name in the Slack step, and save. You can also point different lead sources at different channels if your sales team is split by region or product.

Related templates

Client-by-client cold email pipeline review for agencies

Pick a client and a date range to see sent, replies, meetings booked and the real deal value your cold email produced, campaign by campaign.

Instantly
HubSpot
Slack Bot
App
Partner tier review board for quarterly promotion calls

Work every partner tier decision from one board, with the revenue and commission numbers, clear promotion thresholds, and AI review briefs.

Introw
HubSpot
Slack
App
Reconcile partner commissions between HubSpot and Introw

Open one board at month end to find every closed deal missing a commission, every commission with no deal behind it, and every amount that does not add up.

Introw
HubSpot
Slack
App
One control room for every Instantly sending mailbox

See warmup status, daily send volume, and bounce risk for every sending account in one grid, with the riskiest mailboxes floating to the top.

Instantly
Slack
App
Hiring signal board for your customers and open pipeline

Open one board each morning to see which of your accounts are hiring, what they are building, and where your product fits the roles they just opened.

JobsPipe
HubSpot
App
Partner payout approval queue with Xero bill handoff

Review Introw partner payouts line by line, approve them from one board, raise the matching bill in Xero, and post every approval to Slack.

Introw
Xero
Slack
App

Give every new lead instant context before sales even opens HubSpot.

Connect HubSpot, ScrapingBee, and Slack once, and Geni profiles every new contact the moment they land.