Brevo Automation via Rube MCP
Automate Brevo (formerly Sendinblue) email marketing operations through Composio's Brevo toolkit via Rube MCP.
Toolkit docs: composio.dev/toolkits/brevo
Prerequisites
- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
- Active Brevo connection via
RUBE_MANAGE_CONNECTIONS with toolkit brevo
- Always call
RUBE_SEARCH_TOOLS first 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_TOOLS responds
- Call
RUBE_MANAGE_CONNECTIONS with toolkit brevo
- 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 offset
sort: Sort order ('asc' or 'desc')
excludeHtmlContent: Set true to reduce response size
Key parameters for update:
campaign_id: Numeric campaign ID (required)
name: Campaign name
subject: Email subject line
htmlContent: HTML email body (mutually exclusive with htmlUrl)
htmlUrl: URL to HTML content
sender: Sender object with name, email, or id
recipients: Object with listIds and exclusionListIds
scheduledAt: Scheduled send time (YYYY-MM-DDTHH:mm:ss.SSSZ)
Pitfalls:
startDate and endDate are mutually required; provide both or neither
- Date filters only work when
status is not passed or set to 'sent'
htmlContent and htmlUrl are mutually exclusive
- Campaign
sender email must be a verified sender in Brevo
- A/B testing fields (
subjectA, subjectB, splitRule, winnerCriteria) require abTesting: true
scheduledAt uses 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) templates
limit: Results per page (max 1000, default 50)
offset: Pagination offset
sort: Sort order ('asc' or 'desc')
Key parameters for create/update:
templateId: Include to update; omit to create new
templateName: Template display name (required for creation)
subject: Email subject line (required for creation)
htmlContent: HTML template body (min 10 characters; use this or htmlUrl)
sender: Sender object with name and email, or id (required for creation)
replyTo: Reply-to email address
isActive: Activate or deactivate the template
tag: Category tag for the template
Pitfalls:
- When
templateId is provided, the tool updates; when omitted, it creates
- For creation,
templateName, subject, and sender are required
htmlContent must be at least 10 characters
- Template personalization uses
{{contact.ATTRIBUTE}} syntax
- Only inactive templates can be deleted
htmlContent and htmlUrl are 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.id fields 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 configure
abTesting: Set to true to enable A/B testing
subjectA: Subject line for variant A
subjectB: Subject line for variant B
splitRule: Percentage split for the test (1-99)
winnerCriteria: 'open' or 'click' for determining the winner
winnerDelay: Hours to wait before selecting winner (1-168)
Pitfalls:
- A/B testing must be enabled (
abTesting: true) before setting variant fields
splitRule is the percentage of contacts that receive variant A
winnerDelay defines 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) and offset (starting index)
- Default limit is 50; max varies by endpoint (100 for campaigns, 1000 for templates)
- Increment
offset by limit each page
- Check
count in 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
startDate and endDate must 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
data or data.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) |
Powered by Composio
Source: davepoon/buildwithclaude → plugins/all-skills/skills/brevo-automation/SKILL.md
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.4---5
6
7# Brevo Automation via Rube MCP
8
9Automate Brevo (formerly Sendinblue) email marketing operations through Composio's Brevo toolkit via Rube MCP.
10
11**Toolkit docs**: [composio.dev/toolkits/brevo](https://composio.dev/toolkits/brevo)
12
13## Prerequisites
14
15- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)
16- Active Brevo connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `brevo`
17- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas
18
19## Setup
20
21**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.
22
23
241. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds
252. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `brevo`
263. If connection is not ACTIVE, follow the returned auth link to complete Brevo authentication
274. Confirm connection status shows ACTIVE before running any workflows
28
29## Core Workflows
30
31### 1. Manage Email Campaigns
32
33**When to use**: User wants to list, review, or update email campaigns
34
35**Tool sequence**:
361. `BREVO_LIST_EMAIL_CAMPAIGNS` - List all campaigns with filters [Required]
372. `BREVO_UPDATE_EMAIL_CAMPAIGN` - Update campaign content or settings [Optional]
38
39**Key parameters for listing**:
40- `type`: Campaign type ('classic' or 'trigger')
41- `status`: Campaign status ('suspended', 'archive', 'sent', 'queued', 'draft', 'inProcess', 'inReview')
42- `startDate`/`endDate`: Date range filter (YYYY-MM-DDTHH:mm:ss.SSSZ format)
43- `statistics`: Stats type to include ('globalStats', 'linksStats', 'statsByDomain')
44- `limit`: Results per page (max 100, default 50)
45- `offset`: Pagination offset
46- `sort`: Sort order ('asc' or 'desc')
47- `excludeHtmlContent`: Set `true` to reduce response size
48
49**Key parameters for update**:
50- `campaign_id`: Numeric campaign ID (required)
51- `name`: Campaign name
52- `subject`: Email subject line
53- `htmlContent`: HTML email body (mutually exclusive with `htmlUrl`)
54- `htmlUrl`: URL to HTML content
55- `sender`: Sender object with `name`, `email`, or `id`
56- `recipients`: Object with `listIds` and `exclusionListIds`
57- `scheduledAt`: Scheduled send time (YYYY-MM-DDTHH:mm:ss.SSSZ)
58
59**Pitfalls**:
60- `startDate` and `endDate` are mutually required; provide both or neither
61- Date filters only work when `status` is not passed or set to 'sent'
62- `htmlContent` and `htmlUrl` are mutually exclusive
63- Campaign `sender` email must be a verified sender in Brevo
64- A/B testing fields (`subjectA`, `subjectB`, `splitRule`, `winnerCriteria`) require `abTesting: true`
65- `scheduledAt` uses full ISO 8601 format with timezone
66
67### 2. Create and Manage Email Templates
68
69**When to use**: User wants to create, edit, list, or delete email templates
70
71**Tool sequence**:
721. `BREVO_GET_ALL_EMAIL_TEMPLATES` - List all templates [Required]
732. `BREVO_CREATE_OR_UPDATE_EMAIL_TEMPLATE` - Create a new template or update existing [Required]
743. `BREVO_DELETE_EMAIL_TEMPLATE` - Delete an inactive template [Optional]
75
76**Key parameters for listing**:
77- `templateStatus`: Filter active (`true`) or inactive (`false`) templates
78- `limit`: Results per page (max 1000, default 50)
79- `offset`: Pagination offset
80- `sort`: Sort order ('asc' or 'desc')
81
82**Key parameters for create/update**:
83- `templateId`: Include to update; omit to create new
84- `templateName`: Template display name (required for creation)
85- `subject`: Email subject line (required for creation)
86- `htmlContent`: HTML template body (min 10 characters; use this or `htmlUrl`)
87- `sender`: Sender object with `name` and `email`, or `id` (required for creation)
88- `replyTo`: Reply-to email address
89- `isActive`: Activate or deactivate the template
90- `tag`: Category tag for the template
91
92**Pitfalls**:
93- When `templateId` is provided, the tool updates; when omitted, it creates
94- For creation, `templateName`, `subject`, and `sender` are required
95- `htmlContent` must be at least 10 characters
96- Template personalization uses `{{contact.ATTRIBUTE}}` syntax
97- Only inactive templates can be deleted
98- `htmlContent` and `htmlUrl` are mutually exclusive
99
100### 3. Manage Senders
101
102**When to use**: User wants to view authorized sender identities
103
104**Tool sequence**:
1051. `BREVO_GET_ALL_SENDERS` - List all verified senders [Required]
106
107**Key parameters**: (none required)
108
109**Pitfalls**:
110- Senders must be verified before they can be used in campaigns or templates
111- Sender verification is done through the Brevo web interface, not via API
112- Sender IDs can be used in `sender.id` fields for campaigns and templates
113
114### 4. Configure A/B Testing Campaigns
115
116**When to use**: User wants to set up or modify A/B test settings on a campaign
117
118**Tool sequence**:
1191. `BREVO_LIST_EMAIL_CAMPAIGNS` - Find the target campaign [Prerequisite]
1202. `BREVO_UPDATE_EMAIL_CAMPAIGN` - Configure A/B test settings [Required]
121
122**Key parameters**:
123- `campaign_id`: Campaign to configure
124- `abTesting`: Set to `true` to enable A/B testing
125- `subjectA`: Subject line for variant A
126- `subjectB`: Subject line for variant B
127- `splitRule`: Percentage split for the test (1-99)
128- `winnerCriteria`: 'open' or 'click' for determining the winner
129- `winnerDelay`: Hours to wait before selecting winner (1-168)
130
131**Pitfalls**:
132- A/B testing must be enabled (`abTesting: true`) before setting variant fields
133- `splitRule` is the percentage of contacts that receive variant A
134- `winnerDelay` defines how long to test before sending the winner to remaining contacts
135- Only works with 'classic' campaign type
136
137## Common Patterns
138
139### Campaign Lifecycle
140
141```
1421. Create campaign (status: draft)
1432. Set recipients (listIds)
1443. Configure content (htmlContent or htmlUrl)
1454. Optionally schedule (scheduledAt)
1465. Send or schedule via Brevo UI (API update can set scheduledAt)
147```
148
149### Pagination
150
151- Use `limit` (page size) and `offset` (starting index)
152- Default limit is 50; max varies by endpoint (100 for campaigns, 1000 for templates)
153- Increment `offset` by `limit` each page
154- Check `count` in response to determine total available
155
156### Template Personalization
157
158```
159- First name: {{contact.FIRSTNAME}}
160- Last name: {{contact.LASTNAME}}
161- Custom attribute: {{contact.CUSTOM_ATTRIBUTE}}
162- Mirror link: {{mirror}}
163- Unsubscribe link: {{unsubscribe}}
164```
165
166## Known Pitfalls
167
168**Date Formats**:
169- All dates use ISO 8601 with milliseconds: YYYY-MM-DDTHH:mm:ss.SSSZ
170- Pass timezone in the date-time format for accurate results
171- `startDate` and `endDate` must be used together
172
173**Sender Verification**:
174- All sender emails must be verified in Brevo before use
175- Unverified senders cause campaign creation/update failures
176- Use GET_ALL_SENDERS to check available verified senders
177
178**Rate Limits**:
179- Brevo API has rate limits per account plan
180- Implement backoff on 429 responses
181- Template operations have lower limits than read operations
182
183**Response Parsing**:
184- Response data may be nested under `data` or `data.data`
185- Parse defensively with fallback patterns
186- Campaign and template IDs are numeric integers
187
188## Quick Reference
189
190| Task | Tool Slug | Key Params |
191|------|-----------|------------|
192| List campaigns | BREVO_LIST_EMAIL_CAMPAIGNS | type, status, limit, offset |
193| Update campaign | BREVO_UPDATE_EMAIL_CAMPAIGN | campaign_id, subject, htmlContent |
194| List templates | BREVO_GET_ALL_EMAIL_TEMPLATES | templateStatus, limit, offset |
195| Create template | BREVO_CREATE_OR_UPDATE_EMAIL_TEMPLATE | templateName, subject, htmlContent, sender |
196| Update template | BREVO_CREATE_OR_UPDATE_EMAIL_TEMPLATE | templateId, htmlContent |
197| Delete template | BREVO_DELETE_EMAIL_TEMPLATE | templateId |
198| List senders | BREVO_GET_ALL_SENDERS | (none) |
199
200---
201*Powered by [Composio](https://composio.dev)*
202
203---
204
205**Source:** [`davepoon/buildwithclaude`](https://github.com/davepoon/buildwithclaude) → `plugins/all-skills/skills/brevo-automation/SKILL.md`