What it does
mam-brevo-email-manager adds your WordPress and app users to a Brevo contact list and keeps their details current, so you can send newsletters and automations from Brevo.
- New signup (app or website): the user is created in Brevo and added to your list.
- Profile update: name and email changes are sent to Brevo. An email change updates the existing Brevo contact instead of creating a second one.
- Role change: the contact is updated, so attributes that depend on the role stay correct.
- Account deleted: the contact is removed from your list (default), deleted from Brevo, or left alone. You choose.
It is single opt-in: users are added as subscribed contacts. Make sure your signup terms cover marketing email.
Sync runs in the background on WordPress scheduled jobs (WP-Cron). Signup never waits for Brevo. If Brevo is busy or rate-limits the site, the plugin waits and tries again (after 1 minute, 5 minutes, 15 minutes, 1 hour and 3 hours).
The plugin does not send email and adds no public endpoints. You use your own Brevo API key. Tiny Screen Labs never sees it.
Setup
1. Create a Brevo API key
- Sign in to Brevo.
- Click your name (top right) and choose SMTP & API, then the API keys tab.
- Click Generate a new API key, give it a name such as “WordPress sync”, and copy the key. It starts with
xkeysib-.
Brevo shows the key only once. Keep it somewhere safe.
2. Create or choose a list
In Brevo, go to Contacts > Lists. Use an existing list or create one, for example “App users”.
3. Paste the key in WordPress
- In WordPress, go to WP Admin > Mobile App Mgr > Brevo.
- In Sync settings, paste the key into Brevo API key (v3) and click Save Settings.
- Click Test connection. You should see your Brevo account email and plan. If not, the message shows Brevo’s reason (for example an invalid key).
The key is stored on your site only. The screen shows the last 4 characters. To replace it, paste a new key and save. To remove it, tick Remove the saved key and save.
4. Choose what to sync
On the same screen:
- Contact list: the list users are added to. Use Reload lists from Brevo if you just created one.
- When to sync: new signups, profile updates, role changes. All are on by default.
- When a user is deleted: remove from the list (default), delete the contact, or do nothing. Deleting a contact in Brevo also removes its unsubscribe history, so a person who unsubscribed could be added again later. Removing from the list keeps that history.
- Roles to sync: tick the roles that belong on the list. None ticked means every role, including administrators.
5. Create the attributes
If your site sends extra contact fields (see Contact attributes below), click Create missing attributes in Brevo once. Brevo ignores values for attributes that do not exist.
6. Turn it on
Tick Sync active and save. Sync is off until you do this, so you can set everything up first.
To check one user right away, enter their user ID or email under Status and log > Sync one user now.
Contact attributes
By default each contact gets:
| Brevo attribute | From |
|---|---|
| The user’s WordPress email | |
FIRSTNAME |
First name (only when filled in) |
LASTNAME |
Last name (only when filled in) |
Other MAM plugins and site code can add more attributes (for example a plan, a role label or a date) with the mam_brevo_contact_attributes filter. The Contact attributes panel lists every attribute this site sends and whether it was declared by code or detected from a sample user.
Existing users
Users who signed up before the plugin was active are not added automatically. Profile and role updates only touch users who are already in Brevo. To add everyone at once, see Recipe: Sync existing users to Brevo.
Status and log
The Status and log panel shows how many users have been synced, how many failed on their last attempt, and the last 50 sync results with Brevo’s response code and message.
Each user also carries these user meta fields:
| Meta key | Meaning |
|---|---|
mam_brevo_contact_id |
The Brevo contact ID |
mam_brevo_synced_at |
Unix time of the last successful sync |
mam_brevo_last_error |
The last error, removed after the next success |
For developers
| Hook | Type | Purpose |
|---|---|---|
mam_brevo_contact_attributes |
filter | Add or change the attributes sent for a user. |
mam_brevo_contact_list_ids |
filter | Add a user to more lists, or different ones. |
mam_brevo_should_sync_user |
filter | Exclude users, or include users the role setting leaves out. |
mam_brevo_attribute_definitions |
filter | Declare attribute types for the “Create missing attributes” tool. |
mam_brevo_sync_user |
action | Queue a background update for a user from your own code. |
mam_brevo_user_synced |
action | Run code after a user was saved in Brevo. |
Each hook has its own article.
WP-CLI
| Command | What it does |
|---|---|
wp mam-brevo test |
Checks the API key. |
wp mam-brevo sync <id-or-email> [--dry-run] |
Syncs one user now, or prints what would be sent. |
wp mam-brevo backfill [--role=<role>] [--limit=<n>] [--dry-run] [--resume] |
Syncs existing users in batches. |
wp mam-brevo attributes [--dry-run] [--user=<id>] |
Creates missing attributes in Brevo. |
wp mam-brevo status |
Shows settings (key masked), backfill progress and recent log rows. |
WordPress options
| Option | Purpose |
|---|---|
mam_brevo_settings |
Settings array (active, list, triggers, delete mode, roles). |
mam_brevo_api_key |
The API key. Not autoloaded, never printed. |
mam_brevo_sync_log |
Last 50 sync results. |
mam_brevo_backfill_state |
Backfill cursor and counters. |
mam_brevo_account_info |
Account email and plan from the last connection test. |
Uninstalling the plugin removes these options and any queued jobs. User meta is kept, so a reinstall still knows which Brevo contact belongs to which user.
Requirements
- WordPress 6.3+, PHP 8.1+
- MAM Suite with
mam-mainactive - A Brevo account and an API v3 key
- WP-Cron running (default WordPress behaviour, or a server cron calling
wp-cron.php)
Related articles
- Recipe: Sync existing users to Brevo
- Hook: mam_brevo_contact_attributes
- Hook: mam_brevo_contact_list_ids
- Hook: mam_brevo_should_sync_user
- Hook: mam_brevo_attribute_definitions
- Hook: mam_brevo_sync_user
- Hook: mam_brevo_user_synced
Metadata
| Field | Value |
|---|---|
| Article type | Plugin Overview |
| Plugin slug | mam-brevo-email-manager |
| Applies to plugin version | 26.41.1+ |
| Category | Plugin Reference |
| Depends on | MAM Main |
| Works with | Brevo (formerly Sendinblue), any plan |
| Hooks exposed | mam_brevo_contact_attributes, mam_brevo_contact_list_ids, mam_brevo_should_sync_user, mam_brevo_attribute_definitions, mam_brevo_sync_user, mam_brevo_user_synced |
| Last verified | 2026-10-05 |
