CRM migration

Migrate from Zixflow to Twenty CRM

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

Zixflow logo

Zixflow

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

70%

7 of 10

objects map 1:1 between Zixflow and Twenty CRM.

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Zixflow to Twenty CRM is a data-model simplification. Zixflow combines CRM, email finder, WhatsApp broadcaster, and SMS platform under one subscription with a wallet-based messaging model. Twenty CRM is an open-source CRM built as a GPL-licensed alternative to Salesforce and HubSpot with full customization, custom objects, and a REST and GraphQL API. We migrate Contacts and their Custom Fields cleanly, preserve Collection membership as group assignments, and convert Inbox conversation threads into time-ordered task and note records. Zixflow Flows define automation logic as a visual node graph that is not portable; we document each Flow's trigger and action sequence as a written runbook for the customer's admin to rebuild in Twenty's workflow builder. Wallet-based messaging credits and automation credits are billing artifacts with no data portability value and do not transfer. Teams leaving Zixflow typically cite per-message WhatsApp cost unpredictability, email finder accuracy gaps, and the desire for a purpose-built CRM with full data ownership and self-hosting options. Twenty's pricing at $9-$19 per user per month with unlimited contacts, custom objects, and custom fields removes the per-contact and per-credit constraints that Zixflow introduced.

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

Zixflow logo

Zixflow

What's pushing teams away

  • Incoming messages occasionally fail to appear in the Inbox without explanation, creating gaps in customer conversation history that agents must manually investigate and reconstruct.
  • Email finder and validation accuracy is inconsistent — invalid or unfindable addresses still appear in enrichment results, requiring manual verification before outreach.
  • The per-message WhatsApp billing model introduced cost unpredictability after WhatsApp Business shifted from conversation-based to per-message pricing, catching volume senders off-guard.
  • Some legacy customers from the Sales Simplify era reported being unable to transfer their deal records after the platform rebranded, souring trust in long-term data portability.
  • The platform's small community footprint means limited third-party integrations and fewer peer resources compared to established CRM competitors.

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

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

Zixflow

Contact

maps to

Twenty CRM

People

1:1
Fully supported

Zixflow Contacts are the primary CRM record and map directly to Twenty People. We extract all standard fields (name, email, phone) and custom fields from the Contact schema. The email address serves as the dedupe key during import. If the contact was created from a Sales Simplify-era export and includes deal-related metadata, we preserve that data in a custom text field deal_metadata__c on the People record rather than assuming a native Deals object exists in Zixflow.

Zixflow

Collection

maps to

Twenty CRM

People (group tags)

1:many
Fully supported

Zixflow Collections are list or grouping constructs that associate Contacts. We preserve Collection membership by creating a group-tag mapping table during export: for each Collection, we generate a list of contact IDs belonging to it. During import into Twenty, we create a custom select field collection_memberships__c on People and populate it with the Collection names, or we create a separate Group object with a membership relationship depending on the customer's preference. The mapping table is delivered as a CSV alongside the primary import.

Zixflow

Custom Field (on Contact)

maps to

Twenty CRM

Custom Field (on People)

1:1
Fully supported

Zixflow supports custom fields including AI-generated custom fields on Contacts. We document the full custom field schema (field name, field type, picklist options if applicable) and create equivalent fields in Twenty via Settings -> Data Model before import. Text fields map to TEXT, number fields to NUMBER, date fields to DATE, picklist fields to SELECT with the same options. Fields must exist in Twenty before the CSV import runs.

Zixflow

Inbox Conversation

maps to

Twenty CRM

Task + Note

1:many
Fully supported

Zixflow Inbox stores threaded message conversations across WhatsApp, SMS, Email, and RCS channels. The conversation threading model varies by channel, so we flatten each thread into a time-ordered sequence of Task records (one Task per message with TaskSubtype=Email, Call, or Custom, and Subject set to the channel and timestamp) and a Note record (body containing the full thread text). We set ActivityDate on each Task to the original message timestamp to preserve chronological ordering in Twenty's timeline view.

Zixflow

Form Submission

maps to

Twenty CRM

Custom Field + Note

1:1
Fully supported

Zixflow Forms capture lead data. Form field values populate corresponding Contact custom fields during import. Form submission metadata (submission date, form name, UTM parameters if present) migrate as a Note attached to the People record with the form name as the Note title and submission details in the body. The visual form builder and form design do not transfer.

Zixflow

Flow (Automation)

maps to

Twenty CRM

Workflow (documentation only)

