Screen new Typeform submissions before they hit HubSpot

Every new form response gets screened for abusive content. Clean leads flow into HubSpot and #new-leads. Flagged ones skip your CRM and go to a safety channel.

Agentic Task
TypeformOpenAIHubSpotSlack BotCustomer SupportSalesNotifications & AlertsLead EnrichmentFeedback Triage
PromptCreate

When a new response comes into my public Typeform form (contact us or waitlist), I want an agent to screen the submission before anything is written to my CRM. Not every submission is a real lead. Some are spam. Some are abusive. I want those to never touch HubSpot.

Trigger: Typeform webhook, firing once per new form response. The webhook body includes the answers and a response token.

What the agent should do on each run:

1) Parse the incoming payload. Pull out the free-text answers (message, how can we help you, comments, anything long-form the respondent typed) plus the structured fields I care about: email, first name, last name, company, and the form name or ID so we know which form this response came from. If the webhook payload is thin or missing something, fall back to Typeform Retrieve Responses using the response token to fetch the full record.

2) Run every free-text answer through OpenAI Create Moderation as one combined input. Look specifically at the harassment, hate, sexual, and violence categories and their confidence scores.

3) Decide the routing using judgement, not just the numeric score. Three paths:

Abusive path: If moderation flags harassment, hate, sexual, or violence with high confidence, treat the submission as abusive. Do NOT call HubSpot. Post a Slack Bot Send a Message to my trust-and-safety channel with the responder's email (if any), the flagged categories and their scores, a short redacted excerpt of the offending text, and a link back to the raw Typeform response. Do not paste the full raw abusive content in plain text.

Clean-lead path: If the content is clean and looks like a real lead, call HubSpot Create Contact with email, first name, last name, company, and a lead source set to the Typeform form name (or a hidden field on the form if I set one). Then post a lightweight new-lead notification to my #new-leads channel using Slack Bot Send a Message: name, email, company, and their message in a quoted block.

Borderline path: Low-confidence flags, empty free-text, or content that reads as a real complaint about my company rather than a sales inquiry should NOT be auto-created in HubSpot. Route them to the trust-and-safety channel with a short 'please review' note explaining why the agent held it back, plus a link to the raw response.

Extra rules for the agent: use the responder's email as the dedupe key when calling HubSpot Create Contact so we don't create duplicate contacts if someone submits twice. If the moderation call itself fails, treat the response as borderline and route it to the safety channel instead of silently swallowing the error. Keep the Slack messages short and scannable, and always include a link back to the Typeform response so a human can open the original.

Integrations used: Typeform (webhook trigger, Retrieve Responses fallback), OpenAI (Create Moderation), HubSpot (Create Contact), Slack Bot (Send a Message, two channels: new-leads and trust-and-safety).

What does this prompt do?

  • Every time a new Typeform response lands, screens the free-text answers for abusive or spammy content before your CRM sees it.
  • Clean leads get added to HubSpot with name, email, company, and the source form, and are announced in your new-leads Slack channel.
  • Responses flagged for harassment, hate, sexual, or violent content skip HubSpot entirely and post to a trust-and-safety Slack channel with the categories, a short excerpt, and a link to the raw response.
  • Borderline cases like empty messages, real complaints, or low-confidence flags get routed to the safety channel for a human to review instead of quietly landing in your pipeline.

What do I need to use this?

  • A Typeform account with your contact us or waitlist form set up and webhooks enabled.
  • An OpenAI account (the moderation check itself is free to use).
  • A HubSpot account where new contacts should land.
  • A Slack workspace with a channel for new leads and a private channel for trust-and-safety alerts.

How can I customize it?

  • Change which moderation categories should route to safety review, and how strict the threshold is before a response gets flagged.
  • Swap the channels: one for new leads, one for trust-and-safety, or point both at the same channel while you test.
  • Adjust which form fields map into HubSpot as name, email, company, and lead source so it matches how your form is written.

FAQs

Will abusive submissions still end up in HubSpot?
No. If a response is flagged above your threshold, the workflow skips HubSpot entirely and only pings your trust-and-safety Slack channel. Your CRM stays clean.
What counts as a borderline response?
Low-confidence moderation flags, empty free-text answers, or messages that read as a real complaint rather than a lead. Those go to your safety channel with a short note so a human can decide.
Can I use this with a waitlist form instead of a contact form?
Yes. It works with any Typeform that captures free-text answers, an email, and optional name and company fields.
Does this work on the HubSpot Free tier?
Yes. Creating a contact is available on every HubSpot plan, so a free workspace works fine as long as you can connect it.
How fast is the check?
It runs the moment Typeform delivers the webhook, usually within a few seconds of the person hitting submit, so the Slack alert or new-lead notification lands almost immediately.

Related templates

A brand asset library your marketing team actually searches

Every logo, photo, video cut and ad export in one searchable grid, with previews, campaign tags and rights expiry dates at a glance.

General Input Storage
General Input Database
JigsawStack
+1
App
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
Clean out the Looker dashboards and Looks nobody opens

One board showing every dashboard and Look with its folder, owner and favorite count, so you can find dead content and retire it safely.

Looker
Slack Bot
App
LiveKit live operations console for room moderation

Watch every live room on one screen, remove disruptive guests, start recordings and end stuck sessions without anyone opening a terminal.

LiveKit
Slack Bot
General Input Database
App
Wake up dormant Keap leads with a researched reason

Every Monday we find leads who never bought, research a real reason to reach out, and send a short personal email instead of another check in.

Keap
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

Keep abusive form submissions out of your CRM.

Connect Typeform, HubSpot, and Slack once, and every new response gets screened before it ever reaches your sales team.