El catálogo/Brevo

Brevo

app.brevo

Send emails, manage contacts, lists, templates, and campaigns in Brevo

Clave de APIcommunicationLeer el código↗
Versión2.0.0
Categoríacommunication
AutenticaciónClave de API
Herramientas23
Transportestdio
LicenciaMIT
01

Qué hace

La aplicación, en sus propias palabras.

Brevo email marketing — send transactional emails, manage contacts and lists, create email templates, and browse email campaigns through the Brevo API.

brevosendinblueemailemail-marketingtransactional-emailcontactscampaigns
02

Herramientas

23 herramientas que el agente puede llamar.

Todas se declaran con parámetros tipados y devuelven resultados estructurados, así que el anfitrión puede renderizarlas en vez de narrarlas.

  • add-contact-to-listAdd contacts to a Brevo list (POST /contacts/lists/{listId}/contacts/add). Identify contacts by emails[] and/or ids[]. Returns { listId, success, failure } (contacts that were / were not added). Params: listId (required, integer), emails? (string[]), ids? (number[]).
  • create-contactCreate (or update) a contact in Brevo (POST /contacts). Returns { id, email, listIds, updated }. Set updateEnabled:true to update an existing contact instead of failing on a duplicate. Params: email (required), attributes? (e.g. { FIRSTNAME, LASTNAME, SMS }), listIds? (number[]), updateEnabled? (default false).
  • create-email-campaignCreate an email campaign (newsletter) in Brevo (POST /emailCampaigns). Returns { id, name, subject, scheduledAt }. Provide content via EXACTLY ONE of htmlContent (>=10 chars), htmlUrl or templateId. sender is { email } XOR { id }. Add recipients{listIds} to target lists; if scheduledAt (ISO 8601) is set, listIds is required. Without scheduledAt the campaign is a draft you send later with send-email-campaign. Params: name (required), subject (required), sender{email?,id?,name?} (required), htmlContent?, htmlUrl?, templateId?, recipients{listIds?,exclusionListIds?,segmentIds?}?, scheduledAt?, replyTo?, toField?, tag?, previewText?.
  • create-email-templateCreate a transactional email template in Brevo (POST /smtp/templates). Returns { id, templateName, subject, isActive }. Templates are INACTIVE by default — set isActive:true to enable. sender takes EITHER {email} (a verified sender) OR {id} (a Brevo sender id), not both. Provide htmlContent (>=10 chars) or htmlUrl. Params: templateName (required), subject (required), sender{email?,id?,name?} (required), htmlContent?, htmlUrl?, isActive?, replyTo?, toField?, tag?, attachmentUrl?.
  • create-listCreate a contact list in Brevo (POST /contacts/lists). Returns { id, name, folderId }. Lists live inside a folder — pass a folderId (call list-folders to find one). Params: name (required), folderId (required, integer).
  • delete-contactDelete a contact permanently from Brevo (DELETE /contacts/{identifier}). IRREVERSIBLE — the contact and its history are removed. Returns { identifier, deleted }. Params: identifier (required — the contact email or id).
  • get-aggregated-smtp-reportGet aggregated transactional email stats from Brevo (GET /smtp/statistics/aggregatedReport): totals over a timeframe. Returns { range, requests, delivered, opens, uniqueOpens, clicks, uniqueClicks, hardBounces, softBounces, blocked, invalid, spamReports, unsubscribed }. Timeframe: pass days (1-90) OR a startDate+endDate range (YYYY-MM-DD), not both; defaults to the last 90 days. Params: startDate?, endDate?, days?, tag? (filter by email tag).
  • get-contactGet one contact by email or id from Brevo (GET /contacts/{identifier}). Returns { id, email, emailBlacklisted, smsBlacklisted, listIds, attributes, createdAt, modifiedAt }. Params: identifier (required — the contact email or id).
  • get-email-campaignGet one email campaign by id from Brevo (GET /emailCampaigns/{campaignId}). Returns { id, name, subject, type, status, scheduledAt, createdAt, modifiedAt }. Params: campaignId (required, integer).
  • get-email-event-reportGet transactional email events from Brevo (GET /smtp/statistics/events): per-message delivery events (delivered, opened, clicks, bounces, spam, unsubscribed...). Returns { events:[{date,email,event,messageId,subject,tag,reason,link,from,templateId}], count, limit, offset }. Timeframe: pass days (1-90) OR a startDate+endDate range (YYYY-MM-DD), not both; defaults to the last 30 days. Params: limit? (1-5000, default 100), offset? (default 0), startDate?, endDate?, days?, email?, event? (bounces|hardBounces|softBounces|delivered|spam|requests|opened|clicks|invalid|deferred|blocked|unsubscribed|error|loadedByProxy), messageId?, templateId?, sort? (asc|desc, default desc).
  • import-contactsBulk-import contacts into Brevo lists (POST /contacts/import). Provide EITHER jsonBody[] (inline contacts) OR fileUrl (a .csv/.json/.txt file), never both. Runs asynchronously — returns { processId, listIds, contactCount, source }. Params: jsonBody? ([{ email (required), attributes? }]), fileUrl? (http(s) URL), listIds (required, integer[] — the target lists), updateExistingContacts? (default false — update contacts that already exist instead of skipping them).
  • list-attributesList the contact attributes defined in the Brevo account (GET /contacts/attributes). Use it to discover valid attribute keys (e.g. FIRSTNAME, LASTNAME, custom fields) before creating/updating/importing contacts. Returns { attributes:[{name,category,type}], count }. No params.
  • list-contactsList contacts from Brevo (GET /contacts). Returns { contacts:[{id,email,emailBlacklisted,smsBlacklisted,listIds,attributes,createdAt,modifiedAt}], count, limit, offset }. Params: limit? (1-1000, default 50), offset? (default 0).
  • list-email-campaignsList email campaigns from Brevo (GET /emailCampaigns). Returns { campaigns:[{id,name,subject,type,status,scheduledAt,createdAt,modifiedAt}], count, type, status, limit, offset }. Params: type? (classic|trigger), status? (draft|sent|archive|queued|suspended|inProcess), limit? (1-100, default 50), offset? (default 0).
  • list-email-templatesList transactional email templates from Brevo (GET /smtp/templates). Returns { templates:[{id,name,subject,isActive,testSent,sender,replyTo,toField,tag,createdAt,modifiedAt}], count, templateStatus, limit, offset }. Params: templateStatus? (true=active only, false=inactive only, omit for all), limit? (1-1000, default 50), offset? (default 0).
  • list-foldersList contact folders from Brevo (GET /contacts/folders). Folders group contact lists; a folderId is required to create a list, so use this to discover one. Returns { folders:[{id,name,totalSubscribers,uniqueSubscribers,totalBlacklisted}], count, limit, offset }. Params: limit? (1-50, default 50), offset? (default 0).
  • list-listsList contact lists from Brevo (GET /contacts/lists). Returns { lists:[{id,name,folderId,totalSubscribers,uniqueSubscribers,totalBlacklisted}], count, limit, offset }. Params: limit? (1-50, default 50), offset? (default 0).
  • list-segmentsList the contact segments (saved filters) in the Brevo account (GET /contacts/segments). Their ids can be used as recipients.segmentIds in create-email-campaign. Returns { segments:[{id,segmentName,categoryName,updatedAt}], count, limit, offset, sort }. Params: limit? (1-50, default 10), offset? (default 0), sort? (asc | desc — by creation date, default desc).
  • remove-contact-from-listRemove contacts from a Brevo list (POST /contacts/lists/{listId}/contacts/remove). Identify contacts by emails[] and/or ids[]. Returns { listId, success, failure } (contacts that were / were not removed). Params: listId (required, integer), emails? (string[]), ids? (number[]).
  • send-email-campaignSend an email campaign immediately (POST /emailCampaigns/{campaignId}/sendNow). IRREVERSIBLE — delivers to every recipient with no undo. The campaign must be a draft with recipients set. Returns { campaignId, sent }. Params: campaignId (required, integer).
  • send-test-emailSend a test of an email campaign to specific addresses (POST /emailCampaigns/{campaignId}/sendTest). Delivers REAL emails to the given testers. Returns { campaignId, emailTo }. Params: campaignId (required, integer), emailTo (required, array of up to 99 email addresses).
  • send-transactional-emailSend a transactional email via Brevo (POST /smtp/email). Returns { messageId, subject, sender, recipients, recipientCount }. The sender email MUST be a verified sender or domain in the Brevo account. Provide htmlContent and/or textContent (at least one). Params: sender{email,name?}, to[{email,name?}] (>=1), subject, htmlContent?, textContent?, cc?, bcc?, replyTo{email,name?}?, params? (template variables), tags?.
  • update-contactUpdate a contact in Brevo (PUT /contacts/{identifier}). Returns { identifier, updated, listIds, unlinkListIds }. Attributes must already exist in the account (pass them UPPERCASE). listIds adds the contact to lists, unlinkListIds removes it. Params: identifier (required — email or id), attributes? (e.g. { FIRSTNAME }), emailBlacklisted?, smsBlacklisted?, listIds? (number[]), unlinkListIds? (number[]).
03

Autenticación y permisos

Qué pide.

Declarado en el manifiesto y por adelantado. La aplicación no puede alcanzar nada que no haya pedido aquí.

Secretos de usuario

BREVO_API_KEY

Seguir leyendo

El manifiesto y el código de Brevo están en el monorepo, junto al resto de aplicaciones.

Leer el código↗Volver al catálogo→

Brevo · Agent Apps