lossy
Fully supported

Zixflow Flows define automation logic as a visual node graph. The node structure is not a portable format and does not map to Twenty's workflow builder. We inspect each active Flow during scoping, document its trigger conditions (event-based or schedule-based), condition branches, and action sequence in a written runbook. The customer's admin rebuilds the logic in Twenty's workflow builder using the runbook as a specification. Flow documentation is delivered before migration cutover so rebuild work can begin in parallel.

Zixflow

User (Team Member)

maps to

Twenty CRM

User

1:1
Fully supported

Zixflow User records represent seats. During migration we map Zixflow user email addresses to Twenty user accounts. We resolve by email match. Users must exist in Twenty before importing any records that reference them as owners or assignees. We flag any Zixflow user without a matching Twenty user for the customer to provision before record import resumes.

Zixflow

Company (if present in Zixflow)

maps to

Twenty CRM

Company

1:1
Fully supported

Zixflow does not have a native Company object separate from Contact, but some accounts created during the Sales Simplify era may have company-related fields or groupings. If a Zixflow export includes company name or domain data, we create Twenty Company records from that data and link People records to them via the workEmail域 or a domain-match lookup. If no company data exists, we skip this object.

Zixflow

Messaging Credits (Wallet)

maps to

Twenty CRM

None

1:1
Not supported

Wallet-based messaging credits are a Zixflow billing artifact with no data portability value. WhatsApp, SMS, Email, and RCS credit balances reset to zero at the destination and are not migrated. We note this in the migration scope so the customer does not expect a balance transfer.

Zixflow

Analytics / Campaign Data

maps to

Twenty CRM

None

1:1
Not supported

Zixflow analytics including open rates, click rates, and delivery metrics are aggregated reporting outputs generated at query time. They are not stored as discrete records and cannot be exported as structured data. Campaign performance data does not migrate. We recommend the customer export any required reports as PDF or CSV from Zixflow before the migration window and store them externally.

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.

Zixflow logo

Zixflow gotchas

High

Rebrand from Sales Simplify left legacy customers without deal migration

Medium

WhatsApp per-message pricing shifted post-migration

Medium

CSV import enforces 100K record and 50MB file size caps

Medium

Flows cannot be directly exported as portable automation definitions

Low

API authentication requires manual token generation per workspace

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

  • Zixflow has no documented API rate limits

    Zixflow's API does not publish rate limit thresholds. Migration tooling must implement defensive backoff and retry logic without knowing the ceiling. Twenty's API enforces 100 calls per minute on Pro and 200 calls per minute on Organization. We implement exponential backoff against both platforms: on the Zixflow side we probe with escalating request frequency to find a safe threshold, and on the Twenty side we respect the documented limits strictly. Large migrations may require extended windows if the Zixflow export requires rate-limit probing to avoid throttling.

  • Twenty requires fields to exist before CSV import

    Twenty's CSV import creates records but not fields. Custom fields must be created in Settings -> Data Model before the import runs. We create all custom fields (with correct field types and picklist options) as a pre-import step. If a Zixflow export includes a custom field that was not documented during scoping, we add it to Twenty and re-run the affected import chunk rather than leaving the field unmapped. We also confirm that all referenced users exist in Twenty before importing records with owner or assignee references.

  • Collection membership requires group-tag reconstruction

    Zixflow Collections are a grouping mechanism with no direct Twenty equivalent. Twenty does not have native list or segment objects separate from People. We reconstruct Collection membership by populating a custom select field (collection_memberships__c) on People with Collection names as options, or by creating a Group custom object with a many-to-many relationship to People. The customer chooses the strategy during scoping. We deliver a Collection membership lookup table as a supplementary CSV alongside the primary import.

  • Flows (automations) cannot migrate as portable code

    Zixflow Flows define automation logic as a visual node graph stored in a proprietary structure. Twenty's workflow builder uses a different data model. There is no export format that preserves the automation logic between the two platforms. We document each active Flow during scoping, capture its trigger type, conditions, and action sequence, and deliver a written rebuild runbook. The customer's admin rebuilds the logic in Twenty's workflow builder. If the customer has a large number of active Flows, the rebuild scope should be scoped as a separate workstream running in parallel with data migration.

  • Inbox conversation threading varies by channel

    Zixflow Inbox consolidates WhatsApp, SMS, Email, and RCS messages into threaded views, but the threading metadata (message grouping, conversation identifiers) is channel-specific and not consistently exposed in exports. We flatten each thread into a linear sequence of activity records (one Task per message) to ensure chronological integrity, but the visual threading context does not transfer. Agents who rely on conversation threading in Zixflow should be briefed that Twenty's activity timeline presents a linear history rather than a grouped thread view.

