When a new submission received in Contact Form 7, check if the email is valid with MailRefine and create a user in WordPress
Each Contact Form 7 submission has its email checked by MailRefine, then a WordPress user is created from the entry. As imported, the user is created whatever the check returns, so add a Filter to act on it.
Contact Form 7
MailRefine
WordPress3 steps Setup ~5 min Used on 675 sites Free to import

What this workflow does
Some sites turn form sign-ups into WordPress accounts, for a members area or a customer portal. Accounts made from mistyped or fake addresses are hard to use and clutter your users list. This workflow runs an email check before the account step, so the result is there for you to act on.
A Contact Form 7 submission starts the run. FlowMattic sends the email address to MailRefine with Verify Single Email, and the response becomes data you can use in later steps. Then the WordPress New User action creates an account on your site from the details you map.
The template has no condition between the check and the account. Every submission creates a user, even when MailRefine reports a problem. To create accounts only for addresses that pass, add a Filter between MailRefine and WordPress that continues when the result shows a valid address. Run a test with a good and a bad address to see which value MailRefine returns for each.
Members area sign-up form
A Contact Form 7 form collects new members. After you add the Filter, only people whose address passes the check get a WordPress account.
Client portal registration
Clients request portal access through a form, and the MailRefine result helps you avoid accounts for mistyped addresses.
Event attendee accounts
Attendees who register through the form get a WordPress login for event materials, with the email checked before the account step runs.
How this workflow runs
What happens at each step once the workflow is on, and what you need before you import it.
Contact Form 7 New Form SubmissionStarts the flow when a visitor submits your Contact Form 7 form. The submitted email and other fields are passed to the next steps.
MailRefine Verify Single EmailChecks the submitted email with MailRefine. Map the form's email field into the step and connect MailRefine. The result can be used by a Filter before the user is created.
WordPress New UserCreates a WordPress user from the submission. Map the email and other details into the step, and confirm the account settings with a test run. As imported, this runs for every submission.
What you need
- FlowMatticCore
- Contact Form 7 PluginPlugin
- MailRefine AccountAccount
After importing, map your own data. To keep the template universal, not every step is pre-filled. Open each step in the builder and connect your accounts and fields (channels, lists, sheets, recipients) before you switch the workflow on.
Make it yours
Changes worth making after you import it.
- Add a Filter between MailRefine and WordPress that continues only when the verification result shows a valid address. Without it, every submission creates an account.
- Make the email field required in your form with the email* tag, so MailRefine always has an address to check.
- Test with your own address after import and look at the new user in WordPress to confirm which role and details it received.
Questions about this workflow
Does MailRefine stop the WordPress user from being created?
Not as imported. The check runs and its result is available, but nothing acts on it. Add a Filter after MailRefine so the user step runs only for valid addresses.
What happens if the email already belongs to a WordPress user?
WordPress does not allow two users with the same email, so that run cannot create a second account. Task History shows the error on the user step.
Do I need a MailRefine account for this Contact Form 7 workflow?
Yes. The verification step runs through your MailRefine account, which you connect after import.
More CRM & Contacts workflows
Other ready-to-import templates from the same category.






Import this workflow into your WordPress site
Download the JSON, import it from the Workflows screen and connect your accounts. Every run stays on your server, with no per-task fees.
30-day money-back guarantee Unlimited workflows and runs Self-hosted