brevo-automation
npx skills add https://github.com/composiohq/awesome-claude-skills --skill brevo-automation
Agent 安装分布
Skill 文档
Brevo Automation via Rube MCP
Automate Brevo (formerly Sendinblue) email marketing operations through Composio’s Brevo toolkit via Rube MCP.
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Brevo connection via
RUBE_MANAGE_CONNECTIONSwith toolkitbrevo - Always call
RUBE_SEARCH_TOOLSfirst to get current tool schemas
Setup
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.
- Verify Rube MCP is available by confirming
RUBE_SEARCH_TOOLSresponds - Call
RUBE_MANAGE_CONNECTIONSwith toolkitbrevo - If connection is not ACTIVE, follow the returned auth link to complete Brevo authentication
- Confirm connection status shows ACTIVE before running any workflows
Core Workflows
1. Manage Email Campaigns
When to use: User wants to list, review, or update email campaigns
Tool sequence:
BREVO_LIST_EMAIL_CAMPAIGNS– List all campaigns with filters [Required]BREVO_UPDATE_EMAIL_CAMPAIGN– Update campaign content or settings [Optional]
Key parameters for listing:
type: Campaign type (‘classic’ or ‘trigger’)status: Campaign status (‘suspended’, ‘archive’, ‘sent’, ‘queued’, ‘draft’, ‘inProcess’, ‘inReview’)startDate/endDate: Date range filter (YYYY-MM-DDTHH:mm:ss.SSSZ format)statistics: Stats type to include (‘globalStats’, ‘linksStats’, ‘statsByDomain’)limit: Results per page (max 100, default 50)offset: Pagination offsetsort: Sort order (‘asc’ or ‘desc’)excludeHtmlContent: Settrueto reduce response size
Key parameters for update:
campaign_id: Numeric campaign ID (required)name: Campaign namesubject: Email subject linehtmlContent: HTML email body (mutually exclusive withhtmlUrl)htmlUrl: URL to HTML contentsender: Sender object withname,email, oridrecipients: Object withlistIdsandexclusionListIdsscheduledAt: Scheduled send time (YYYY-MM-DDTHH:mm:ss.SSSZ)
Pitfalls:
startDateandendDateare mutually required; provide both or neither- Date filters only work when
statusis not passed or set to ‘sent’ htmlContentandhtmlUrlare mutually exclusive- Campaign
senderemail must be a verified sender in Brevo - A/B testing fields (
subjectA,subjectB,splitRule,winnerCriteria) requireabTesting: true scheduledAtuses full ISO 8601 format with timezone
2. Create and Manage Email Templates
When to use: User wants to create, edit, list, or delete email templates
Tool sequence:
BREVO_GET_ALL_EMAIL_TEMPLATES– List all templates [Required]BREVO_CREATE_OR_UPDATE_EMAIL_TEMPLATE– Create a new template or update existing [Required]BREVO_DELETE_EMAIL_TEMPLATE– Delete an inactive template [Optional]
Key parameters for listing:
templateStatus: Filter active (true) or inactive (false) templateslimit: Results per page (max 1000, default 50)offset: Pagination offsetsort: Sort order (‘asc’ or ‘desc’)
Key parameters for create/update:
templateId: Include to update; omit to create newtemplateName: Template display name (required for creation)subject: Email subject line (required for creation)htmlContent: HTML template body (min 10 characters; use this orhtmlUrl)sender: Sender object withnameandemail, orid(required for creation)replyTo: Reply-to email addressisActive: Activate or deactivate the templatetag: Category tag for the template
Pitfalls:
- When
templateIdis provided, the tool updates; when omitted, it creates - For creation,
templateName,subject, andsenderare required htmlContentmust be at least 10 characters- Template personalization uses
{{contact.ATTRIBUTE}}syntax - Only inactive templates can be deleted
htmlContentandhtmlUrlare mutually exclusive
3. Manage Senders
When to use: User wants to view authorized sender identities
Tool sequence:
BREVO_GET_ALL_SENDERS– List all verified senders [Required]
Key parameters: (none required)
Pitfalls:
- Senders must be verified before they can be used in campaigns or templates
- Sender verification is done through the Brevo web interface, not via API
- Sender IDs can be used in
sender.idfields for campaigns and templates
4. Configure A/B Testing Campaigns
When to use: User wants to set up or modify A/B test settings on a campaign
Tool sequence:
BREVO_LIST_EMAIL_CAMPAIGNS– Find the target campaign [Prerequisite]BREVO_UPDATE_EMAIL_CAMPAIGN– Configure A/B test settings [Required]
Key parameters:
campaign_id: Campaign to configureabTesting: Set totrueto enable A/B testingsubjectA: Subject line for variant AsubjectB: Subject line for variant BsplitRule: Percentage split for the test (1-99)winnerCriteria: ‘open’ or ‘click’ for determining the winnerwinnerDelay: Hours to wait before selecting winner (1-168)
Pitfalls:
- A/B testing must be enabled (
abTesting: true) before setting variant fields splitRuleis the percentage of contacts that receive variant AwinnerDelaydefines how long to test before sending the winner to remaining contacts- Only works with ‘classic’ campaign type
Common Patterns
Campaign Lifecycle
1. Create campaign (status: draft)
2. Set recipients (listIds)
3. Configure content (htmlContent or htmlUrl)
4. Optionally schedule (scheduledAt)
5. Send or schedule via Brevo UI (API update can set scheduledAt)
Pagination
- Use
limit(page size) andoffset(starting index) - Default limit is 50; max varies by endpoint (100 for campaigns, 1000 for templates)
- Increment
offsetbylimiteach page - Check
countin response to determine total available
Template Personalization
- First name: {{contact.FIRSTNAME}}
- Last name: {{contact.LASTNAME}}
- Custom attribute: {{contact.CUSTOM_ATTRIBUTE}}
- Mirror link: {{mirror}}
- Unsubscribe link: {{unsubscribe}}
Known Pitfalls
Date Formats:
- All dates use ISO 8601 with milliseconds: YYYY-MM-DDTHH:mm:ss.SSSZ
- Pass timezone in the date-time format for accurate results
startDateandendDatemust be used together
Sender Verification:
- All sender emails must be verified in Brevo before use
- Unverified senders cause campaign creation/update failures
- Use GET_ALL_SENDERS to check available verified senders
Rate Limits:
- Brevo API has rate limits per account plan
- Implement backoff on 429 responses
- Template operations have lower limits than read operations
Response Parsing:
- Response data may be nested under
dataordata.data - Parse defensively with fallback patterns
- Campaign and template IDs are numeric integers
Quick Reference
| Task | Tool Slug | Key Params |
|---|---|---|
| List campaigns | BREVO_LIST_EMAIL_CAMPAIGNS | type, status, limit, offset |
| Update campaign | BREVO_UPDATE_EMAIL_CAMPAIGN | campaign_id, subject, htmlContent |
| List templates | BREVO_GET_ALL_EMAIL_TEMPLATES | templateStatus, limit, offset |
| Create template | BREVO_CREATE_OR_UPDATE_EMAIL_TEMPLATE | templateName, subject, htmlContent, sender |
| Update template | BREVO_CREATE_OR_UPDATE_EMAIL_TEMPLATE | templateId, htmlContent |
| Delete template | BREVO_DELETE_EMAIL_TEMPLATE | templateId |
| List senders | BREVO_GET_ALL_SENDERS | (none) |