Automate Brevo (Sendinblue) tasks via Rube MCP (Composio): manage email campaigns, create/edit templates, track senders, and monitor campaign performance. Always search tools first for current schemas.
Add this skill
npx mdskills install sickn33/brevo-automationComprehensive Brevo email marketing automation with clear workflows, extensive parameter docs, and practical pitfalls guide
1---2name: brevo-automation3description: "Automate Brevo (Sendinblue) tasks via Rube MCP (Composio): manage email campaigns, create/edit templates, track senders, and monitor campaign performance. Always search tools first for current schemas."4requires:5 mcp: [rube]6---78# Brevo Automation via Rube MCP910Automate Brevo (formerly Sendinblue) email marketing operations through Composio's Brevo toolkit via Rube MCP.1112## Prerequisites1314- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)15- Active Brevo connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `brevo`16- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas1718## Setup1920**Get Rube MCP**: Add `https://rube.app/mcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.2122231. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds242. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `brevo`253. If connection is not ACTIVE, follow the returned auth link to complete Brevo authentication264. Confirm connection status shows ACTIVE before running any workflows2728## Core Workflows2930### 1. Manage Email Campaigns3132**When to use**: User wants to list, review, or update email campaigns3334**Tool sequence**:351. `BREVO_LIST_EMAIL_CAMPAIGNS` - List all campaigns with filters [Required]362. `BREVO_UPDATE_EMAIL_CAMPAIGN` - Update campaign content or settings [Optional]3738**Key parameters for listing**:39- `type`: Campaign type ('classic' or 'trigger')40- `status`: Campaign status ('suspended', 'archive', 'sent', 'queued', 'draft', 'inProcess', 'inReview')41- `startDate`/`endDate`: Date range filter (YYYY-MM-DDTHH:mm:ss.SSSZ format)42- `statistics`: Stats type to include ('globalStats', 'linksStats', 'statsByDomain')43- `limit`: Results per page (max 100, default 50)44- `offset`: Pagination offset45- `sort`: Sort order ('asc' or 'desc')46- `excludeHtmlContent`: Set `true` to reduce response size4748**Key parameters for update**:49- `campaign_id`: Numeric campaign ID (required)50- `name`: Campaign name51- `subject`: Email subject line52- `htmlContent`: HTML email body (mutually exclusive with `htmlUrl`)53- `htmlUrl`: URL to HTML content54- `sender`: Sender object with `name`, `email`, or `id`55- `recipients`: Object with `listIds` and `exclusionListIds`56- `scheduledAt`: Scheduled send time (YYYY-MM-DDTHH:mm:ss.SSSZ)5758**Pitfalls**:59- `startDate` and `endDate` are mutually required; provide both or neither60- Date filters only work when `status` is not passed or set to 'sent'61- `htmlContent` and `htmlUrl` are mutually exclusive62- Campaign `sender` email must be a verified sender in Brevo63- A/B testing fields (`subjectA`, `subjectB`, `splitRule`, `winnerCriteria`) require `abTesting: true`64- `scheduledAt` uses full ISO 8601 format with timezone6566### 2. Create and Manage Email Templates6768**When to use**: User wants to create, edit, list, or delete email templates6970**Tool sequence**:711. `BREVO_GET_ALL_EMAIL_TEMPLATES` - List all templates [Required]722. `BREVO_CREATE_OR_UPDATE_EMAIL_TEMPLATE` - Create a new template or update existing [Required]733. `BREVO_DELETE_EMAIL_TEMPLATE` - Delete an inactive template [Optional]7475**Key parameters for listing**:76- `templateStatus`: Filter active (`true`) or inactive (`false`) templates77- `limit`: Results per page (max 1000, default 50)78- `offset`: Pagination offset79- `sort`: Sort order ('asc' or 'desc')8081**Key parameters for create/update**:82- `templateId`: Include to update; omit to create new83- `templateName`: Template display name (required for creation)84- `subject`: Email subject line (required for creation)85- `htmlContent`: HTML template body (min 10 characters; use this or `htmlUrl`)86- `sender`: Sender object with `name` and `email`, or `id` (required for creation)87- `replyTo`: Reply-to email address88- `isActive`: Activate or deactivate the template89- `tag`: Category tag for the template9091**Pitfalls**:92- When `templateId` is provided, the tool updates; when omitted, it creates93- For creation, `templateName`, `subject`, and `sender` are required94- `htmlContent` must be at least 10 characters95- Template personalization uses `{{contact.ATTRIBUTE}}` syntax96- Only inactive templates can be deleted97- `htmlContent` and `htmlUrl` are mutually exclusive9899### 3. Manage Senders100101**When to use**: User wants to view authorized sender identities102103**Tool sequence**:1041. `BREVO_GET_ALL_SENDERS` - List all verified senders [Required]105106**Key parameters**: (none required)107108**Pitfalls**:109- Senders must be verified before they can be used in campaigns or templates110- Sender verification is done through the Brevo web interface, not via API111- Sender IDs can be used in `sender.id` fields for campaigns and templates112113### 4. Configure A/B Testing Campaigns114115**When to use**: User wants to set up or modify A/B test settings on a campaign116117**Tool sequence**:1181. `BREVO_LIST_EMAIL_CAMPAIGNS` - Find the target campaign [Prerequisite]1192. `BREVO_UPDATE_EMAIL_CAMPAIGN` - Configure A/B test settings [Required]120121**Key parameters**:122- `campaign_id`: Campaign to configure123- `abTesting`: Set to `true` to enable A/B testing124- `subjectA`: Subject line for variant A125- `subjectB`: Subject line for variant B126- `splitRule`: Percentage split for the test (1-99)127- `winnerCriteria`: 'open' or 'click' for determining the winner128- `winnerDelay`: Hours to wait before selecting winner (1-168)129130**Pitfalls**:131- A/B testing must be enabled (`abTesting: true`) before setting variant fields132- `splitRule` is the percentage of contacts that receive variant A133- `winnerDelay` defines how long to test before sending the winner to remaining contacts134- Only works with 'classic' campaign type135136## Common Patterns137138### Campaign Lifecycle139140```1411. Create campaign (status: draft)1422. Set recipients (listIds)1433. Configure content (htmlContent or htmlUrl)1444. Optionally schedule (scheduledAt)1455. Send or schedule via Brevo UI (API update can set scheduledAt)146```147148### Pagination149150- Use `limit` (page size) and `offset` (starting index)151- Default limit is 50; max varies by endpoint (100 for campaigns, 1000 for templates)152- Increment `offset` by `limit` each page153- Check `count` in response to determine total available154155### Template Personalization156157```158- First name: {{contact.FIRSTNAME}}159- Last name: {{contact.LASTNAME}}160- Custom attribute: {{contact.CUSTOM_ATTRIBUTE}}161- Mirror link: {{mirror}}162- Unsubscribe link: {{unsubscribe}}163```164165## Known Pitfalls166167**Date Formats**:168- All dates use ISO 8601 with milliseconds: YYYY-MM-DDTHH:mm:ss.SSSZ169- Pass timezone in the date-time format for accurate results170- `startDate` and `endDate` must be used together171172**Sender Verification**:173- All sender emails must be verified in Brevo before use174- Unverified senders cause campaign creation/update failures175- Use GET_ALL_SENDERS to check available verified senders176177**Rate Limits**:178- Brevo API has rate limits per account plan179- Implement backoff on 429 responses180- Template operations have lower limits than read operations181182**Response Parsing**:183- Response data may be nested under `data` or `data.data`184- Parse defensively with fallback patterns185- Campaign and template IDs are numeric integers186187## Quick Reference188189| Task | Tool Slug | Key Params |190|------|-----------|------------|191| List campaigns | BREVO_LIST_EMAIL_CAMPAIGNS | type, status, limit, offset |192| Update campaign | BREVO_UPDATE_EMAIL_CAMPAIGN | campaign_id, subject, htmlContent |193| List templates | BREVO_GET_ALL_EMAIL_TEMPLATES | templateStatus, limit, offset |194| Create template | BREVO_CREATE_OR_UPDATE_EMAIL_TEMPLATE | templateName, subject, htmlContent, sender |195| Update template | BREVO_CREATE_OR_UPDATE_EMAIL_TEMPLATE | templateId, htmlContent |196| Delete template | BREVO_DELETE_EMAIL_TEMPLATE | templateId |197| List senders | BREVO_GET_ALL_SENDERS | (none) |198
Full transparency — inspect the skill content before installing.