Skip to content

Add BrevoAdapter for Brevo CRM API v3#33

Draft
ismaelbks wants to merge 2 commits intofeat/batch-sync-v2from
feat/brevo-adapter
Draft

Add BrevoAdapter for Brevo CRM API v3#33
ismaelbks wants to merge 2 commits intofeat/batch-sync-v2from
feat/brevo-adapter

Conversation

@ismaelbks
Copy link
Copy Markdown
Collaborator

@ismaelbks ismaelbks commented Apr 4, 2026

Nouvelles fonctionnalités

  • BrevoAdapter : adapter complet pour l'API Brevo (ex-Sendinblue) v3 avec upsert! et delete! pour contacts, companies et deals.
  • Zero dépendance externe : utilise Net::HTTP via le DefaultHttp partagé.
  • Rate limiting intégré : support du rate_limiter= sur le Client interne, compatible avec le BatchSyncJob.
  • Gestion d'erreurs structurée : mapping HTTP → hiérarchie Etlify (401→Unauthorized, 429→RateLimited, etc.).
  • Pas de batch_upsert! : l'endpoint batch de Brevo est asynchrone (retourne un processId), incompatible avec l'interface synchrone. Le BatchSyncJob utilise le fallback séquentiel (Synchronizer.call).

Limitations vs HubSpot

Métrique HubSpot Brevo
Rate limit 100 req/10s 100 req/heure (standard)
Batch upsert natif Oui (100 rec/req) Non (async uniquement)
Sync via BatchSyncJob BatchSynchronizer + batch_upsert! Fallback Synchronizer.call séquentiel

Add Brevo (ex-Sendinblue) adapter supporting contacts, companies,
and deals via upsert! and delete!. Uses Net::HTTP via shared
DefaultHttp (zero external dependency). Supports rate limiting via
rate_limiter= accessor on internal Client. No batch_upsert! as
Brevo batch import is async/incompatible with synchronous interface.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@ismaelbks ismaelbks force-pushed the feat/brevo-adapter branch from 67d5309 to b1505f2 Compare April 4, 2026 20:52
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@ismaelbks ismaelbks marked this pull request as draft April 7, 2026 06:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant