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.
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).
Additional information
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.
Frequently asked questions
Will abusive submissions still end up in HubSpot?
What counts as a borderline response?
Can I use this with a waitlist form instead of a contact form?
Does this work on the HubSpot Free tier?
How fast is the check?
Related templates
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.