CRM migration

Migrate from Kartra to Twenty CRM

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

Kartra logo

Kartra

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

70%

7 of 10

objects map 1:1 between Kartra and Twenty CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Kartra to Twenty CRM is a migration from an all-in-one marketing platform into a purpose-built, open-source CRM. Kartra's central object is the Contact (formerly Lead), with Tags, Lists, Custom Fields, and Transactions layered as separate data exports pulled from the UI as individual CSVs. There is no bulk extraction API; all migration data comes from sequential manual UI exports. We sequence those exports oldest-to-newest to preserve creation-order timelines, split comma-separated Tags into individual tag records, and map Kartra's transactional fields to Twenty's Opportunities. We do not migrate Sequences, automation logic, or behavioral events unless explicit tags exist in Kartra to capture them. We deliver a written automation rebuild inventory for Kartra Sequences so the customer's team can reconstruct them in Twenty's Workflows post-migration.

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

Kartra logo

Kartra

What's pushing teams away

  • CRM depth is shallow compared to dedicated CRMs — no true lead scoring engine, limited pipeline management, and basic contact profiles frustrate users with complex sales processes.
  • Steep learning curve despite a polished UI; users report months of trial-and-error before feeling comfortable with automation sequences and behavioral triggers.
  • Contact-based pricing means hitting your plan limit forces an upgrade even if most contacts are inactive, creating pressure to purge records to stay in tier.
  • The mobile app is widely described as limited and unreliable, forcing users to manage most tasks from a desktop browser.
  • Support response times lag behind competitors, with users citing multi-day waits for ticket resolution during critical issues.

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 Kartra objects map to Twenty CRM

Each row shows how a Kartra 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.

Kartra

Contact (formerly Lead)

maps to

Twenty CRM

Person

1:1
Fully supported

Kartra Contacts (renamed from Leads in October 2024) map directly to Twenty CRM Person records. Standard fields (firstName, lastName, email, phone, address) map cleanly to Twenty's Person object fields. We export oldest-to-newest to preserve creation-order timestamps, which become the createdAt value on each Person record. The Kartra GDPR Status field maps to a custom field on Person. Contacts without email are flagged during profiling and held in a reconciliation queue.

Kartra

Company

maps to

Twenty CRM

Company

1:1
Fully supported

Kartra Company records map to Twenty CRM Company. The company name becomes the Company name field. We run a dedupe check on companyName before import to catch duplicate Kartra companies that represent the same business. Companies are imported before People so that the Company-Person relationship (Company name on Person) can be resolved at insert time.

Kartra

Custom Fields

maps to

Twenty CRM

Custom Fields (Person / Company)

lossy
Mapping required

Kartra supports five custom field types: input_field, text_area, drop_down, radio_button, and checkbox. We read the Kartra field schema during scoping to determine types, then pre-create matching custom fields in Twenty via Settings → Data Model before migration begins. Drop-down and radio_button types become Twenty Select fields; checkbox becomes a Boolean; text_area becomes a Long Text field. API field names must be set explicitly on Twenty custom fields during creation for import compatibility.

Kartra

Tag

maps to

Twenty CRM

Workspace Tags

lossy
Fully supported

Kartra stores tags as comma-separated strings per contact in the CSV export. We parse and split these into individual tag values, then create corresponding tag records in Twenty CRM's workspace. Each migrated Person receives tag associations linked to its record. Note: retroactive tags (e.g., 'form_completed') that were not set up in Kartra are absent from export and cannot be recovered. We probe the customer's tag taxonomy during scoping to identify which behavioral events were captured versus which are permanently absent.

Kartra

List

maps to

Twenty CRM

Workspace / Segment

lossy
Fully supported

Kartra Lists are exported as comma-separated values per contact. We split list memberships into individual workspace or segment associations in Twenty CRM. If the customer used lists for audience segmentation in Kartra's email marketing, these translate to Twenty workspace-level tag segments. List-based marketing segmentation that drives Kartra email campaigns must be rebuilt as Twenty Workflow trigger conditions post-migration.

Kartra

Transaction

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Kartra Transactions export as a separate CSV from contacts. We map transaction amount, product name, date, and payment method to a Twenty CRM Opportunity record. The Opportunity name is derived from the Kartra product name or a transaction reference. Transaction date becomes the Opportunity createdAt; amount becomes the Opportunity amount. Note: Kartra does not export lifetime value or total spend aggregates — only per-transaction records. Subscription transactions migrate with status (active, cancelled, paused) mapped to Opportunity stage or a custom subscription status field.

Kartra

Subscription

maps to

Twenty CRM

Opportunity or Custom Object

1:1
Fully supported

