Enrich Typeform demo requests with RocketReach into HubSpot

Every new Typeform demo request gets enriched with verified contact and company data, logged in HubSpot, and posted to your sales Slack as a ready-to-act lead card.

Agentic Task
TypeformRocketReachHubSpotSlackSalesOperationsLead EnrichmentNotifications & AlertsData Sync
PromptCreate

Build me an agent workflow that turns every new Typeform demo-request submission into an enriched, sales-ready lead in HubSpot with a Slack notification to my sales team.

Trigger: a webhook from Typeform that fires when a new form response is submitted on my demo-request form. Use the Typeform Create or Update Webhook operation to register the webhook on the form during setup so submissions are pushed in real time.

When a submission arrives, parse the email, full name, and company from the form payload. Then run this sequence:

1. Call RocketReach Person Lookup using the email when present, otherwise name plus company. Pass return_cached_emails=true so we do not burn fresh credits when a cached result exists. If the response status comes back as searching, poll RocketReach Check Person Lookup Status with the returned profile ID until the lookup completes or a reasonable timeout is hit. Capture the verified work email, phone, LinkedIn URL, current title, seniority, and the employer domain.

2. Call RocketReach Company Lookup on the employer domain returned from the person lookup (or the domain parsed from the submitter's email if no employer was returned). Capture headcount, industry, funding stage and total raised, and tech stack.

3. Upsert the contact in HubSpot using Batch Upsert Contacts, matching on email as the unique idProperty. Populate firstname, lastname, email, phone, jobtitle, linkedin_url, hs_lead_status, and lifecyclestage (set to marketingqualifiedlead). Include any enriched custom properties the user has like seniority or tech_stack if they exist.

4. Check whether a HubSpot company already exists for the enriched domain. If not, call HubSpot Create Company with name, domain, industry, numberofemployees, annualrevenue if available, and a description that includes funding stage and tech stack highlights. Associate the new contact with the company record.

5. If RocketReach returned a real person match, post a concise lead card to the sales Slack channel using Slack Send a Message. The card should include: prospect name and title, company name with headcount and industry, a one-line why-this-lead-matters summary the agent writes from the enrichment data (mentioning things like recent funding, tech stack alignment, or seniority fit), and a deep link to the HubSpot contact record using the contact ID returned from the upsert.

6. If RocketReach returned no match, still complete the HubSpot upsert with the raw form data, but skip the Slack ping so the sales team only sees real, contactable leads. Log the skip internally.

Inputs the workflow should ask me for at setup time: the Typeform form ID for my demo-request form, the Slack channel ID (or name) where the lead cards should post, and my HubSpot portal ID so the contact deep link can be constructed correctly.

Keep the Slack card short and scannable. Use bold for the name and a single emoji like :rocket: in the header. The whole message should fit in five or six lines so reps can act fast.

What does this prompt do?

  • Listens for new Typeform demo-request submissions in real time and pulls the prospect's email, name, and company.
  • Looks up the person and their company in RocketReach to find a verified work email, phone, LinkedIn, title, seniority, headcount, industry, funding, and tech stack.
  • Upserts the contact in HubSpot, creates the company record if it does not exist, and fills in the enriched properties along with lifecycle stage.
  • Posts a concise lead card to your sales Slack channel with name, title, company, headcount, a short why-this-matters summary, and a deep link to the HubSpot contact.
  • Skips the Slack ping when RocketReach finds no match, so reps only see leads they can actually reach.

What do I need to use this?

  • A Typeform account with the demo-request form you want to monitor
  • A RocketReach account with credits available for person and company lookups
  • A HubSpot account where the contact and company records should land
  • A Slack workspace and the channel where sales should see new lead cards

How can I customize it?

  • Change which Slack channel receives the cards, or route different industries or company sizes to different channels.
  • Adjust the HubSpot lifecycle stage, lead source, or owner assignment that gets set on every enriched contact.
  • Tune the why-this-matters summary the agent writes, for example asking it to call out funding rounds, hiring spikes, or specific tech stack matches.

FAQs

What happens if RocketReach cannot find the prospect?
The contact still gets upserted in HubSpot with the raw form data so nothing is lost, but the Slack ping is skipped. That way your sales team only sees leads with verified, contactable information.
Does this work if I am on HubSpot Free or Starter?
Yes. The workflow uses standard contact and company records that exist on every HubSpot plan. Custom lifecycle stages or enriched properties may require a paid tier if you want to track them as structured fields.
How long does enrichment take per lead?
Most RocketReach lookups return verified contact data in a few seconds. When RocketReach needs more time to search, the agent waits and re-checks until the result is ready, then continues.
Will this burn RocketReach credits on every submission?
The agent prefers cached results where possible, so repeat prospects do not get re-billed. Fresh credits are only spent when there is genuinely new information to retrieve.
Can I send the lead card somewhere other than Slack?
Yes. Swap the Slack step for email, Microsoft Teams, or any other channel your team lives in, and the agent will format the lead card to match.

Related templates

Auto-fix your calendar when a flight slips, and flag what's at risk

When your flight moves, your calendar times get corrected automatically and you get a Slack note naming the meetings you're about to miss.

Google Calendar
AviationStack
Slack
Agentic Task
Trace phishing emails to the sending IP and report abuse

Every 15 minutes, forwarded phishing reports get traced back to the server that really sent them, with a verdict in Slack and the worst senders reported.

AbuseIPDB
Gmail
Slack
Agentic Task
Log Agorapulse social conversations to HubSpot contacts

Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.

Agorapulse
HubSpot
Slack Bot
Agentic Task
Turn procurement portal tenders into CRM deals each morning

Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.

Anchor Browser
Google Sheets
HubSpot
+1
Agentic Task
Clean up HubSpot contacts from your Amazon SES suppression list

Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.

Amazon SES
HubSpot
Slack Bot
Agentic Task
Provision customer entitlements in DynamoDB when a deal is won

When a HubSpot deal hits Closed Won, the customer's plan, seats and renewal dates land in your DynamoDB accounts table, with a Slack note showing what changed.

HubSpot
Amazon DynamoDB
Slack Bot
Agentic Task

Stop sending raw form submissions to your sales team.

Connect Typeform, RocketReach, HubSpot, and Slack once, and every demo request shows up enriched, logged, and ready to work.