CRM migration

Migrate from Brevo Marketing Platform to Twenty CRM

Field-level mapping, validation, and rollback between Brevo Marketing Platform and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.

Brevo Marketing Platform logo

Brevo Marketing Platform

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

75%

9 of 12

objects map 1:1 between Brevo Marketing Platform and Twenty CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Brevo Marketing Platform to Twenty CRM is a structural migration that separates your marketing automation layer from your sales CRM layer. Brevo bundles email, SMS, WhatsApp, and CRM into one platform priced by email volume; Twenty is a dedicated CRM with a per-seat open-source model that gives teams a clean sales database without marketing platform overhead. We export Contacts, Companies, and Deals via Brevo's REST API using pagination (the daily export feature was deprecated May 30, 2025), map custom contact attributes to Twenty's typed field model, and preserve pipeline-stage assignments. Brevo's automation workflows and multi-channel campaign data do not migrate because they are marketing-platform artifacts; we deliver a written inventory of workflows for your admin to evaluate for rebuild or retirement. Engagements (calls, emails, meetings, tasks) migrate as activity records where the destination schema supports them. The migration scope is scoped to CRM records only, not the marketing communication history that belongs in a dedicated marketing platform.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Brevo Marketing Platform logo

Brevo Marketing Platform

What's pushing teams away

  • Advanced analytics and attribution reporting are described as limited compared to enterprise tools, frustrating data-driven marketers.
  • Template customization is minimal; users wanting highly branded or complex email layouts frequently outgrow what Brevo offers.
  • Customer support response times are cited as slow by multiple reviewers, particularly on lower tiers.
  • The learning curve for complex automation workflows is steep, and in-app guidance for advanced setups is minimal.

Choosing

Twenty CRM logo

Twenty CRM

What's pulling them in

  • Top open-source CRM on GitHub with 40.6K stars, giving teams full source code access and infrastructure ownership without per-feature licensing surprises.
  • Free self-hosting under AGPL-3.0 means unlimited users and custom objects for the cost of cloud infrastructure alone, typically $20–100/month.
  • Pricing page explicitly mocks competitors for charging add-on fees for API access, webhooks, and workflows — transparency that resonates with RevOps teams burned by Salesforce.
  • Unlimited custom objects and fields with no price impact, letting teams shape the data model to their business rather than forcing business into rigid schemas.
  • Modern TypeScript/React/PostgreSQL stack means developer-led teams can extend, self-host, or integrate without fighting legacy architecture.

Object mapping

How Brevo Marketing Platform objects map to Twenty CRM

Each row shows how a Brevo Marketing Platform object lands in Twenty CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Brevo Marketing Platform

Contact

maps to

Twenty CRM

Contact

1:1
Fully supported