Kartra Subscription records export separately from contacts and include status, start date, and associated product. We map active subscriptions to Opportunity records with a subscription-specific stage, or to a custom Subscription object if the customer requires recurring revenue tracking. Cancelled and paused subscriptions map to a separate stage. Kartra does not export subscription MRR or ARR values — only the product association and status.

Kartra

Calendar / Appointment

maps to

Twenty CRM

Task / Event

1:1
Fully supported

Kartra Calendar bookings are separate from the contacts export. We map calendar names and booking metadata to Twenty CRM Task or Event records linked to the Person. Historical appointment records require a separate Kartra export and are not included in the standard contacts CSV. If no historical appointment export exists, appointment history is absent from the migration.

Kartra

Affiliate

maps to

Twenty CRM

Custom Object (Affiliate / Partner)

1:1
Fully supported

Affiliate sign-up events tracked in Kartra's API events system map to a custom Affiliate or Partner object in Twenty CRM. We create the custom object schema during migration setup, then populate affiliate relationships from Kartra's events data where available. Standard Kartra exports do not include affiliate commission history.

Kartra

Sequences (Automated Email Sequences)

maps to

Twenty CRM

Workflows (not migrated)

1:1
Not supported

Kartra Sequences are multi-step email automation flows with conditional branching, delays, and action triggers. This automation logic does not exist as a data file that can be exported — only the contacts enrolled in sequences are present in the contacts export. We do not migrate sequence logic. We deliver a written inventory of every active Kartra Sequence (step count, triggers, conditions, and actions) for the customer's team to rebuild as Twenty Workflows post-migration.

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.

Kartra logo

Kartra gotchas

High

Behavioral history is absent from Kartra exports unless tags were pre-set up

High

Contact-based pricing requires pre-migration record audit

High

No bulk or programmatic API for extraction

Medium

Sequences, automation logic, and workflows cannot be exported

Medium

GDPR status fields export but require manual review at destination

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

  • Behavioral events are absent unless tags were pre-configured in Kartra

    Kartra explicitly states that Forms completed, Surveys completed, Webinars registered, and Membership access are NOT included in the standard CSV export. The only path to preserving this engagement data is if the customer's Kartra account was configured to apply a tag on each event. We audit the customer's existing tag taxonomy during scoping to identify whether any behavioral tags exist. If none are found, we document which engagement events will be lost and surface this to the customer before migration begins so that expectations are set and a decision can be made about whether to suppress inactive contacts to reduce noise in the destination CRM.

  • No bulk API means all Kartra exports require manual UI batching

    Kartra does not expose a bulk data export API. All contact, transaction, and subscription data must be exported via the web UI as individual CSV files. Accounts with more than 10,000 contacts require multiple sequential UI export operations, each limited by Kartra's pagination. We chunk large exports into manageable batches, validate each file's field completeness, and reassemble them into a unified migration dataset. This manual extraction step is the primary source of timeline risk for large accounts and must be accounted for in project scheduling.

  • Kartra Sequences, automations, and workflows do not export as data

    Kartra Sequences are multi-step email automation flows with conditional branching, delays, and action triggers. This workflow logic does not exist as a data file that can be exported — only the contacts themselves can be moved. We inform customers during scoping that every automation must be rebuilt in Twenty's Workflow builder post-migration. We export the full contact list and all available tag and list metadata so that new Twenty Workflows can be configured around the migrated data once the destination system is operational.

  • Contact count discrepancy may trigger pricing change at both platforms

    Kartra bills by total contact count across all plans, and many customers accumulate inactive or bounced contacts over years of use. Migrating a full Kartra CSV into Twenty CRM — which has unlimited contacts at both Pro ($9/user) and Organization ($19/user) tiers — removes the per-contact pricing ceiling from Kartra's side. However, the customer must account for Twenty's per-user cost, which may be higher or lower depending on seat count. We audit the contact list for bounced, duplicate, and stale records during pre-migration profiling and present the clean count versus the raw export count so the customer can decide whether to suppress inactive records before migration.

  • Twenty CRM CSV import has field-type validation that can reject records

    Twenty CRM's CSV import validates field types at insert time. Phone numbers, email addresses, dates, and currency values that do not match Twenty's expected format are rejected. We run a pre-import transformation pass to standardize formats (phone number normalization, date format conversion to ISO 8601, currency stripping of non-numeric characters). Select fields with specific option values must be pre-created in Twenty's data model before import or the values are silently dropped. We run a staging import of a 100-record sample before the full load to catch format issues before they affect thousands of records.

Migration approach

