Screen new Typeform submissions before they hit HubSpot

By General Input

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.

Integrations

  • Typeform
  • OpenAI
  • HubSpot
  • Slack Bot

Type

Agentic Task

Categories

  • Customer Support
  • Sales

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).

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery boardLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsA searchable RFP answer library your bid team drafts fromLinkedIn Ads budget pacing dashboard for every client account