Fake form fills in HubSpot come from two places: bots filling every field, and people typing a fake or throwaway address to reach a download. Both land as contacts, and both can end up in your next email send, where they bounce or sit silent.
You can stop most of the damage without rebuilding the form. The steps below add a ZapBounce check after each submission and store the answer on the contact, so your lists and workflows can act on it. If you post form data to HubSpot from your own code, the last section shows the check that runs before the contact exists.
The short version
- HubSpot access to create contact properties, active lists and workflows
- A ZapBounce account with an API key, plus a Zapier account for the no-code route
The steps
Create the result properties
In HubSpot, add a dropdown contact property called Email check with four options: valid, invalid, catch_all and unknown. Add a checkbox property each for role and disposable, and a date property for when the check ran.
Start a Zap on new form submissions
In Zapier, pick HubSpot as the trigger app and choose the new form submission trigger for the form you want to protect. Test it with one real submission so the email field is mapped.
Add the ZapBounce verify step
Add ZapBounce as the action and choose Verify email, then map the email field from the form. The step returns the result, the reason, the
roleanddisposableflags and adid_you_meansuggestion. The Zapier integration page shows every field it returns.Write the answer back to the contact
Add a HubSpot update contact step, find the contact by email, and fill Email check, the two flags and today's date from the ZapBounce step.
Build the lists your sends use
Create an active list where Email check is valid and disposable is false, and point your marketing emails at it. Create a second active list for catch_all so you can send to those contacts on their own and watch the bounces.
Set invalid contacts to non-marketing
Add a HubSpot workflow that enrols contacts where Email check is invalid or disposable is true, and sets them as non-marketing contacts. Keep the record, because a sales rep may still need the company name and the form answers.
Clean the contacts you already have
Export existing contacts as CSV, verify the file on the bulk page, and import the results back matched on email so records update rather than duplicate. The HubSpot list cleaning guide covers that import in detail.
Checking before the contact is created
If your site sends form data to HubSpot from your own server, put the check in that handler. Call POST /v1/verify with the address, and only pass the submission on to HubSpot when the result isn't invalid and the disposable flag is false. The real-time verification page covers the call, and the API page shows the response.
Keep a short timeout and let the submission through when it expires. You can check that contact later with the Zapier flow above, and a slow mail server never costs you a lead.
What each result means for a HubSpot contact
A valid result means the mail server accepted that mailbox when we asked at RCPT TO. An invalid one means a definite no, such as a dead domain or a 550 for that user. A catch_all means the domain accepts every address, which is common at larger companies, so keep those contacts and watch how they engage.
An unknown means the server wouldn't give a straight answer, often because of greylisting. It's never billed, and you can check it again a day later. The role flag marks addresses like info@ and sales@, which are fine for a sales follow-up but weak for a newsletter.
What the checks cost
Each form fill costs one credit when we get an answer from the mail server. Unknowns and duplicates are never billed, and credits never expire, so a quiet month costs nothing. Prices start at $5 for 1,000 checks, and every account gets 100 free checks a month with no card. See the pricing page.
Questions people ask
How do I stop fake email signups on a HubSpot form?
Verify every submitted address with a verification API, store the result on the contact, and keep invalid and disposable addresses out of marketing lists with an active list and a workflow. A Zapier step on the form submission does this without code.
Can I block a HubSpot form submission with a disposable email?
Yes, when your own server sends the form data to HubSpot. Check the address first and pass it on only when the disposable flag is false. With the Zapier route, the contact is created and then set to non-marketing.
Does verifying HubSpot form emails send anything to the contact?
No. ZapBounce stops at the RCPT TO step of the SMTP handshake and closes the connection before any message data, so the person who filled in the form receives nothing.
How much does it cost to verify HubSpot form submissions?
One credit per checked address, from $5 per 1,000 checks. Unknown results and duplicates are never billed, credits never expire, and every account gets 100 free checks a month with no card.