Six steps for a successful Kartra to Twenty CRM data migration

  1. Discovery and data audit

    We conduct a scoping call to extract Kartra account metadata: contact count, custom field list (with field types), tag taxonomy, list count, transaction volume, subscription count, and calendar setup. We use the Kartra UI to run sample exports of contacts and transactions and validate field completeness against the customer's schema. We probe the tag taxonomy to identify which behavioral events (form completions, survey results, webinar registrations, membership access) were captured via tags versus which are absent from export. The discovery output is a written migration scope that specifies what migrates, what is permanently absent, and what must be rebuilt in Twenty Workflows.

  2. Schema design in Twenty CRM

    We provision the destination schema in Twenty CRM before any data moves. This includes creating all custom fields (with API names and types matched to Kartra's five field types), any custom objects for subscriptions or affiliate data, workspace tags for parsed Kartra tag values, and list-based segments for Kartra audience lists. We configure the data model via Twenty's Settings → Data Model interface using the REST or GraphQL API where possible. If the customer uses Twenty's Organization tier ($19/user), we also configure roles and permissions before migration begins.

  3. Kartra CSV extraction and batching

    We guide the customer through Kartra's UI-based CSV export process. For contacts, we sequence the export oldest-to-newest to preserve creation-order timelines. For accounts with fewer than 2,500 contacts, a single export suffices. For larger accounts, we batch the export across multiple UI operations and reassemble the files. We pull separate CSVs for transactions, subscriptions, and any calendar data. We validate each CSV file for field completeness, flagging any missing standard fields (email, name, phone) before the transform phase begins.

  4. Data transformation and field mapping

    We transform the Kartra CSVs into Twenty CRM's import format. Tag comma-separated strings are split into individual tag records. Date formats are converted to ISO 8601. Phone numbers are normalized. Drop-down values are matched to pre-created select field options in Twenty. We run the Kartra transaction CSV through a name-derivation step to create Opportunity names. We resolve Kartra company names against the Company import to populate the Person-Company relationship. The transformation output is a set of staging CSVs ready for Twenty's CSV import tool or REST API.

  5. Staging import and validation

    We run a full migration into Twenty CRM using a staging environment or a dedicated workspace. We import Companies first (as the foundation for Person-Company relationships), then People (with Company name resolved), then Opportunities (with Person and Company lookups resolved), then Tags (parsed and linked), then Custom Fields. We produce a row-count reconciliation report comparing Kartra source counts against Twenty destination counts for each object. The customer's team spot-checks 25-50 records across each object type against the Kartra source before we proceed to production migration.

  6. Production migration and cutover

    We run the production migration in the same dependency order as staging: Companies → People → Opportunities → Tags → Custom Fields. We freeze Kartra writes during the cutover window. We run a final delta check for any records modified during the migration window and import the delta. We validate record counts, relationship integrity, and field completeness in the production Twenty workspace. We deliver the Sequence and automation rebuild inventory to the customer's team. We provide a one-week hypercare window for reconciliation issues. We do not rebuild Kartra Sequences as Twenty Workflows; that is a separate engagement or internal admin task.

Platform deep dives

Context on both ends of the pair

Kartra logo

Kartra

Source

Strengths

  • Unlimited email and SMS at every tier with no per-message fees or platform transaction charges.
  • Built-in video hosting, page builder, membership sites, and calendar booking eliminate separate tool subscriptions.
  • Pricing scales with contact count (2,500 to 100,000+) rather than feature gating; even Starter includes all core features except agency mode.
  • Kartra provides a documented migration path (CSV export) and explicit guidance on what can and cannot be moved, making FlitStack AI's extraction straightforward.

Weaknesses

  • No bulk API for programmatic data extraction — all migration work depends on Kartra's UI-based CSV export, which cannot be automated end-to-end.
  • Behavioral and engagement data (form completions, survey results, webinar attendance, membership access history) is absent from exports unless explicit tags were set up to capture these events.
  • CRM functionality is intentionally basic — limited pipeline stages, no true lead scoring, and shallow opportunity management compared to HubSpot or Salesforce.
  • Dedicated content-marketing and blogging tools are weak, making Kartra a poor fit for businesses where organic blog traffic is a primary growth channel.
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 Kartra 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

    Kartra: Hardcoded ceiling of 20 inbound API calls per second per Kartra App..

  • Data volume sensitivity

    B

    Kartra doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Kartra 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 Kartra to Twenty CRM data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Migrations under 5,000 contacts with clean CSV exports, no behavioral tag recovery work, and straightforward custom field mapping land between three and five weeks. Accounts over 10,000 contacts, complex tag taxonomy, or subscription and transaction history that requires separate export batches move to six to ten weeks. The Kartra UI-based export process is the primary driver of timeline variance — accounts with large contact volumes requiring multiple sequential exports add 1-2 weeks to the schedule.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Kartra.
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