hvac-marketing-skills/tools/integrations/brevo.md
Corey Haines 3a85964305 feat: add 23 new CLI tools and integration guides
New tools across 13 categories:
- Email/Newsletter: beehiiv, klaviyo, postmark, brevo, activecampaign
- Data Enrichment: clearbit, apollo
- CRO/Testing: hotjar, optimizely
- Analytics: plausible
- Scheduling: calendly, savvycal
- Forms: typeform
- Messaging: intercom
- Social: buffer
- Video: wistia
- Payments: paddle
- Affiliate: partnerstack
- Reviews: trustpilot, g2
- Push: onesignal
- Webinar: demio, livestorm

Each tool includes a zero-dependency CLI and integration guide.
Registry and CLI README updated with all new entries.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 11:28:41 -08:00

5.5 KiB

Brevo

All-in-one marketing platform (formerly Sendinblue) for email, SMS, and WhatsApp with contacts, campaigns, and transactional messaging.

Capabilities

Integration Available Notes
API REST API v3 for contacts, campaigns, transactional email/SMS
MCP - Not available
CLI brevo.js
SDK Node.js, Python, PHP, Ruby, Java, C#, Go

Authentication

  • Type: API Key
  • Header: api-key: {api_key}
  • Get key: SMTP & API settings at https://app.brevo.com/settings/keys/api
  • Note: API key is only shown once on creation; store securely. Formerly used api.sendinblue.com base URL.

Common Agent Operations

Get account info

GET https://api.brevo.com/v3/account

List contacts

GET https://api.brevo.com/v3/contacts?limit=50&offset=0

Get contact by email

GET https://api.brevo.com/v3/contacts/user@example.com

Create contact

POST https://api.brevo.com/v3/contacts

{
  "email": "user@example.com",
  "attributes": {
    "FIRSTNAME": "Jane",
    "LASTNAME": "Doe"
  },
  "listIds": [1, 2]
}

Update contact

PUT https://api.brevo.com/v3/contacts/user@example.com

{
  "attributes": {
    "FIRSTNAME": "Updated"
  },
  "listIds": [3]
}

Delete contact

DELETE https://api.brevo.com/v3/contacts/user@example.com

Import contacts

POST https://api.brevo.com/v3/contacts/import

{
  "jsonBody": [
    { "email": "user1@example.com" },
    { "email": "user2@example.com" }
  ],
  "listIds": [1]
}

List contact lists

GET https://api.brevo.com/v3/contacts/lists?limit=50&offset=0

Create list

POST https://api.brevo.com/v3/contacts/lists

{
  "name": "Newsletter Subscribers",
  "folderId": 1
}

Add contacts to list

POST https://api.brevo.com/v3/contacts/lists/{listId}/contacts/add

{
  "emails": ["user1@example.com", "user2@example.com"]
}

Remove contacts from list

POST https://api.brevo.com/v3/contacts/lists/{listId}/contacts/remove

{
  "emails": ["user1@example.com"]
}

Send transactional email

POST https://api.brevo.com/v3/smtp/email

{
  "sender": {
    "name": "My App",
    "email": "noreply@example.com"
  },
  "to": [
    { "email": "user@example.com", "name": "Jane Doe" }
  ],
  "subject": "Order Confirmation",
  "htmlContent": "<html><body><p>Your order is confirmed.</p></body></html>"
}

List email campaigns

GET https://api.brevo.com/v3/emailCampaigns?limit=50&offset=0&type=classic&status=sent

Create email campaign

POST https://api.brevo.com/v3/emailCampaigns

{
  "name": "January Newsletter",
  "subject": "Monthly Update",
  "sender": { "name": "My Brand", "email": "news@example.com" },
  "htmlContent": "<html><body><p>Newsletter content</p></body></html>",
  "recipients": { "listIds": [1, 2] }
}

Send campaign immediately

POST https://api.brevo.com/v3/emailCampaigns/{campaignId}/sendNow

Send test email for campaign

POST https://api.brevo.com/v3/emailCampaigns/{campaignId}/sendTest

{
  "emailTo": ["test@example.com"]
}

Send transactional SMS

POST https://api.brevo.com/v3/transactionalSMS/sms

{
  "sender": "MyApp",
  "recipient": "+15551234567",
  "content": "Your verification code is 123456",
  "type": "transactional"
}

List SMS campaigns

GET https://api.brevo.com/v3/smsCampaigns?limit=50&offset=0

List senders

GET https://api.brevo.com/v3/senders

API Pattern

Brevo uses standard REST with offset-based pagination (limit and offset parameters). Contact attributes use uppercase field names (FIRSTNAME, LASTNAME). Lists are nested under the contacts resource path. Transactional email uses the /smtp/email endpoint despite being REST-based.

Key Metrics

Contact Fields

  • email - Email address
  • attributes - Custom attributes (FIRSTNAME, LASTNAME, SMS, etc.)
  • listIds - Associated list IDs
  • emailBlacklisted - Email opt-out status
  • smsBlacklisted - SMS opt-out status
  • statistics - Engagement stats (with expand)

Campaign Metrics

  • sent - Total sends
  • delivered - Successful deliveries
  • openRate - Open percentage
  • clickRate - Click percentage
  • unsubscribed - Unsubscribe count
  • hardBounces, softBounces - Bounce counts

Transactional Email Response

  • messageId - Unique message identifier for tracking

Parameters

Contact Parameters

  • email - Contact email address
  • attributes - Key-value object of custom attributes
  • listIds - Array of list IDs to subscribe to
  • unlinkListIds - Array of list IDs to unsubscribe from

Campaign Parameters

  • name - Campaign name
  • subject - Email subject line
  • sender - Object with name and email
  • htmlContent / textContent - Email body
  • recipients - Object with listIds array
  • type - classic or trigger

When to Use

  • Multi-channel marketing (email + SMS + WhatsApp)
  • Transactional email sending with tracking
  • Managing contacts and segmented lists
  • Creating and scheduling email campaigns
  • SMS notifications and marketing
  • Affordable all-in-one marketing automation

Rate Limits

  • API rate limits depend on plan (free tier: limited sends/day)
  • Transactional email: varies by plan
  • Contact imports: batch processing with async status
  • Rate limit headers returned with responses

Relevant Skills

  • email-sequence
  • sms-marketing
  • transactional-email
  • lifecycle-marketing
  • contact-management