Enrich Typeform demo requests with Clay and route them to HubSpot and Slack

By General Input

The moment a demo request lands in Typeform, run your Clay enrichment routine, tier the lead, upsert HubSpot, and post a ready-to-act brief in Slack.

Integrations

  • Typeform
  • Clay
  • HubSpot
  • Slack

Type

Agentic Task

Categories

  • Sales
  • Operations

Build an agent-based workflow that turns every new Typeform demo request into an enriched, scored, sales-ready lead. The trigger is a Typeform webhook on my demo request form, so the workflow runs the moment someone submits the form.

Inputs the workflow needs at build time: the Typeform form ID for the demo request form, my Clay enrichment routine ID (I have the routine already built in Clay), the HubSpot property names I want set from the enrichment, and the Slack channel ID for my SDR team.

On each Typeform submission, pull the submitter's email and derive the company domain from the email (everything after the @). If the domain is a free personal email provider (gmail.com, yahoo.com, hotmail.com, outlook.com, icloud.com, aol.com, protonmail.com) or matches any competitor domain I list at build time, stop the run and do NOT push to HubSpot or Slack. Log the skip reason and exit.

Otherwise, kick off Clay enrichment using the Run a Routine operation with the routine ID and a single input row containing the email and company domain. This returns a routine_run_id with status in_progress. Then poll Get Routine Run Results every 5 seconds, up to a 2 minute ceiling, until status is complete, failed, or validation_failed. If it fails or times out, post a short Slack message to the SDR channel saying enrichment failed for this lead so a human can pick it up manually, and exit.

When enrichment completes, read the results and extract: person full name, job title, seniority, LinkedIn URL; company name, domain, headcount, industry, HQ location, tech stack, funding stage, and any champion signals the routine returns (e.g. "uses our category", "recent role change", "posted about pain point"). Fields that Clay does not return should just be left blank downstream, not fabricated.

Score the lead as Tier 1, Tier 2, or Tier 3 using the enriched profile. Use judgement, not a rigid rubric. Roughly: Tier 1 is a strong ICP fit with clear buying signal or seniority; Tier 2 is a plausible fit that needs qualification; Tier 3 is weak fit but not disqualifying. Include a one-line reason for the tier that names the specific evidence (e.g. "Series B fintech, 320 employees, Head of Ops, stack includes Segment").

Push the contact to HubSpot using Batch Upsert Contacts matched on email as the unique identifier. Set every property I have a value for: firstname, lastname, jobtitle, company, website, industry, numemployees, plus a lead_tier custom property ("Tier 1", "Tier 2", or "Tier 3"), a lead_tier_reason property with the one-line reason, and an enriched_at timestamp.

Then post a Slack message to the SDR channel using the Send a Message operation. Format the message as a lead brief with: a tier badge at the top (šŸ”„ Tier 1, ⭐ Tier 2, or 🧊 Tier 3), the person's name and title, the company name with headcount and industry, 2 to 4 bullet points of the strongest enrichment signals (tech stack, funding, champion signals), the one-line tier reason, and a suggested opening line the SDR can copy-paste that references something specific from the enrichment. Include a link to the HubSpot contact record at the bottom.

Keep the workflow resilient: retry Clay and HubSpot calls on transient errors (429 or 5xx) with exponential backoff, respect Clay's Retry-After header when rate limited, and never lose a submission silently. If HubSpot upsert fails, still post the Slack brief with a note that HubSpot sync failed so an SDR can add the contact manually.

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