Verify Typeform demo requests with Snov.io and sync to HubSpot

Every new demo request gets its email verified, enriched with company info, added to Snov.io and HubSpot, and announced in your sales Slack.

Agentic Task
TypeformSnov.ioHubSpotSlackSalesOperationsLead EnrichmentData SyncNotifications & Alerts
PromptCreate

Build me an agent workflow that turns every Typeform demo request into a verified, enriched lead in Snov.io and HubSpot, with a Slack alert to sales.

Trigger: a Typeform outgoing webhook on my demo request form. The form sends first name, last name, work email, and company domain. I will configure the webhook URL on the Typeform side, the workflow just needs to accept the inbound payload.

When a submission comes in, the agent should do the following:

1) Parse first name, last name, email, and company domain out of the Typeform payload. Normalize the email to lowercase and trim whitespace.

2) Dedupe before doing anything else. Call Snov.io "Get Prospect by Email" and HubSpot "Get Contact" (by email) to see if this person already exists. If they exist in either system, skip the create steps below but still post a short Slack note saying "already in CRM / Snov.io" so sales knows they came back.

3) Verify the email with Snov.io "Verify Emails". This is async, so start the verification and poll the result. Treat results of valid or accept-all as good. Treat invalid, disposable, or risky as bad.

4) If the email is bad: skip the CRM and prospect-list writes and post a brief triage note to a designated Slack triage channel using "Send a Message". Include the name, company domain, the verification verdict, and the raw form submission so a human can decide. Stop here.

5) If the email is good: call Snov.io "Domain Search (Company Info)" on the company domain to pull industry, company size, headquarters location, and a short description. This is async too, so start and poll the result. If the company lookup fails or returns nothing, continue with whatever we have from the form.

6) Add the person to my designated Snov.io prospect list using "Add Prospect to List". Use the verified email, first name, last name, and company info from the domain search. The list ID should be configurable at setup time.

7) Create a HubSpot contact with "Create Contact" using the verified email, first name, last name, company name, industry, and any other enrichment fields that came back from Snov.io.

8) Post a Slack alert to a designated sales channel using "Send a Message". Include the prospect's name, company name, industry and size, and a one-line AI-written "why this lead matters" summary based on the company info plus what they wrote on the form. Keep the message tight, four or five lines max.

Configuration the workflow should expose at setup: the Snov.io prospect list ID, the Slack channel for verified leads, the Slack channel for triage / risky leads, and whether to treat "risky / accept-all" as good or bad.

Error handling: if Snov.io verification times out or fails, fall back to treating the email as risky and post to the triage channel. If HubSpot create returns a 409 conflict (contact already exists), treat it like the dedupe path and post the "already in CRM" note instead of failing the run.

What does this prompt do?

  • Catches every demo request from Typeform the moment it is submitted.
  • Verifies the email so bad addresses do not pollute your CRM or outbound.
  • Pulls quick company context (industry, size, location) for the new lead.
  • Adds verified leads to your Snov.io prospect list and HubSpot, then pings sales in Slack with a short reason this one matters.

What do I need to use this?

  • A Typeform account with your demo request form set up
  • A Snov.io account on a paid plan (API access is paid-only)
  • A HubSpot account with permission to create contacts
  • A Slack workspace and the channel where you want lead alerts

How can I customize it?

  • Swap the demo request form for any Typeform that captures name, email, and company.
  • Change which Snov.io prospect list new leads land in.
  • Choose different Slack channels for verified leads versus risky ones.
  • Adjust how strict the email check is, for example accept or skip results marked risky.

FAQs

What happens if someone submits a bad email address?
If the verification comes back invalid or risky, the workflow skips writing to Snov.io and HubSpot and instead posts a short triage note to Slack so your team can decide whether to follow up manually.
Will this create duplicates if the same person submits the form twice?
No. Before adding anyone, the agent looks them up by email in both Snov.io and HubSpot. If a contact already exists, it skips the create and notes that in the Slack message.
Do I really need a paid Snov.io plan?
Yes. Snov.io's API, including the email verifier and prospect list tools, is only available on paid plans. The free tier will not work.
Can I point this at a different Typeform, like a contact form or waitlist?
Yes. The workflow just needs a form that captures first name, last name, email, and company or company domain. You can swap in any Typeform that collects those fields.
Where does the 'why this lead matters' line in Slack come from?
Geni writes it on the fly using the company info from Snov.io and what the person filled in on the form, so each alert gives sales a quick reason to prioritize the lead.

Related templates

Call overdue Xero customers with an AI collections agent

Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.

LiveKit
Xero
Deepgram
+2
Agentic Task
Win back LiveChat visitors whose chats went unanswered

Every couple of hours we find the chats your team never answered, email those visitors a real reply, and hand the sensitive ones to a support lead.

LiveChat
Gmail
Slack
Agentic Task
Turn Mailjet email clicks into ranked HubSpot follow-ups

Twice a day we spot the people clicking your pricing and demo pages, create a follow-up task for their owner, and post a ranked recap to Slack.

Mailjet
HubSpot
Slack Bot
Agentic Task
iMessage campaign console with pre-flight checks and delivery board

Build every text campaign in one screen: check who is actually reachable, see a realistic send plan, then watch delivery land row by row.

LoopMessage
Google Sheets
HubSpot
App
Chat quality review board for LiveChat support leads

Score last week's finished live chats against one rubric, let an AI grader draft the notes with quotes, and send coaching straight to the agent.

LiveChat
Slack
General Input Database
App
A searchable RFP answer library your bid team drafts from

Every proposal you have ever submitted in one searchable archive, with the closest past answers lined up against each question in a new RFP.

General Input Storage
General Input Database
Mistral AI
+2
App

Stop letting bad leads pollute your CRM.

Connect Typeform, Snov.io, HubSpot, and Slack once. Geni handles every new demo request from there.