[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-6eae8e2c-b63a-4085-8711-8b73b26f475a":3,"$f0Eu8ADUl23PgBJerNGTEO5EHXEkh7Fiaygr6_QsV3po":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":34},"6eae8e2c-b63a-4085-8711-8b73b26f475a","brevo-automation","通过Composio的Brevo工具包和Rube MCP自动化Brevo（原名Sendinblue）的电子邮件营销操作。","cat_prod_automation","mod_productivity","sickn33,productivity","---\nname: brevo-automation\ndescription: \"Automate Brevo (formerly Sendinblue) email marketing operations through Composio's Brevo toolkit via Rube MCP.\"\nrisk: critical\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# Brevo Automation via Rube MCP\n\nAutomate Brevo (formerly Sendinblue) email marketing operations through Composio's Brevo toolkit via Rube MCP.\n\n## Prerequisites\n\n- Rube MCP must be connected (RUBE_SEARCH_TOOLS available)\n- Active Brevo connection via `RUBE_MANAGE_CONNECTIONS` with toolkit `brevo`\n- Always call `RUBE_SEARCH_TOOLS` first to get current tool schemas\n\n## Setup\n\n**Get Rube MCP**: Add `https:\u002F\u002Frube.app\u002Fmcp` as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.\n\n\n1. Verify Rube MCP is available by confirming `RUBE_SEARCH_TOOLS` responds\n2. Call `RUBE_MANAGE_CONNECTIONS` with toolkit `brevo`\n3. If connection is not ACTIVE, follow the returned auth link to complete Brevo authentication\n4. Confirm connection status shows ACTIVE before running any workflows\n\n## Core Workflows\n\n### 1. Manage Email Campaigns\n\n**When to use**: User wants to list, review, or update email campaigns\n\n**Tool sequence**:\n1. `BREVO_LIST_EMAIL_CAMPAIGNS` - List all campaigns with filters [Required]\n2. `BREVO_UPDATE_EMAIL_CAMPAIGN` - Update campaign content or settings [Optional]\n\n**Key parameters for listing**:\n- `type`: Campaign type ('classic' or 'trigger')\n- `status`: Campaign status ('suspended', 'archive', 'sent', 'queued', 'draft', 'inProcess', 'inReview')\n- `startDate`\u002F`endDate`: Date range filter (YYYY-MM-DDTHH:mm:ss.SSSZ format)\n- `statistics`: Stats type to include ('globalStats', 'linksStats', 'statsByDomain')\n- `limit`: Results per page (max 100, default 50)\n- `offset`: Pagination offset\n- `sort`: Sort order ('asc' or 'desc')\n- `excludeHtmlContent`: Set `true` to reduce response size\n\n**Key parameters for update**:\n- `campaign_id`: Numeric campaign ID (required)\n- `name`: Campaign name\n- `subject`: Email subject line\n- `htmlContent`: HTML email body (mutually exclusive with `htmlUrl`)\n- `htmlUrl`: URL to HTML content\n- `sender`: Sender object with `name`, `email`, or `id`\n- `recipients`: Object with `listIds` and `exclusionListIds`\n- `scheduledAt`: Scheduled send time (YYYY-MM-DDTHH:mm:ss.SSSZ)\n\n**Pitfalls**:\n- `startDate` and `endDate` are mutually required; provide both or neither\n- Date filters only work when `status` is not passed or set to 'sent'\n- `htmlContent` and `htmlUrl` are mutually exclusive\n- Campaign `sender` email must be a verified sender in Brevo\n- A\u002FB testing fields (`subjectA`, `subjectB`, `splitRule`, `winnerCriteria`) require `abTesting: true`\n- `scheduledAt` uses full ISO 8601 format with timezone\n\n### 2. Create and Manage Email Templates\n\n**When to use**: User wants to create, edit, list, or delete email templates\n\n**Tool sequence**:\n1. `BREVO_GET_ALL_EMAIL_TEMPLATES` - List all templates [Required]\n2. `BREVO_CREATE_OR_UPDATE_EMAIL_TEMPLATE` - Create a new template or update existing [Required]\n3. `BREVO_DELETE_EMAIL_TEMPLATE` - Delete an inactive template [Optional]\n\n**Key parameters for listing**:\n- `templateStatus`: Filter active (`true`) or inactive (`false`) templates\n- `limit`: Results per page (max 1000, default 50)\n- `offset`: Pagination offset\n- `sort`: Sort order ('asc' or 'desc')\n\n**Key parameters for create\u002Fupdate**:\n- `templateId`: Include to update; omit to create new\n- `templateName`: Template display name (required for creation)\n- `subject`: Email subject line (required for creation)\n- `htmlContent`: HTML template body (min 10 characters; use this or `htmlUrl`)\n- `sender`: Sender object with `name` and `email`, or `id` (required for creation)\n- `replyTo`: Reply-to email address\n- `isActive`: Activate or deactivate the template\n- `tag`: Category tag for the template\n\n**Pitfalls**:\n- When `templateId` is provided, the tool updates; when omitted, it creates\n- For creation, `templateName`, `subject`, and `sender` are required\n- `htmlContent` must be at least 10 characters\n- Template personalization uses `{{contact.ATTRIBUTE}}` syntax\n- Only inactive templates can be deleted\n- `htmlContent` and `htmlUrl` are mutually exclusive\n\n### 3. Manage Senders\n\n**When to use**: User wants to view authorized sender identities\n\n**Tool sequence**:\n1. `BREVO_GET_ALL_SENDERS` - List all verified senders [Required]\n\n**Key parameters**: (none required)\n\n**Pitfalls**:\n- Senders must be verified before they can be used in campaigns or templates\n- Sender verification is done through the Brevo web interface, not via API\n- Sender IDs can be used in `sender.id` fields for campaigns and templates\n\n### 4. Configure A\u002FB Testing Campaigns\n\n**When to use**: User wants to set up or modify A\u002FB test settings on a campaign\n\n**Tool sequence**:\n1. `BREVO_LIST_EMAIL_CAMPAIGNS` - Find the target campaign [Prerequisite]\n2. `BREVO_UPDATE_EMAIL_CAMPAIGN` - Configure A\u002FB test settings [Required]\n\n**Key parameters**:\n- `campaign_id`: Campaign to configure\n- `abTesting`: Set to `true` to enable A\u002FB testing\n- `subjectA`: Subject line for variant A\n- `subjectB`: Subject line for variant B\n- `splitRule`: Percentage split for the test (1-99)\n- `winnerCriteria`: 'open' or 'click' for determining the winner\n- `winnerDelay`: Hours to wait before selecting winner (1-168)\n\n**Pitfalls**:\n- A\u002FB testing must be enabled (`abTesting: true`) before setting variant fields\n- `splitRule` is the percentage of contacts that receive variant A\n- `winnerDelay` defines how long to test before sending the winner to remaining contacts\n- Only works with 'classic' campaign type\n\n## Common Patterns\n\n### Campaign Lifecycle\n\n```\n1. Create campaign (status: draft)\n2. Set recipients (listIds)\n3. Configure content (htmlContent or htmlUrl)\n4. Optionally schedule (scheduledAt)\n5. Send or schedule via Brevo UI (API update can set scheduledAt)\n```\n\n### Pagination\n\n- Use `limit` (page size) and `offset` (starting index)\n- Default limit is 50; max varies by endpoint (100 for campaigns, 1000 for templates)\n- Increment `offset` by `limit` each page\n- Check `count` in response to determine total available\n\n### Template Personalization\n\n```\n- First name: {{contact.FIRSTNAME}}\n- Last name: {{contact.LASTNAME}}\n- Custom attribute: {{contact.CUSTOM_ATTRIBUTE}}\n- Mirror link: {{mirror}}\n- Unsubscribe link: {{unsubscribe}}\n```\n\n## Known Pitfalls\n\n**Date Formats**:\n- All dates use ISO 8601 with milliseconds: YYYY-MM-DDTHH:mm:ss.SSSZ\n- Pass timezone in the date-time format for accurate results\n- `startDate` and `endDate` must be used together\n\n**Sender Verification**:\n- All sender emails must be verified in Brevo before use\n- Unverified senders cause campaign creation\u002Fupdate failures\n- Use GET_ALL_SENDERS to check available verified senders\n\n**Rate Limits**:\n- Brevo API has rate limits per account plan\n- Implement backoff on 429 responses\n- Template operations have lower limits than read operations\n\n**Response Parsing**:\n- Response data may be nested under `data` or `data.data`\n- Parse defensively with fallback patterns\n- Campaign and template IDs are numeric integers\n\n## Quick Reference\n\n| Task | Tool Slug | Key Params |\n|------|-----------|------------|\n| List campaigns | BREVO_LIST_EMAIL_CAMPAIGNS | type, status, limit, offset |\n| Update campaign | BREVO_UPDATE_EMAIL_CAMPAIGN | campaign_id, subject, htmlContent |\n| List templates | BREVO_GET_ALL_EMAIL_TEMPLATES | templateStatus, limit, offset |\n| Create template | BREVO_CREATE_OR_UPDATE_EMAIL_TEMPLATE | templateName, subject, htmlContent, sender |\n| Update template | BREVO_CREATE_OR_UPDATE_EMAIL_TEMPLATE | templateId, htmlContent |\n| Delete template | BREVO_DELETE_EMAIL_TEMPLATE | templateId |\n| List senders | BREVO_GET_ALL_SENDERS | (none) |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,111,484,"2026-05-16 13:09:23",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"效率工具","productivity","mdi-lightning-bolt-outline","文档处理、数据分析、自动化工作流",4,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":32,"skillCount":33,"createdAt":26},"自动化","automation","mdi-robot-outline","工作流自动化、批处理",3,101,[35],{"id":36,"skillId":4,"version":37,"fileName":38,"fileSize":39,"filePath":40,"fileHash":41,"manifest":42,"createdAt":19},"81d49ddf-dfa9-41bd-9b79-577bcaf0e1b2","1.0.0","brevo-automation.zip",3294,"uploads\u002Fskills\u002F6eae8e2c-b63a-4085-8711-8b73b26f475a\u002Fbrevo-automation.zip","546636c84b9088ed00f7242db5e5c1b1e1b8d7d8fc1d25c83f853b91553977d4","[{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":8161}]",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]