Brevo Campaign Generator for WooCommerce
WooCommerce plugin to generate Brevo email campaigns using AI
by Red Frog Studio · github.com/dompl/brevo-campaign-generator · website
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/dompl/brevo-campaign-generator/releases/download/v1.3.8/brevo-campaign-generator-v1.3.8.zipReadme
Brevo Campaign Generator for WooCommerce
Automatically generate and send Brevo email campaigns from your WooCommerce store using AI — no design or copywriting skills required.
Overview
Brevo Campaign Generator connects your WooCommerce store to Brevo (formerly Sendinblue) and handles the entire email campaign workflow in one place:
- Template Builder — compose stunning emails from 19 reusable section types using drag-and-drop; AI fills in copy automatically
- Pick products — best sellers, new arrivals, least sold, or manual selection, filtered by category
- Generate copy — headlines, descriptions, and subject lines via OpenAI GPT
- Generate images — AI product imagery via Google Gemini (Pro or Flash)
- Build the email — flat HTML templates with live preview, or the recommended Template Builder approach
- Add a coupon — auto-generate WooCommerce discount codes with multiple display styles
- Push to Brevo — create, schedule, or send campaigns without leaving WordPress
- Review performance — Brevo campaign stats right in your dashboard
- Train the AI — store a description of your brand and products so AI copy stays on-brand every time
Requirements
| Requirement | Minimum Version |
|---|---|
| PHP | 8.1 |
| WordPress | 6.3 |
| WooCommerce | 8.0 |
| Brevo account | Any paid plan |
| OpenAI account | API access |
| Google Cloud account | Gemini API enabled (for AI images) |
| Stripe account | For credit top-ups |
Installation
- Download the latest release from the Releases page
- In WordPress admin, go to Plugins → Add New → Upload Plugin
- Upload the
.zipfile and click Install Now - Activate the plugin
- Navigate to Brevo Campaigns → Settings and enter your API keys
From Source
git clone https://github.com/dompl/brevo-campaign-generator.git
cd brevo-campaign-generator
composer install
npm install
npm run build
Then zip the folder and install via WordPress, or symlink to your wp-content/plugins/ directory for development.
Configuration
Step 1 — API Keys
Go to Brevo Campaigns → Settings → API Keys and enter:
| Key | Where to get it |
|---|---|
| OpenAI API Key | platform.openai.com/api-keys |
| Google Gemini API Key | aistudio.google.com/app/apikey |
| Brevo API Key | app.brevo.com/settings/keys/api |
| Stripe Publishable Key | dashboard.stripe.com/apikeys |
| Stripe Secret Key | dashboard.stripe.com/apikeys |
Use the Test Connection button next to each key to verify it works.
Alternative — define keys in wp-config.php:
You can define any API key as a PHP constant in wp-config.php instead of storing it in the database. When a constant is defined, the settings field shows a confirmation notice and the constant is used automatically:
define( 'BCG_OPENAI_API_KEY', 'sk-...' );
define( 'BCG_GEMINI_API_KEY', 'AIza...' );
define( 'BCG_BREVO_API_KEY', 'xkeysib-...' );
define( 'BCG_STRIPE_PUB_KEY', 'pk_live_...' );
define( 'BCG_STRIPE_SECRET_KEY', 'sk_live_...' );
Step 2 — AI Model Selection
Under Settings → AI Models, choose:
- OpenAI model — GPT-4o for best quality, GPT-4o Mini for lower cost
- Gemini model — Gemini 1.5 Pro for best images, Gemini 1.5 Flash for speed and economy
A pricing reference table shows estimated costs per generation to help you choose.
Step 3 — Brevo Configuration
Under Settings → Brevo:
- Select your default mailing list (populated from Brevo API)
- Set sender name and email (chosen from your verified Brevo senders)
- Add a campaign name prefix (e.g.
[WC])
Step 4 — Train the AI (Recommended)
Go to Brevo Campaigns → AI Trainer and fill in:
- About Your Store — background, values, tone, target audience
- About Your Products — key ranges, USPs, anything the AI should know
This context is injected into every AI generation call so copy stays on-brand without you having to re-describe your store each time.
Step 5 — Top Up Credits
Credits are used for every AI generation. Go to Brevo Campaigns → Credits & Billing to top up via Stripe. Choose a credit pack, pay securely, and your balance is updated instantly.
| Pack | Credits | Price |
|---|---|---|
| Starter | 100 | £5 |
| Standard | 300 | £12 |
| Pro | 1,000 | £35 |
Creating a Campaign
Option A — Template Builder (Recommended)
The Template Builder is the primary way to create beautiful, flexible email campaigns.
- Go to Brevo Campaigns → Template Builder
- Browse the Palette (left panel) — section types are grouped by category; click any variant card to add it to the canvas
- Drag sections to reorder them; click any canvas card to edit its settings in the right panel
- Use the AI Prompt button to describe your email brief; then click Generate with AI to fill all AI-capable sections
- Click Save Template to save the template for reuse
- When creating a new campaign, select your saved template from My Templates in Step 1
Generate with AI flow:
- Click the AI Prompt button — type a description of the email, or use the microphone button for voice input
- Saved prompts are stored locally (up to 10) and selectable from a dropdown
- Click Save & Generate with AI — the AI first designs the layout (which section types to use), then fills in copy for all AI-capable sections
- AI uses your AI Trainer store context automatically — no need to re-describe your brand
Option B — Campaign Wizard
For a guided, product-focused flow:
- Go to Brevo Campaigns → New Campaign
- Work through the 5-step wizard:
- Step 1 — Email Template: choose a saved Template Builder template or a flat HTML template
- Step 2 — Campaign Basics: title, subject line, mailing list
- Step 3 — Products: source (best sellers / least sold / latest / manual), category filter, number of products
- Step 4 — Coupon: auto-generate a WooCommerce coupon with discount type and expiry
- Step 5 — AI & Generate: tone, language, campaign theme; click Generate Campaign
You can generate up to 5 campaigns at once using the Number of Campaigns selector.
Editing a Campaign
After generation, the Edit Campaign page shows a live email preview alongside editable fields:
- Edit any field directly by typing
- Click Regenerate on any field to get a new AI version
- Drag products to reorder them
- Add or remove products with the + and remove buttons
- Switch templates using the template strip above the preview
Sending a Campaign
When you are happy with the campaign:
- Send Test Email — receive a test at your admin email
- Create in Brevo — saves as a draft campaign in your Brevo account
- Schedule — pick a date and time, campaign sends automatically via Brevo
- Send Now — sends immediately via Brevo
You can also schedule campaigns directly from the Dashboard without opening the editor.
Template Builder
Go to Brevo Campaigns → Template Builder to compose emails from reusable sections.
Section Types
| Section | AI | Description |
|---|---|---|
| Header | No | Logo, navigation links, background colour |
| Hero / Banner | Yes | Headline, subtext, CTA button, background image or colour |
| Hero Split | Yes | Two-column: image on one side, headline + text + button on the other |
| Text Block | Yes | Heading, body text, font and alignment controls |
| Image | No | Full-width or constrained image with optional link and caption |
| Products | Yes | WooCommerce product picker, 1–3 columns, price and button toggles |
| Banner | Yes | Bold heading and subtext strip, no button |
| Call to Action | Yes | Heading, subtext, and a prominent CTA button |
| Coupon — Classic | Yes | Bordered box with coupon code, headline, offer text, expiry |
| Coupon — Banner | Yes | Full-width dark strip with coupon code on the right |
| Coupon — Card | Yes | Elevated card with accent border and dashed code box |
| Coupon — Split | Yes | Two-column: discount amount left, code right |
| Coupon — Minimal | Yes | Clean centred layout with dashed border code box |
| Coupon — Ribbon | Yes | Dark background with ribbon accent strip |
| Divider | No | Horizontal rule — solid, dashed, dotted, or double; configurable thickness |
| Spacer | No | Fixed-height transparent gap block |
| Heading | No | Section heading with optional subtext and accent underline |
| List | Yes | Bulleted, numbered, checkmark, arrows, stars, dashes, hearts, diamonds, or plain list |
| Social Media | No | Configurable social platform icon links with optional logo |
| Footer | Yes | Footer text, unsubscribe link, footer links, optional social icons |
AI Generation
- Full generation: click AI Prompt to describe your email, then Save & Generate with AI — the AI designs the section layout and fills copy in one pass
- Per-section generation: each canvas card has an AI regenerate button for individual sections
- Voice input is available in the AI Prompt modal (Web Speech API; hidden on unsupported browsers)
- Saved prompts persist in localStorage (up to 10, deduplicated)
Toolbar Controls
- Template name input
- Campaign context: Theme text field, Tone dropdown (Professional / Friendly / Urgent / Playful / Luxury), Language dropdown
- Default Settings modal (tune icon): global primary colour picker and font selector
- AI Prompt button, Generate with AI button
- Load Template, Preview Email, Save Template, Request a Section buttons
Legacy Template Editor
Go to Brevo Campaigns → Template Editor to customise the flat HTML email template used by classic campaigns.
Visual settings:
- Logo upload, width, and positioning
- Navigation bar with custom links
- Background and content colours
- Button colours and border radius
- Font selection (heading and body independently)
- Header and footer text
- Footer links (including unsubscribe)
Code editor: Switch to HTML mode to edit the raw template. Full CodeMirror editor with syntax highlighting.
Live preview: See changes reflected instantly in both desktop (600px) and mobile (375px) views.
Save as the default template for all new campaigns, or apply changes to a specific campaign only.
AI Trainer
Go to Brevo Campaigns → AI Trainer to teach the AI about your store.
- About Your Store — company background, brand voice, target audience
- About Your Products — key product ranges, USPs, anything the AI should reference
This context is prepended to every AI generation call (campaign copy and Template Builder sections) automatically. You never need to re-enter it.
Brevo Stats
Go to Brevo Campaigns → Brevo Stats to see performance data for all campaigns:
- Open rate, click rate, unsubscribes
- Per-campaign breakdown table
- Filterable by date range and status
Stats are fetched directly from the Brevo API and cached for 15 minutes.
Credit Costs
| Task | Service | Credits |
|---|---|---|
| Generate all copy (full campaign) | OpenAI GPT-4o | 5 credits |
| Generate all copy (full campaign) | OpenAI GPT-4o Mini | 1 credit |
| Regenerate single field | OpenAI GPT-4o | 2 credits |
| Regenerate single field | OpenAI GPT-4o Mini | 1 credit |
| Template Builder — per AI section generation | OpenAI (selected model) | Per model cost |
| Generate product image | Gemini 1.5 Pro | 10 credits |
| Generate product image | Gemini 1.5 Flash | 3 credits |
| Generate main campaign image | Gemini 1.5 Pro | 10 credits |
| Generate main campaign image | Gemini 1.5 Flash | 3 credits |
Credits are non-expiring. Unused credits remain on your account.
Hooks & Filters
The plugin exposes hooks for developers who need to extend it.
Filters
// Modify the OpenAI prompt before sending
add_filter( 'bcg_openai_prompt', function( $prompt, $task, $context ) {
return $prompt;
}, 10, 3 );
// Modify the Gemini image prompt
add_filter( 'bcg_gemini_image_prompt', function( $prompt, $product ) {
return $prompt;
}, 10, 2 );
// Modify the campaign HTML before it's sent to Brevo
add_filter( 'bcg_campaign_html', function( $html, $campaign_id ) {
return $html;
}, 10, 2 );
// Modify product query args for campaign product selection
add_filter( 'bcg_product_query_args', function( $args, $config ) {
return $args;
}, 10, 2 );
Actions
// Fired after a campaign is created in Brevo
add_action( 'bcg_campaign_created', function( $campaign_id, $brevo_id ) {}, 10, 2 );
// Fired after a campaign is sent
add_action( 'bcg_campaign_sent', function( $campaign_id, $brevo_id ) {}, 10, 2 );
// Fired after credits are added to an account
add_action( 'bcg_credits_added', function( $user_id, $credits, $transaction_id ) {}, 10, 3 );
Changelog
See CHANGELOG.md for a full version history.
Support
This is a proprietary plugin developed by Red Frog Studio for agency use.
- Issues: Use GitHub Issues with the appropriate template
- Request a section type: Use the Request a Section button in the Template Builder toolbar
- Security: Do not open public issues for security vulnerabilities — email directly
Read the full README on GitHub →
Releases
| Tag | Published | Asset | Downloads |
|---|---|---|---|
| v1.5.47 | Mar 9, 2026 | — | — |
| v1.5.46 | Mar 9, 2026 | — | — |
| v1.5.45 | Feb 24, 2026 | — | — |
| v1.5.44 | Feb 24, 2026 | — | — |
| v1.5.43 | Feb 24, 2026 | — | — |
| v1.5.42 | Feb 23, 2026 | — | — |
| v1.5.41 | Feb 23, 2026 | — | — |
| v1.5.40 | Feb 23, 2026 | — | — |
| v1.5.39 | Feb 23, 2026 | — | — |
| v1.5.38 | Feb 23, 2026 | — | — |
| v1.5.37 | Feb 23, 2026 | — | — |
| v1.5.36 | Feb 23, 2026 | — | — |
| v1.5.35 | Feb 23, 2026 | — | — |
| v1.5.34 | Feb 23, 2026 | — | — |
| v1.5.33 | Feb 23, 2026 | — | — |
| v1.5.32 | Feb 23, 2026 | — | — |
| v1.5.31 | Feb 23, 2026 | — | — |
| v1.5.30 | Feb 23, 2026 | — | — |
| v1.5.29 | Feb 23, 2026 | — | — |
| v1.5.28 | Feb 23, 2026 | — | — |
| v1.5.27 | Feb 23, 2026 | — | — |
| v1.5.26 | Feb 23, 2026 | — | — |
| v1.5.25 | Feb 23, 2026 | — | — |
| v1.5.24 | Feb 23, 2026 | — | — |
| v1.5.23 | Feb 23, 2026 | — | — |