Brevo Contacts map directly to Twenty Contacts. We extract via GET /contacts with cursor-based pagination (Brevo's standard pagination method, not the deprecated daily export), preserving all standard attributes (email, firstName, lastName, phone, sms, attributes). Custom attributes on Brevo contacts (any key-value attributes beyond standard fields) map to Twenty custom fields that we create during schema setup. Email subscription status (emailBlacklisted) maps to a boolean field we add to Twenty's Contact schema. The Brevo contact's assigned company (links to a Companies record) is resolved by creating the Company in Twenty first, then setting the contact's companyId lookup at insert time.

Brevo Marketing Platform

Company

maps to

Twenty CRM

Company

1:1
Fully supported

Brevo Companies map to Twenty Companies. We export via GET /companies, preserving companyName, address fields, industry, website, and any custom company attributes. The company domain is stored as website for deduplication reference. Twenty does not have a native industry picklist, so Brevo industry values migrate as free-text unless the customer has pre-configured a picklist in Twenty.

Brevo Marketing Platform

Deal

maps to

Twenty CRM

Deal

1:1
Fully supported

Brevo Deals map to Twenty Deals with the pipeline and stage preserved. Each Deal carries a Brevo pipelineId and stageId; we resolve these to Twenty's pipeline and stage model during schema setup. Deal amount, probability (if set in Brevo), close date (closeDate), and notes migrate directly. Deals without a linked company are migrated as unassociated deals and flagged for manual review.

Brevo Marketing Platform

Pipeline

maps to

Twenty CRM

Pipeline

lossy
Fully supported

Brevo pipelines (up to 5 on Standard, more on Professional/Enterprise) map to a Twenty pipeline. We create the pipeline in Twenty during schema setup, configure stage names and order to match Brevo's stage names and positions, and set stage probabilities to match Brevo's stage-level probability values where they exist. Stage-level win/loss status from Brevo maps to the stage type in Twenty (standard, won, lost).

Brevo Marketing Platform

Tag

maps to

Twenty CRM

Tag

1:1
Fully supported

Brevo Tags are flat key-value labels applied to Contacts and Companies. We extract all unique tag keys from Brevo and recreate them in Twenty. Tag assignments (which contacts carry which tags) migrate as multi-select label entries on the Twenty Contact record. If Twenty's tag model differs from a flat list, we map tags to a custom multi-select picklist field on Contact. The customer confirms the preferred tag strategy during scoping.

Brevo Marketing Platform

Custom Object

maps to

Twenty CRM

Custom Object

1:1
Fully supported

Brevo Custom Objects (available on Pro and Enterprise plans) map to custom tables in Twenty. We export the custom object schema (field names, types, relationships) from Brevo via the API, create matching custom fields in Twenty's Contact, Company, or Deal schema, and migrate the records with lookup resolution to parent records. If the destination uses a different data model for a custom object (for example, Brevo stores a custom object as its own top-level entity), we map it to a custom field group on the nearest standard object rather than a standalone entity.

Brevo Marketing Platform

User

maps to

Twenty CRM

User

1:1
Fully supported

Brevo Users (team members with assigned seats) map to Twenty Users. We extract user records (name, email, role) via GET /users. The Brevo marketing seat count ($9/month per seat) does not map directly to Twenty's per-seat pricing, but the number of active Brevo users serves as a baseline for estimating the Twenty seat count. Users without a matching email in the Twenty destination are placed in a reconciliation queue for the admin to provision before record import proceeds.

Brevo Marketing Platform

Engagement: Note

maps to

Twenty CRM

Comment

1:1
Fully supported

Brevo Notes (engagement type NOTE) attached to Contacts or Deals map to Twenty Comments. We extract note content, author (resolved to a Twenty User by email), and timestamp. Notes are associated with the parent Contact or Deal record via the appropriate lookup field in Twenty. Rich-text formatting in Brevo notes is preserved as-is in the comment body.

Brevo Marketing Platform

Engagement: Meeting

maps to

Twenty CRM

Comment or Task

1:1
Fully supported

Brevo meeting engagements (Calendar events linked to Contacts) map to Twenty Comments with a timestamp and meeting indicator, or to a Task if the customer has configured a meeting task model. We extract event title, start/end datetime, attendee list, and notes. The organizer is resolved to a Twenty User by email match.

Brevo Marketing Platform

Segment

maps to

Twenty CRM

Custom Filter View

1:1
Fully supported

Brevo Segments (dynamic lists based on filter conditions) define filter logic against Contact attributes. We export the segment definitions (filter criteria, logic operators, combine rules) as a written document. Segments do not have a direct equivalent in Twenty CRM because Twenty's list model is based on saved filters rather than a separate segment object. We deliver a written segment catalog that maps each Brevo segment to a recommended Twenty saved filter configuration for the admin to implement.

Brevo Marketing Platform

Email Campaign

maps to

Twenty CRM

Not migrated

lossy
Fully supported

Brevo Email Campaigns are marketing communication artifacts (subject lines, content blocks, send history, open/click data) that belong to a marketing platform, not a CRM. We export campaign metadata (name, subject, send date, recipient count, open rate, click rate) as a CSV reporting artifact. The campaign content (HTML blocks, templates) does not migrate. The customer should maintain this data in Brevo or a dedicated email marketing tool if reporting history is needed.

Brevo Marketing Platform

SMS Campaign

maps to

Twenty CRM

Not migrated

lossy
Fully supported

Brevo SMS Campaigns and SMS credits are marketing communication artifacts with no equivalent in Twenty CRM. We export SMS campaign metadata as a CSV reporting artifact. SMS sender IDs and phone numbers require provisioning on a separate SMS platform (Twilio, MessageBird, or similar) and are not CRM data. If the customer needs SMS capability in Twenty, we flag this as a separate integration scope.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

Brevo Marketing Platform logo

Brevo Marketing Platform gotchas

High

Daily exports deprecated since May 30th, 2025

High

Contact storage limits tied to email volume tier, not plan name

High

Custom Objects only available on Enterprise or Pro plans

Medium

Automation workflow migration marks unsupported steps inactive

Medium

List IDs can change unexpectedly on Brevo's side

Twenty CRM logo

Twenty CRM gotchas

High

Import order is enforced and critical

High

Export limited to 20,000 records and visible columns only

Medium

Soft-deleted records count toward uniqueness and trigger restores

Medium

API rate limits cap at 200 req/min on Organization tier

Low

No native email sequences — follow-up cadences require external tools

Pair-specific challenges

  • Daily export deprecation forces API-based extraction

    Brevo removed the daily CSV export feature on May 30, 2025. Any migration pipeline that relies on daily exports will fail silently. We use Brevo's REST API endpoints (GET /contacts, GET /companies, GET /deals) with cursor-based pagination to extract records. API pagination adds overhead compared to bulk CSV export and requires handling rate-limit responses and incomplete page loads. We confirm the source account tier during scoping: Enterprise accounts retain Customer Data Platform access as an alternative export path; non-Enterprise accounts are scoped to API extraction only.

  • Contact storage limits tied to email volume tier

    Brevo's maximum storable contacts depend on both the plan name and the email volume tier within that plan. Starter at 5K emails/month caps at 500 contacts; Starter at 20K emails/month allows unlimited contacts. When migrating a large contact list to Twenty CRM, we verify that the Brevo source account's contact tier was not exceeded during normal operation, because any contacts stored above the limit may not be retrievable via the API. We cross-reference the account tier against the contact count during scoping to surface this risk before migration begins.

  • Automation workflows do not migrate and Twenty lacks a native workflow engine

    Brevo automation Journeys (triggers, conditions, delays, actions) are marketing platform artifacts that do not export as transferable logic. Additionally, Twenty CRM does not include a native workflow or automation engine in its current release. We deliver a written inventory of every active Brevo automation describing its trigger, conditions, and actions. The customer's admin evaluates each automation for rebuild using an external tool (Zapier, n8n, or custom code) or retirement. We do not recreate automation logic on the destination platform as part of the migration scope.

  • Brevo list IDs can change unexpectedly

    Multiple Brevo users report that list IDs changed silently after platform updates, breaking integrations anchored to stable list identifiers. We do not anchor imports or integrations to Brevo list IDs. We use contact email address as the primary key for deduplication and resolve list membership by tag assignment or segment re-import rather than ID mapping. Any ID-based references in the destination are flagged for the admin to verify post-migration.

  • Custom Objects require Pro or Enterprise plan on Brevo source

    Brevo custom object schemas can only be defined via the API and only on Pro or Enterprise accounts. Starter and Standard accounts cannot create or retrieve custom object data. We confirm the source account tier during scoping. If custom objects are in scope but the source is on a lower tier, we document the gap and suggest migrating any custom attribute data as flat fields on the standard Contact or Company object instead.

Migration approach

Six steps for a successful Brevo Marketing Platform to Twenty CRM data migration

  1. Discovery and API access verification

    We audit the Brevo account across plan tier, contact count, company count, deal count, pipeline configuration, active custom objects, tag taxonomy, and user list. We confirm API access by testing GET /contacts with pagination against the source account and measuring the time to extract a full page. We identify the email volume tier to verify that contact storage limits were not exceeded. We also confirm the export method available (REST API for all accounts; Customer Data Platform for Enterprise accounts as a secondary path). The discovery output is a written migration scope document with record counts, object inventory, and a recommended extraction sequence.

  2. Schema design in Twenty CRM

    We design the destination schema in Twenty CRM before any data moves. This includes creating custom fields on Contact, Company, and Deal to receive Brevo custom attributes, verifying the pipeline and stage configuration matches Brevo's pipeline structure, and confirming the data types for all fields (text, number, date, boolean, picklist). If Brevo Custom Objects are in scope, we map them to custom field groups on the nearest standard object or document the mapping as a separate custom table. Schema design happens in Twenty's UI or via API; we validate field type compatibility before migration begins.

  3. User provisioning and owner reconciliation

    We extract all Brevo Users (name, email, role) and match them against Twenty Users by email. Any Brevo user without a matching Twenty User goes to a reconciliation queue. The customer's admin provisions missing Twenty users before the migration phase begins. Owner assignments on Brevo Deals and Contacts are resolved at this stage by mapping Brevo owner email to the provisioned Twenty User record.

  4. Data extraction from Brevo via REST API

    We extract records from Brevo in dependency order using the REST API with cursor-based pagination. Companies are extracted first (no dependencies). Contacts are extracted second (with companyId resolved for linking). Deals are extracted third (with pipelineId, stageId, and companyId resolved). Tags, custom objects, and engagement notes are extracted in parallel streams. We handle rate-limit responses with exponential backoff. Each extraction phase emits a record count and a data quality report (duplicate email addresses, missing required fields, orphaned company references) before the next phase begins.

  5. Transformation and import into Twenty CRM

    We transform extracted records to match Twenty's field types and schema. This includes mapping Brevo custom attributes to Twenty custom fields, converting Brevo pipeline/stage IDs to Twenty stage values, resolving Brevo companyId lookups to Twenty Company IDs, and applying the email address as the dedupe key for Contact imports. Imports run in dependency order: Companies, then Contacts, then Deals, then Tags, then custom objects, then notes. Each import phase emits a reconciliation report comparing imported row count to extracted row count.

  6. Cutover, validation, and workflow handoff

    We freeze writes in Brevo during the cutover window, run a final delta extraction of any records modified during the migration window, and import the delta into Twenty. We perform a spot-check reconciliation on a random sample of 25-50 records comparing Brevo source values to Twenty destination values. We deliver the automation inventory document to the customer's admin team covering all Brevo workflows and segments with recommendations for rebuild or retirement. We offer a one-week hypercare window for reconciliation issues. We do not rebuild Brevo workflows or recreate segments in Twenty as part of the migration scope.

Platform deep dives

Context on both ends of the pair

Brevo Marketing Platform logo

Brevo Marketing Platform

Source

Strengths

  • Free plan with 300 emails/day and full transactional API access — best-in-class for low-volume use cases.
  • Per-email-volume pricing model instead of per-contact, protecting costs for large lists.
  • Includes CRM (Contacts, Companies, Deals) in all paid tiers at no extra charge.
  • Multi-channel delivery (email, SMS, WhatsApp, chat) from a single platform with shared contact records.
  • Bulk upsert API for Contacts and Custom Objects supports asynchronous batch processing.

Weaknesses

  • Daily export feature deprecated as of May 2025, limiting programmatic data pull options for non-Enterprise accounts.
  • Custom Objects require Enterprise or Pro plan — a common blocker for teams that outgrow Starter/Standard but have custom data.
  • Automation workflows have a separate migration path with potential for unsupported steps to become inactive.
  • Contact storage limits are tied to email volume tier, not plan name — easy to hit limits unexpectedly when importing large lists.
  • Limited email template variety and advanced template customization compared to dedicated email design tools.
Twenty CRM logo

Twenty CRM

Destination

Strengths

  • AGPL-3.0 open-source license with full source code on GitHub — no vendor lock-in, no sunset risk.
  • Unlimited users and unlimited custom objects on self-hosted, with no feature gating based on headcount.
  • REST and GraphQL APIs available on all paid tiers, not locked behind an enterprise add-on fee.
  • MCP server and webhooks shipped as standard features, not premium upgrades.
  • Modern PostgreSQL-backed data model that developer teams can query, extend, and self-host.

Weaknesses

  • Recent v1.0 release means limited production hardening compared to CRMs with multi-year operational track records.
  • No native email sequencing or sales engagement tools — follow-up cadences require a separate platform.
  • No native two-way email sync or inbox integration, requiring third-party connectors for full activity logging.
  • Self-hosting 'free' pricing hides real infrastructure and DevOps costs that stack up over time.
  • Workflow automation is functional but lacks the complexity needed for sophisticated multi-step sales motions.

Complexity grading

How hard is this migration?

Standard CRM migration. 2 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Brevo Marketing Platform and Twenty CRM.

  • Object compatibility

    B

    2 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Brevo Marketing Platform: Documented per-endpoint quotas; general rate limits apply per org.

  • Data volume sensitivity

    A

    Brevo Marketing Platform exposes a bulk API — large-volume migrations stream efficiently.

Estimator

Estimate your Brevo Marketing Platform to Twenty CRM migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Brevo Marketing Platform to Twenty CRM data migrations

Answers to the questions buyers ask most during Brevo Marketing Platform to Twenty CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Brevo Marketing Platform to Twenty CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Migrations under 20,000 Contacts, 3,000 Deals, and no custom objects typically land between three and five weeks. Migrations with custom objects, large deal activity histories (over 100,000 records), or multi-company sub-account structures extend to eight to twelve weeks. The May 2025 daily export deprecation adds scoping time because we must validate API-based extraction against the Brevo REST API rather than relying on bulk CSV, which can extend discovery by three to five days on larger accounts.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Brevo Marketing Platform.
Land in Twenty CRM, intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day