MailPoet Integration: Subscribe and Sync WordPress Users to Lists
Krom Automation Pro connects to MailPoet, the self-hosted email marketing plugin for WordPress. Unlike the other email marketing integrations, MailPoet requires no API key — it runs directly on your WordPress site and Krom Automation connects to it using MailPoet’s native PHP API.
The integration gives you two triggers and two actions, covering subscriber creation events and the ability to add or remove subscribers from MailPoet lists programmatically based on any WordPress event.
Requirements #
- Krom Automation Pro installed and activated
- MailPoet installed and active on the same WordPress site
No configuration is needed. Krom Automation detects MailPoet automatically when it is active.
Available triggers #
Subscriber Created
Fires when a new subscriber is created in MailPoet, regardless of where the subscription originated- a MailPoet signup form, a widget, or programmatically.
| Data field | Description |
|---|---|
subscriber_id | MailPoet subscriber ID |
email | Subscriber email address |
first_name | Subscriber first name |
last_name | Subscriber last name |
status | Subscriber status at creation (e.g. subscribed, unconfirmed) |
list_id | ID of the list the subscriber was added to |
list_name | Name of the list |
created_at | Date the subscriber was created |
Common use: Sending a welcome email from Krom Automation when a new MailPoet subscriber is created, triggering a WordPress action like granting a role or updating user meta when someone joins your list, or syncing new MailPoet subscribers to an external CRM.
Subscriber Status Changed
Fires when a MailPoet subscriber’s status changes. Common status transitions include subscribed to unsubscribed, unconfirmed to subscribed (when a subscriber confirms their email), or subscribed to bounced.
| Data field | Description |
|---|---|
subscriber_id | MailPoet subscriber ID |
email | Subscriber email address |
old_status | The status before the change |
new_status | The status after the change |
Common use: Triggering a re-engagement workflow when a subscriber’s status changes to unsubscribed, or granting WordPress access when a subscriber confirms their email and their status changes to subscribed.
Available actions #
Subscribe
Subscribes an email address to a MailPoet list. If the subscriber already exists in MailPoet, this updates their list membership rather than creating a duplicate.
| Field | Required | Description |
|---|---|---|
email | Yes | The subscriber’s email address. Use the appropriate merge tag from your trigger. |
first_name | No | Subscriber’s first name. |
last_name | No | Subscriber’s last name. |
list_id | Yes | The MailPoet list ID to subscribe them to. Find this in MailPoet under Lists — hover over the list name to see the ID in the URL. |
Important: Always use the correct list ID. MailPoet throws an exception when an invalid list ID is passed, which Krom Automation catches and logs as a failed step. Double-check your list ID before activating any workflow using this action.
Unsubscribe
Removes a subscriber from a specific MailPoet list without deleting them from MailPoet entirely.
| Field | Required | Description |
|---|---|---|
email | Yes | The subscriber’s email address. |
list_id | Yes | The MailPoet list ID to remove them from. |
Setting up your first MailPoet workflow #
- Go to Krom Automation > Workflows and click Add New Workflow.
- Choose your trigger. For subscribing users to MailPoet, common triggers are User Registered, WooCommerce Order Completed, and form submission triggers from your form plugin.
- Click + and add a MailPoet Subscribe action.
- Enter the email merge tag and your MailPoet list ID.
- Add first name and last name fields if your trigger exposes them.
- Simulate to confirm the action would execute without errors.
- Activate.
Screenshot: Krom Automation canvas with a WooCommerce Order Completed trigger connected to a MailPoet Subscribe action, with the email field and list ID configured.
Finding your MailPoet list ID #
In MailPoet, go to Lists in the main navigation. Hover your cursor over any list name. Look at the URL shown in your browser’s status bar — it includes the list ID as a number. Alternatively, click into the list’s edit settings and look at the URL in your browser address bar.
Real-world automation examples #
Subscribe new WordPress users to your newsletter list Trigger: User Registered Action: MailPoet Subscribe using {{user_email}}, {{first_name}}, {{last_name}}, and your newsletter list ID.
Add WooCommerce customers to a customers list Trigger: WooCommerce Order Completed Action: MailPoet Subscribe using {{customer.email}}, {{customer.first_name}}, {{customer.last_name}}, and your WooCommerce customers list ID.
Send a welcome email when a subscriber confirms their email Trigger: MailPoet Subscriber Status Changed Condition: new_status equals subscribed and old_status equals unconfirmed Action: Krom Automation Send Email to {{email}} with a personalised welcome message.
Remove subscribers from a list when a membership expires Trigger: MemberPress Membership Expired Action: MailPoet Unsubscribe using {{user_email}} and your members-only list ID.
Trigger a WordPress action when a subscriber unsubscribes Trigger: MailPoet Subscriber Status Changed Condition: new_status equals unsubscribed Action: Change User Role to subscriber (removing any premium access role they may have held)
Pre-built templates #
Install these from Krom Automation > Templates:
| Template | What it does |
|---|---|
mp-new-subscriber-welcome | Sends a welcome email when a new MailPoet subscriber is created |
mp-user-registration-subscribe | Subscribes new WordPress users to a MailPoet list |
mp-woo-customer-subscribe | Subscribes WooCommerce customers to MailPoet on purchase |
Troubleshooting on MailPoet integration #
The MailPoet Subscribe action is failing with a list ID error
The most common cause is an incorrect list ID. Go to MailPoet, hover over the list name in the Lists view, and copy the exact numeric ID from the URL shown in your browser. Re-enter it in the action configuration. Even a single extra character will cause MailPoet to throw an exception.
MailPoet triggers aren’t appearing in the trigger list
Confirm MailPoet is installed and active. Krom Automation detects MailPoet automatically — if it’s not appearing, try deactivating and reactivating the Krom Automation Pro plugin to force a fresh detection scan.
Subscribers are being added with unconfirmed status instead of subscribed
This happens when MailPoet’s double opt-in setting is enabled on the list. Check the list settings in MailPoet and decide whether to enable or disable confirmation emails for that list. This is a MailPoet setting — Krom Automation passes subscriber data to MailPoet and MailPoet applies its own confirmation rules.
The Subscriber Status Changed trigger isn’t firing on unsubscribes
Confirm the subscriber is unsubscribing through a MailPoet-controlled mechanism (the unsubscribe link in a MailPoet email or the MailPoet unsubscribe page). If the subscriber is removed externally or via a direct database change, the hook may not fire.