Route Typeform leads to HubSpot, WhatsApp via Heyy, and Slack

By General Input

Every "Talk to sales" submission gets scored hot, warm, or cold, then filed in HubSpot, kicked into a WhatsApp follow-up via Heyy, and briefed in Slack.

Integrations

  • Typeform
  • HubSpot
  • Heyy
  • Slack

Type

Agentic Task

Categories

  • Sales
  • Marketing

Build me an agent workflow that runs every time a new submission lands on my Typeform "Talk to sales" or "Get started" form. The trigger should be the Typeform new-submission webhook (use Create or Update Webhook on the form so Typeform posts to us in real time).

When a submission arrives, the agent should read every answer, including any free-text fields, and score the lead as hot, warm, or cold.

Scoring rules: HOT = the respondent is a decision-maker (founder, VP, head of, director, owner, manager-or-above buying their own tool) AND they stated a budget OR a timeline to buy. WARM = clearly interested and evaluating, but no budget or timeline yet, or not clearly a decision-maker. COLD = newsletter signup, student, agency wanting to resell, or obviously out of ICP. Keep a short reason string explaining the score in 1 to 2 sentences.

Before the first run does any writes, resolve the IDs the agent will need:

1. Call Heyy List Contact Attributes and find the externalIds for the custom attributes "primary_use_case" and "company_size". If either is missing, create it with Heyy Create Contact Attribute (display name and externalId of the same name, type text) and use the returned externalId.

2. Make sure the three Heyy labels exist: "hot_inbound", "warm_inbound", and "newsletter". If any are missing, create them with Heyy Create Label and remember the returned label IDs. Cache all of this on the workflow so we don't redo it every run.

Then, for every submission, do these three things in parallel where possible:

(1) HubSpot. Call HubSpot Batch Upsert Contacts with the lead's email as the idProperty, and set firstname, lastname, phone, company, jobtitle, and the lifecycle stage that matches the score: lead for hot, marketingqualifiedlead for warm, subscriber for cold (let the user override these mappings in setup). For hot leads only, also call HubSpot Create Deal with a deal name like "<Company> - <Primary use case>", the default sales pipeline, the first stage, and associate it to the contact we just upserted.

(2) Heyy. If the submission has a phone number, call Heyy Create Contact with name, email, phone, the matching label ID (hot_inbound for hot, warm_inbound for warm, newsletter for cold), and custom attributes set to the answers for primary_use_case and company_size (using the externalIds resolved above). This is what triggers the Heyy automation to send the right WhatsApp follow-up template. If the phone is missing, skip Heyy entirely.

(3) Slack. For hot and warm leads only, call Slack Send a Message to the #sales channel with a 3-line brief: line 1 = name, role, company, and the score in caps; line 2 = what they want in one sentence (use case, urgency, budget if mentioned); line 3 = why they scored that way. If the phone was missing and Heyy was skipped, add a final line that says "No WhatsApp follow-up: phone missing". Do NOT post anything to Slack for cold leads.

Other rules: never block one system on another (a HubSpot failure should not stop Slack from posting), but log every failure clearly so I can see what went wrong. Treat the email as the canonical identity. Lowercase and trim it before upserting. If two fields could be the company name, prefer the one from a dedicated company-name question over a domain-derived guess.

At setup time, ask me which Typeform form IDs to listen to, which Slack channel to post in, which HubSpot pipeline and stage to use for hot-lead deals, and confirm the three Heyy label names. Remember everything for future runs.

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