Migration approach

Six steps for a successful Zixflow to Twenty CRM data migration

  1. Discovery and data audit

    We audit the source Zixflow workspace across active Contacts, Collections, Custom Fields, Inbox conversation volume, active Flows, and User accounts. We export a schema snapshot including all custom field definitions and types. We run a data quality assessment to identify duplicate contacts, records with missing email addresses, and contacts that originated in the Sales Simplify era with deal metadata requiring a custom field rather than a native object. The discovery output is a written migration scope covering record counts per object, custom field schema, Collection count, and estimated Inbox message volume.

  2. Twenty workspace preparation

    We set up the destination Twenty workspace before any data import. This includes creating all custom fields (with correct types, picklist options, and uniqueness constraints) via Settings -> Data Model, creating the collection_memberships__c field or a Group custom object per the customer's chosen strategy, and inviting all team members so that User records exist before records with owner references are imported. We configure any custom field defaults (currency, country code for phone fields) and set field visibility so the migration user has write access to all required fields.

  3. Data export and transformation

    We export Contacts from Zixflow via CSV including all standard and custom field values. We export Collections as a separate membership mapping table (Contact ID to Collection name pairs). We export Inbox conversations by channel, flatten each thread into message-level activity records, and format as a Task import CSV with channel, timestamp, sender, and body. We probe Zixflow's API with escalating request frequency to establish a safe export rate limit and implement exponential backoff to avoid throttling. All exports run against a read-only migration key scoped to the workspace.

  4. Test migration into Twenty

    We run a test migration into a Twenty workspace using a representative subset of records (typically 5-10 percent of total volume, including edge cases like records with special characters, long text fields, and missing optional fields). We validate record counts per object, spot-check 25-50 records against the Zixflow source, and confirm that custom field values populated correctly and Collection memberships resolved. Any mapping corrections are applied before the production migration begins. The customer reviews the test output and signs off.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Users (validated as existing), Companies (if applicable), People (from Contacts), Tasks and Notes (from Inbox conversations), and Collection membership (applied as field values or Group membership records). Custom fields are pre-created in Twenty so that CSV column headers match exactly. Each phase emits a row-count reconciliation report before the next phase begins. We apply the same defensive backoff and retry logic against both Zixflow and Twenty APIs.

  6. Cutover, Flow documentation delivery, and validation

    We freeze Zixflow writes during cutover and run a final delta migration of any records modified during the migration window. We enable Twenty as the system of record and deliver the Flow documentation runbook to the customer's admin team. We support a five-business-day hypercare window where we resolve any data issues raised by the customer's team. We do not rebuild Zixflow Flows as Twenty Workflows inside the migration scope; the runbook is a specification document for the customer's admin to implement post-migration.

Platform deep dives

Context on both ends of the pair

Zixflow logo

Zixflow

Source

Strengths

  • Multi-channel messaging across WhatsApp, SMS, Email, and RCS under a single subscription without tier-gating channels
  • No per-contact storage billing — unlimited contacts on paid tiers regardless of volume
  • Visual Flow builder enables complex automations without developer involvement
  • Wallet-based pay-as-you-go messaging separates subscription cost from communication cost
  • AI-powered data enrichment and custom AI fields available out of the box

Weaknesses

  • Small review sample on G2 (29 reviews) and Capterra (80 reviews) limits confidence in long-term reliability signals
  • Trustpilot score of 3.3/5 reflects post-rebrand trust issues from Sales Simplify customers unable to migrate deal records
  • No documented API rate limits — migration tooling must probe carefully and implement backoff defensively
  • Limited community presence and third-party integration ecosystem compared to established CRM platforms
  • Email finder and validation accuracy gaps reported in user reviews require manual verification
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. 1 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 Zixflow and Twenty CRM.

  • Object compatibility

    B

    1 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

    Zixflow: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Migrations under 15,000 Contacts with no complex Collection hierarchies and under 50,000 Inbox message records land between three and five weeks. Migrations with large Inbox histories, extensive custom field schemas, or dozens of active Flows requiring documentation move to eight to twelve weeks because of thread-flattening transformation, custom field type mapping, and Flow inspection scope. Discovery and scoping typically require two weeks regardless of size.

Adjacent paths

Related migrations to explore

Ready when you are

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