
Send HTML emails via Brevo: configure by content-type and event (Create, Update, Delete, Publish, Unpublish), HTML or Brevo templates, and on-demand send API.
released March 13, 2026
npm install strapi-plugin-brevo-template-sender
Strapi (v5) plugin to send HTML emails via Brevo: configure by content-type and event (Create, Update, Delete, Publish, Unpublish), HTML or Brevo templates, and on-demand send API.

POST /api/brevo-template-sender/send with body { params: { ... } } only. Template and recipients from Strapi config.OPENAI_API_KEY)In config/plugins.ts:
Local install (plugin inside your Strapi project). Config is optional: by default the plugin uses its own content-type plugin::brevo-template-sender.email-template and logoUrl from STRAPI_LOGO_URL (or empty).
export default ({ env }) => ({
"brevo-template-sender": {
enabled: true,
resolve: "./src/plugins/strapi-plugin-brevo-template-sender",
// Optional config: only add when overriding defaults
// config: {
// templateContentType: "api::email-template.email-template", // project custom content-type
// logoUrl: env("STRAPI_LOGO_URL", ""), // or leave default (env)
// // OpenAI: set OPENAI_API_KEY in .env or in plugin Config (admin) for "Generate with AI"
// },
},
});To use an Email Template content-type defined in your project (e.g. api::email-template.email-template) or to set the logo URL in config instead of an env variable, uncomment and fill in config.
npm run build
npm run developor with yarn:
yarn build
yarn developIn the Brevo Template Sender menu:
send endpoint, configurable via “Configure template”For each enabled content-type, “Edit Template” lets you set:
{{variable}} placeholdersBody: { params: { ... } } only. Template and recipients are set in Strapi (plugin → Configure template).
Example:
POST /api/brevo-template-sender/send
{
"params": {
"firstname": "Jean",
"message": "Content..."
}
}By default the plugin uses its own content-type plugin::brevo-template-sender.email-template. If you set templateContentType (e.g. api::email-template.email-template), your project content-type must expose at least: name, code (unique), subject, html. Variables in subject and HTML use the {{variable_name}} syntax.
{{variable_name}} (optional spaces). Keys in params replace these placeholders.{{logo_url}}: injected automatically by the plugin (config logoUrl or STRAPI_LOGO_URL).Example subject: New message: {{subject}} — HTML: <p><img src="{{logo_url}}" alt="Logo" /></p><p>From: {{email}}</p><p>{{message}}</p>
Template codes and variables are defined by your project: create the templates you need in Strapi (or in Brevo) and reference them by code or document ID when calling the API.
In the template editor, a preview on the right replaces variables with sample values (including {{logo_url}} when configured).
BREVO_API_KEY and sender (admin config or .env / BREVO_SENDER)OPENAI_API_KEY for “Generate with AI”@getbrevo/brevo packageMIT — see repository.
Share your work with the community and get it listed in the Strapi ecosystem for everyone to discover and use.
Submit
