{"id":"577cf1f5-cc3c-4c22-b2cb-f1ebcb0779c1","shortId":"58nXab","kind":"skill","title":"brevo-automation","tagline":"Automate Brevo (formerly Sendinblue) email marketing operations through Composio's Brevo toolkit via Rube MCP.","description":"# 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://rube.app/mcp` 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`/`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/B 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/update**:\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/B Testing Campaigns\n\n**When to use**: User wants to set up or modify A/B 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/B test settings [Required]\n\n**Key parameters**:\n- `campaign_id`: Campaign to configure\n- `abTesting`: Set to `true` to enable A/B 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/B 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/update 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.","tags":["brevo","automation","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-brevo-automation","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/brevo-automation","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34882 github stars · SKILL.md body (7,942 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T12:50:41.773Z","embedding":null,"createdAt":"2026-04-18T21:33:44.638Z","updatedAt":"2026-04-24T12:50:41.773Z","lastSeenAt":"2026-04-24T12:50:41.773Z","tsv":"'-168':717 '-99':700 '/mcp':77 '1':97,144,162,381,571,646,699,716,763 '10':476,537 '100':229,811 '1000':433,814 '2':109,173,360,391,656,768 '3':117,406,556,772 '4':132,623,778 '429':924 '5':782 '50':231,435,806 '8601':356,857 'a/b':342,625,638,662,679,719 'abtest':350,673,724 'account':919 'accur':875 'action':1042 'activ':49,122,137,422,501 'add':74,91 'address':499 'alway':59 'api':87,610,789,914 'applic':1036 'archiv':198 'asc':238,442 'ask':1080 'attribut':840,842 'auth':126 'authent':131 'author':566 'autom':3,4,20,24 'avail':48,102,830,908 'b':692 'backoff':922 'bodi':268,474 'boundari':1088 'brevo':2,5,14,19,25,34,50,58,116,130,163,174,341,382,392,407,572,605,647,657,787,893,913,966,976,986,996,1008,1018,1025 'brevo-autom':1 'call':60,110 'campaign':147,159,166,169,177,179,189,195,252,255,259,332,596,620,627,643,650,654,660,668,670,757,761,765,813,899,950,965,969,975,979,980 'categori':507 'caus':898 'charact':477,538 'check':823,907 'clarif':1082 'classic':191,756 'clear':1055 'click':704 'client':84 'common':759 'complet':129 'composio':12,32 'configur':85,624,661,672,773 'confirm':104,133 'connect':44,51,55,113,119,134 'contact':735,752 'contact.attribute':542 'contact.custom':841 'contact.firstname':835 'contact.lastname':838 'content':180,277,774 'core':142 'count':824 'creat':361,372,393,398,455,523,764,994,997,1009 'create/update':448 'creation':463,470,493,525 'creation/update':900 'criteria':1091 'current':67 'custom':839 'data':937,942 'data.data':944 'date':206,313,851,854,871 'date-tim':870 'ddthh':212,299,863 'deactiv':503 'default':230,434,803 'defens':946 'defin':741 'delet':376,408,411,549,1016,1019 'desc':240,444 'describ':1043,1059 'determin':706,828 'display':459 'done':602 'draft':201,767 'edit':373 'email':8,28,146,158,165,176,262,267,283,334,364,377,385,396,409,465,488,498,649,659,888,968,978,989,1000,1012,1020 'enabl':678,723 'enddat':205,305,879 'endpoint':93,810 'environ':1071 'environment-specif':1070 'excludehtmlcont':241 'exclus':270,331,555 'exclusionlistid':291 'execut':1038 'exist':404 'expert':1076 'failur':901 'fallback':948 'fals':426 'field':344,618,729 'filter':171,208,314,421 'find':651 'first':64,833 'follow':123 'format':215,357,852,873 'former':6,26 'full':354 'get':66,71,383,573,903,987,1026 'globalstat':221 'hour':710 'html':266,276,472 'htmlcontent':265,326,471,532,550,775,983,1004,1015 'htmlurl':272,273,328,481,552,777 'id':253,256,285,490,612,669,953,981 'ident':568 'implement':921 'inact':413,425,545 'includ':220,450 'increment':817 'index':802 'inprocess':202 'input':1085 'inreview':203 'integ':956 'interfac':607 'isact':500 'iso':355,856 'key':88,184,248,416,445,581,666,962 'known':849 'last':836 'least':536 'lifecycl':762 'limit':224,428,796,804,820,912,917,930,972,992,1047 'line':264,467,683,689 'link':127,844,847 'linksstat':222 'list':154,164,167,187,374,387,419,576,648,964,967,984,1023 'listid':289,771 'long':743 'lower':929 'manag':54,112,145,363,557 'market':9,29 'match':1056 'max':228,432,807 'may':938 'mcp':18,23,38,41,73,80,100 'millisecond':859 'min':475 'mirror':843,845 'miss':1093 'mm':211,213,298,300,862,864 'modifi':637 'must':42,335,533,587,721,880,889 'mutual':269,307,330,554 'name':258,260,282,460,486,834,837 'need':89 'neither':312 'nest':940 'new':400,456 'none':583,1029 'numer':254,955 'object':280,287,484 'offset':232,234,436,438,800,818,973,993 'omit':453,521 'open':702 'oper':10,30,927,933 'option':183,415,779 'order':237,441 'output':1065 'overview':1046 'page':227,431,797,822 'pagin':233,437,794 'param':963 'paramet':185,249,417,446,582,667 'pars':935,945 'pass':321,866 'pattern':760,949 'per':226,430,918 'percentag':694,733 'permiss':1086 'person':540,832 'pitfal':302,512,585,718,850 'plan':920 'prerequisit':39,655 'provid':309,516 'queu':200 'quick':957 'rang':207 'rate':911,916 'read':932 'receiv':737 'recipi':286,770 'reduc':245 'refer':958 'remain':751 'repli':496 'reply-to':495 'replyto':494 'requir':172,257,308,349,390,405,461,468,491,531,580,584,665,1084 'respond':108 'respons':246,826,925,934,936 'result':225,429,876 'return':125 'review':155,1077 'rube':17,22,37,40,45,53,61,72,99,105,111 'rube.app':76 'rube.app/mcp':75 'run':139 'safeti':1087 'schedul':293,780,785 'scheduledat':292,352,781,793 'schema':69 'scope':1058 'search':46,62,106 'select':714 'send':294,747,783 'sender':278,279,333,339,482,483,529,558,567,575,579,586,599,611,884,887,897,905,910,1005,1024,1028 'sender.id':617 'sendinblu':7,27 'sent':199,325 'sequenc':161,380,570,645 'server':81 'set':182,242,323,634,640,664,674,727,769,792 'setup':70 'show':136 'size':247,798 'skill':1034,1050 'skill-brevo-automation' 'slug':961 'sort':235,236,439,440 'source-sickn33' 'specif':1072 'split':695 'splitrul':347,693,730 'ss.sssz':214,301,865 'start':801 'startdat':204,303,877 'stat':217 'statist':216 'statsbydomain':223 'status':135,194,196,318,766,971 'stop':1078 'subject':261,263,464,466,527,682,688,982,1003 'subjecta':345,681 'subjectb':346,687 'substitut':1068 'success':1090 'suspend':197 'syntax':543 'tag':506,508 'target':653 'task':959,1054 'templat':365,378,386,389,397,401,410,414,427,458,473,505,511,539,546,598,622,816,831,926,952,985,990,995,1001,1007,1013,1017,1021 'templateid':449,514,1014,1022 'templatenam':457,526,1002 'templatestatus':420,991 'test':343,626,639,663,680,698,720,745,1074 'time':295,872 'timezon':359,867 'togeth':883 'tool':47,63,68,107,160,379,518,569,644,960 'toolkit':15,35,57,115 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'total':829 'treat':1063 'trigger':193 'true':243,351,423,676,725 'type':188,190,218,758,970 'ui':788 'unsubscrib':846,848 'unverifi':896 'updat':157,175,178,251,395,403,452,519,658,790,974,977,999,1006,1011 'url':274 'use':150,353,368,478,541,561,594,615,630,795,855,882,895,902,1032,1048 'user':151,369,562,631 'valid':1073 'vari':808 'variant':685,691,728,738 'verif':600,885 'verifi':98,338,578,589,891,909 'via':16,21,36,52,609,786 'view':565 'wait':712 'want':152,370,563,632 'web':606 'winner':708,715,749 'winnercriteria':348,701 'winnerdelay':709,740 'work':96,316,754 'workflow':141,143,1040 'yyyi':210,297,861 'yyyy-mm-ddthh':209,296,860","prices":[{"id":"51b6e379-6c91-4a20-a58e-a14af1e397d2","listingId":"577cf1f5-cc3c-4c22-b2cb-f1ebcb0779c1","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:33:44.638Z"}],"sources":[{"listingId":"577cf1f5-cc3c-4c22-b2cb-f1ebcb0779c1","source":"github","sourceId":"sickn33/antigravity-awesome-skills/brevo-automation","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/brevo-automation","isPrimary":false,"firstSeenAt":"2026-04-18T21:33:44.638Z","lastSeenAt":"2026-04-24T12:50:41.773Z"}],"details":{"listingId":"577cf1f5-cc3c-4c22-b2cb-f1ebcb0779c1","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"brevo-automation","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34882,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T06:41:17Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"0c51f927f84d1d1513ee1f97f82ee5e29cbd4bde","skill_md_path":"skills/brevo-automation/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/brevo-automation"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"brevo-automation","description":"Automate Brevo (formerly Sendinblue) email marketing operations through Composio's Brevo toolkit via Rube MCP."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/brevo-automation"},"updatedAt":"2026-04-24T12:50:41.773Z"}}