How to Send a Welcome Email When a User Registers on WordPress
You can send a welcome email when a user registers on WordPress using Krom Automation, a free visual automation plugin. Set the User Registered trigger, connect a Send Email action, drop in merge tags like {{user.display_name}} and you are done. The whole setup takes under 10 minutes and the free plugin covers everything, no Pro required for a single welcome email.
WordPress ships with a bare-bones notification that goes to the admin, not the user, and when it does reach the user it is plain text with no branding and no call to action. That email does almost nothing to onboard a new member, customer or student. A personalised welcome message sent within seconds of registration is one of the highest-open-rate emails a site will ever send, because the reader just took an action and the context is still fresh.
This guide walks through the exact setup in Krom Automation: trigger, delay, personalised body with merge tags, a dry-run test using the built-in simulator, and an AI-generated variant for sites that want something more tailored. We also cover role-based branching, deliverability, and the WP-Cron timing issue that trips up low-traffic sites.
Browse the full feature list or jump straight to the walkthrough below.
Quick Summary
| Goal | What you need | Free or Pro? |
|---|---|---|
| Send one welcome email on registration | User Registered trigger + Send Email action | Free |
| Personalise with the user’s name and username | Merge tags in the email body | Free |
| Delay the email by 5 minutes | Delay node (minutes, hours, days) | Free |
| Test without sending a real email | Workflow Simulator | Free |
| AI-written personalised email body | AI Generate Text action | Free (bring your own API key) |
| Send different emails by user role | Conditional branching (Yes/No paths) | Free |
| Multi-step onboarding sequence | Multiple Send Email actions with delays | Free |
| Branded HTML email with a visual builder | Visual Email Builder | Pro |
| Trigger from a form plugin (Gravity Forms, WPForms, Fluent Forms) | Form-specific trigger | Pro |
Why the Default WordPress Registration Email Falls Short
Out of the box, WordPress sends two emails on registration: one to the admin saying a new user joined, and one to the user containing only their username and a password reset link. Both are plain text. Neither carries your branding, your product name, or any guidance on what to do next.
Research consistently shows that welcome emails average open rates above 50 percent, often 3 to 4 times higher than a standard newsletter. Sending the wrong thing at that moment is not a neutral outcome. It is a missed handshake with a reader who was ready to engage.
The plugins most commonly recommended for this, such as Better Notifications for WP, solve the plain-text problem but stop there. They give you a customisable template with shortcodes, but no conditional logic, no delays, no sequences, and no analytics on whether the email actually ran. Krom Automation treats the welcome email as the first step in a workflow, not a standalone notification, which means you can extend it later without rebuilding from scratch.
A welcome email sent at registration has a 50-plus percent open rate. What you put in that email matters more than almost any campaign you will ever run.
Step-by-Step: Send a Welcome Email When a User Registers on WordPress
Everything below uses the free version of Krom Automation. Download the free plugin from the WordPress.org plugin directory, install it, and activate it before starting. Full installation instructions are in the Krom Automation installation guide.
Step 1: Create a New Workflow
Go to Krom Automation > Workflows in your WordPress admin and click Add New. Give the workflow a name you will recognise, such as “Welcome Email on Registration”. The canvas opens with a blank start node.
You can also load one of the 20 free workflow templates. There is a welcome email template in the User category that pre-populates the trigger and a basic Send Email action, which saves a few clicks if you want a starting point.
Step 2: Set the User Registered Trigger
Click the trigger node and select User Registered from the User trigger group. This fires once each time a new account is created through any standard WordPress registration path: the default login page, WooCommerce checkout, or any plugin that calls the native user_register hook.
The trigger exposes a set of merge tags automatically, including {{user.display_name}}, {{user.user_email}}, {{user.user_login}} and {{user.ID}}. You will use these in the email body. The full list is documented in the merge tags reference.
Step 3: Add a Short Delay (Optional but Recommended)
Sending a welcome email the instant someone hits the registration button can feel robotic, and it also means the email races the password confirmation email that WordPress sends natively. A 5-minute delay lets WordPress finish its own notifications first and makes your welcome feel slightly more considered.
Click the plus icon below the trigger, select Delay, and set it to 5 minutes. Delays in Krom Automation run via Action Scheduler, so they do not block page loads. The delay documentation covers all available units, including minutes, hours, days, weeks and a custom seconds value, in the delays and scheduling guide.
Step 4: Add the Send Email Action
Add a Send Email action after the delay node. Fill in the following fields:
- To:
{{user.user_email}}(sends to the newly registered user) - From name: Your site or brand name
- Subject: Something like “Welcome to [Site Name], {{user.display_name}}”
- Body: Your welcome message, with merge tags for personalisation
A simple body might read: “Hi {{user.display_name}}, thanks for joining. Your login is {{user.user_login}}.
Here is where to start: [link to your getting started page].” That is already meaningfully better than the default WordPress email. The full actions reference lists every available field and its accepted values.
Step 5: Test with the Workflow Simulator
Before activating the workflow, run it through the Workflow Simulator. Click the simulator button in the top toolbar, supply a test user ID, and the simulator executes every step in dry-run mode: no email is sent, no database rows are written, but you see exactly what would happen at each node, including the resolved values of every merge tag.
This is the correct way to verify the workflow. Registering a real test account works too, but the simulator is faster and leaves no test users in your database. Full instructions are in the workflow simulator documentation.
Step 6: Activate and Monitor
Toggle the workflow to Active. From this point, every new registration triggers the sequence automatically.
The analytics dashboard shows total executions, success rate and failed execution count. The execution log gives you a per-step audit trail so you can see exactly when an email fired and what merge tag values it resolved to.
If an execution fails, for example because a user registered with no email address, Krom Automation sends you a failure notification and retries automatically with configurable backoff.
The simulator is the single biggest time saver in the plugin. Running a dry test takes 30 seconds. Finding out the merge tags resolved incorrectly after 200 registrations does not.
How to Personalise the Welcome Email with AI
The free plugin includes three AI actions: AI Generate Text, AI Content Moderation and AI Auto-Tag. You can use AI Generate Text to write the welcome email body dynamically rather than using a static template.
To set this up, insert an AI Generate Text node before the Send Email action. In the prompt field, write something like: “Write a warm, brief welcome email for a new user named {{user.display_name}} who just registered on [site name].
Keep it under 100 words. Do not include a subject line.”
The AI action outputs generated text. Store that output in a variable and reference it in the Send Email body field. The result is a unique email for every registration, which reads noticeably differently from a template.
You connect your own API key, and you pay your provider directly at standard rates. Supported providers and models in the free version include OpenAI GPT-4o Mini and GPT-4o, Google Gemini 2.0 Flash and 2.5 Flash Preview, and Groq Llama 3.3 70B. For a broader look at what AI can do across a WordPress site, see our guide on using AI to automate WordPress.
How to Send Different Welcome Emails Based on User Role
Not every registrant should get the same email. A customer who registers during WooCommerce checkout has different needs from a member who signed up for a course or a contributor who requested an account. Krom Automation handles this with conditional branching, available free.
After the User Registered trigger, add a Condition node and set the condition to check {{user.role}}. Each branch gets its own Send Email action with a subject line and body written for that audience:
- Customer role: “Your order account is ready. Here is how to track orders.”
- Subscriber role: “You are now subscribed. Here is what to read first.”
- Editor role: “Welcome to the team. Here is the editorial calendar.”
You can chain as many condition nodes as you need. Each Yes/No path is independent, so a customer never sees the contributor email and vice versa. The full logic reference is in the conditions and branching documentation.
How to Build a Multi-Step Welcome Sequence
Every competing tutorial treats the welcome email as a single message. It does not have to be. Because Krom Automation runs on a canvas with delays, you can build a full onboarding sequence from one workflow:
- Immediately (0 min): Internal Slack or email notification to your team that a new user registered
- 5 minutes later: Welcome email with login instructions and a link to your getting started guide
- Day 2: A follow-up email pointing to your most popular content or feature
- Day 7: A check-in email asking if they need help, with a link to support
Each step is a node on the canvas. Add a delay between each Send Email action and the sequence runs automatically for every new registrant.
The Run Once per entity setting ensures no user receives the sequence more than once, even if they somehow trigger the workflow twice. For Slack notifications, the messaging integrations guide covers Slack, Discord, Twilio and Telegram setup.
Connecting Registration to Your Email Marketing Tool
Sending the welcome email through Krom Automation is fine for transactional messages. For ongoing marketing, you probably want new registrants added to your email list automatically at the same moment. Add a second action branch from the User Registered trigger to subscribe the user to your list.
Krom Automation Pro connects to Mailchimp, ConvertKit, MailerLite, MailPoet, ActiveCampaign and FluentCRM, all on the same canvas as your welcome email workflow. Documentation for each integration is available separately:
- Mailchimp integration: subscribe, tag and sync users automatically
- FluentCRM integration: contacts, tags and lists
- MailerLite integration: subscribe, unsubscribe and manage groups
- ConvertKit integration: subscribers, tags, sequences and forms
That means a single registration event can fire the welcome email AND subscribe the user to your list AND tag them in your CRM, all in the same workflow without writing a line of code.
What About Deliverability? The Part Nobody Else Covers
Every tutorial for this topic assumes wp_mail() just works. It often does not. WordPress sends email via PHP mail by default, which most hosting providers either block outright or let through in a way that makes the email look suspicious to spam filters.
Before relying on any welcome email workflow, configure an SMTP plugin and verify your domain has valid SPF and DKIM records pointing to your sending provider. Tools like WP Mail SMTP or FluentSMTP handle this. Without proper authentication, a welcome email that triggers correctly in Krom Automation can still land in the user’s spam folder or disappear entirely, and the execution log will show a successful send because WordPress accepted the handoff to PHP mail.
Krom Automation’s failure notifications and execution logs will not catch a deliverability problem at the SMTP level. They tell you whether WordPress accepted the email for sending.
Whether it arrived is a question for your SMTP provider’s delivery logs. This is the honest limitation every automation plugin shares, not just Krom Automation.
The WP-Cron Timing Issue on Low-Traffic Sites
Delayed actions in Krom Automation run through Action Scheduler, which relies on WP-Cron. WP-Cron fires when someone visits your site. On a site that receives very little traffic, a delay set to 5 minutes might not execute until the next visitor arrives, which could be an hour later.
The fix is a real server cron job that calls wp-cron.php on a schedule, typically every 5 minutes. Your hosting control panel usually supports this. Once a real cron is in place, delays run on time regardless of traffic.
For a welcome email, a few minutes of imprecision is harmless. For time-sensitive automations, the server cron is not optional.
Action Scheduler is solid infrastructure. WP-Cron is the weak link, and on a quiet site it is the only reason a delay does not run on time. Fix the cron and the rest takes care of itself.
What This Does Not Cover (Honest Constraints)
A few scenarios that fall outside this setup:
- Registration via third-party forms: If users register through Gravity Forms, WPForms, Fluent Forms, or Elementor Forms, the User Registered trigger may fire depending on whether the form creates a WordPress user. Pro-tier integrations give you form-specific triggers with access to every field. See the Gravity Forms integration docs or the WPForms integration docs for the exact setup.
- Email confirmation gating: If you want to send the welcome email only after the user confirms their address, you need a plugin that adds email confirmation to the registration flow. The User Registered trigger fires on account creation, not on confirmation.
- Suppressing the default WordPress notification: WordPress sends its own registration email separately. Krom Automation does not suppress that. If you want to remove the default email, you need a small code snippet using the
wp_new_user_notification_emailfilter, or a plugin that manages registration emails. - Membership-gated registration: Sites using MemberPress, BuddyBoss or similar have their own registration flows with additional triggers. The MemberPress integration and BuddyBoss integration cover those scenarios.
Free vs Pro: What You Actually Need for Welcome Emails
| Use case | Free | Pro |
|---|---|---|
| Single welcome email with merge tags | Yes | Not needed |
| Delayed delivery (minutes, hours, days) | Yes | Not needed |
| AI-generated email body | Yes (bring your own key) | Not needed |
| Role-based conditional branching | Yes | Not needed |
| Multi-step onboarding sequence | Yes | Not needed |
| Execution logs and analytics | Yes | Not needed |
| Branded HTML email with visual builder | No | Yes |
| Subscribe user to Mailchimp or FluentCRM at the same time | No | Yes |
| Trigger from Gravity Forms or WPForms registration | No | Yes |
| 80+ additional triggers for advanced conditions | No | Yes |
Pro starts at $69 a year or $199 as a lifetime purchase for a single site. See the full plan comparison to decide whether the email marketing integrations or the visual email builder justify the upgrade for your site.
Also from wpRigel
Pollify is our Gutenberg-native poll, survey and quiz plugin. Polls are built directly as blocks inside the editor, so there are no shortcodes to paste and no separate interface to configure. It is worth knowing about if you want to collect structured feedback from the users you are now onboarding.
Commandify is a command palette for the WordPress admin. Press Cmd or Ctrl plus K to jump anywhere in your dashboard, search content, and run admin actions without clicking through menus. It is the only command palette with genuine WooCommerce order, product and customer commands built in.
Our Verdict
If your goal is a personalised, conditional, logged welcome email that you can extend into a full onboarding sequence later, the free version of Krom Automation is the right tool and the setup takes less than 15 minutes. The visual canvas makes the logic readable at a glance, the simulator means you never test on real users, and the execution logs tell you exactly what ran and when.
If you only need a static plain-text welcome email and have no plans to add logic or sequences, a lightweight notification plugin is a simpler choice. Krom Automation is deliberately more capable than a notification plugin, which makes it slightly more to configure even for the simplest case.
For anyone building a membership site, a course platform, a SaaS on WordPress, or any site where the registration moment matters, start with the free plugin, get the welcome email working, then decide whether the Pro email marketing integrations or the visual email builder are worth the upgrade.
Download Krom Automation free from the WordPress.org plugin directory and follow the first workflow walkthrough in our documentation to have it running in minutes.
See Krom Automation pricing and plan details if you are ready to add email marketing integrations or the branded email builder.
Frequently Asked Questions
Does Krom Automation replace the default WordPress registration email?
No. Krom Automation sends its own welcome email as an additional automation.
The default WordPress registration notification still fires unless you suppress it separately using the wp_new_user_notification_email filter or a plugin that manages that notification. Most sites choose to disable the default and let Krom Automation handle the messaging entirely.
Can I send the welcome email only after the user confirms their email address?
Not with the User Registered trigger alone. That trigger fires when the account is created, not when the address is verified.
If your registration flow requires email confirmation via a plugin, check whether that plugin fires a custom hook on confirmation. If it does, you can use the HTTP webhook receiver in Krom Automation Pro to catch it, or request a native trigger on the Krom Automation roadmap.
Why is my welcome email going to spam?
Almost certainly a deliverability issue, not an automation issue. WordPress uses PHP mail by default, which lacks SMTP authentication and is treated as suspicious by most inbox providers.
Install an SMTP plugin, configure it with your sending provider, and verify your domain has SPF and DKIM records in place. Once those are correct, emails sent through Krom Automation arrive like any properly authenticated message.
Can I send different welcome emails based on which registration form the user used?
Yes, in two ways. For role-based differences, use a Condition node on {{user.role}} in the free plugin. For form-specific differences based on which Gravity Forms, WPForms or Fluent Forms form the user completed, you need the Pro-tier form integrations, which give you form-specific triggers with access to individual field values.
How do I resend a welcome email to a user who did not receive it?
Open the execution log for the workflow and find the original execution for that user. If it failed, the log shows the reason and the retry count.
If you want to trigger a resend manually, you can do so from the execution log or by using the HTTP Request action to call your own workflow endpoint. For a one-off resend, the simplest approach is temporarily duplicating the workflow, setting it to run once, and manually triggering it with the user ID.
Does registering through WooCommerce checkout trigger the User Registered event?
Yes. When a customer creates an account during WooCommerce checkout, WordPress creates a standard user record and fires the same user_register hook.
Krom Automation’s User Registered trigger catches this automatically. If you want to send a different welcome email to customers versus other registrant types, add a Condition node checking whether the user has the Customer role.