CRM migration

Migrate from CASH to Twenty CRM

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

CASH logo

CASH

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

10 of 10

objects map 1:1 between CASH and Twenty CRM.

Complexity

CModerate

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

CASH CRM stores contacts, companies, and deal records in a standard SaaS object model with custom properties that vary per tenant. Twenty CRM exposes People, Companies, Opportunities, Notes, and Tasks as its standard objects, with a Settings → Data Model panel for creating custom fields. The migration carries CASH standard fields (name, email, phone, address, deal amount, stage) into Twenty's equivalents and translates CASH custom properties into Twenty custom fields. FlitStack sequences the migration as: Companies first (the one-side of relationships), then People linked by companyId, then Opportunities linked to both. CASH workflow definitions, automation rules, and email templates do not transfer — these require manual rebuild in Twenty's workflow builder. We use CASH CSV export or API calls to read source data, map every field against Twenty's current schema, and push records via Twenty's REST or GraphQL API. A sample migration with field-level diff validates the mapping before the full run commits, and a 24-48 hour delta pickup window captures any in-flight changes during cutover. Audit logs and one-click rollback protect against reconciliation failures.

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

CASH logo

CASH

What's pushing teams away

  • Spend caps remain on the business account itself — $7,500/day and $17,500/month limit operational outflows.
  • Not a relationship CRM — customer records are tied to payment instruments, not lifecycle/profile data. Email, phone, address, notes, and tags are not first-class.
  • Limited reporting — no built-in funnel, deal pipeline, or activity timeline; merchants outgrow this and migrate to Square Customer Directory, Shopify, or a dedicated CRM.
  • 3% fee for credit-card-funded payments (above the 2.75% baseline) erodes margin for higher-ticket items.
  • No multi-user / role-based access — the account belongs to one Cash App identity, which constrains team operations.

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

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

CASH

Contact

maps to

Twenty CRM

People

1:1
Fully supported

CASH contacts map to Twenty People records. The People object stores name, email, phone, job title, and a link to the company record via companyId. Owner resolution happens by email match against Twenty Workspace Members before records land, and we preserve the original CASH create timestamp and source system ID in custom fields for audit continuity.

CASH

Company

maps to

Twenty CRM

Companies

1:1
Fully supported

CASH companies map to Twenty Companies records. The Companies object stores name, domain/website, industry, employee count, and address fields. Parent‑child company hierarchies in CASH translate via a custom field pointing to the parent company record in Twenty, and we preserve the original CASH create timestamp and source system ID for audit continuity.

CASH

Deal

maps to

Twenty CRM

Opportunities

1:1
Fully supported

CASH deals map to Twenty Opportunities records. Opportunities track deal name, amount, expected close date, and stage via a custom select field that mirrors CASH pipeline stage values. The opportunity is linked to a Company and optionally to a Person.

CASH

Custom Property

maps to

Twenty CRM

Custom Field

1:1
Fully supported

CASH custom properties require pre-creation in Twenty's Settings → Data Model before migration. We add each CASH custom property as a Twenty custom field (text, number, select, or multi-select) with the same data type and options. This is the longest planning step for heavily customized CASH workspaces.

CASH

Activity (Call/Email/Meeting)

maps to

Twenty CRM

Notes / Tasks

1:1
Fully supported

CASH engagement logs (calls, emails, meetings) map to Twenty Notes and Tasks. We attach notes with the activity body and timestamp; tasks capture the action item with due date and assignee. Original timestamps and creator email are preserved in custom fields for audit continuity.

CASH

File Attachment

maps to

Twenty CRM

Attachments

1:1
Fully supported

CASH file attachments on records re‑upload to Twenty as attachments on the relevant People, Company, or Opportunity record. We preserve the original file name and upload timestamp in custom fields, and we surface any attachments exceeding Twenty's 25 MB default limit for manual handling, logging failures for review.

CASH

Owner

maps to

Twenty CRM

Workspace Member

1:1
Fully supported

CASH owner IDs are resolved by email match against Twenty Workspace Members. We flag unmatched owners before migration so your team can invite them to Twenty first, and we store the original CASH owner ID in a custom field for audit traceability. Orphaned owners receive a fallback assignment to a designated admin member.

CASH

Pipeline Stage

maps to

Twenty CRM

Custom Select Field

1:1
Fully supported

CASH deal stage pick‑list values are read from the source and created as Twenty custom select options on the Opportunities object. Each stage name maps value‑by‑value, and we preserve the original CASH stage ID in a custom field for reference. Probability percentages are stored as a separate number field for forecasting continuity.

CASH

Association Label

maps to

Twenty CRM

Custom Field or Note

1:1
Fully supported

CASH allows labeling contact-to-deal associations (Decision Maker, Influencer, etc.). Twenty has no built-in association labeling — we create a custom select field on the Opportunity record and preserve the label value as a reference for your team to assign in Twenty's UI.

CASH

Lead Status

maps to

Twenty CRM

Custom Select Field

1:1
Fully supported

If CASH uses separate lead and contact objects, the lead status pick‑list maps to a Twenty custom select field on the People record. We also map lead source and lead score when present, preserving all original timestamps and status transition dates as custom fields for reporting continuity.

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.

CASH logo

CASH gotchas

High

Cash App is a payment app, not a CRM — schema mismatch on import

Medium

Spend caps on the Cash App for Business account

Medium

Unverified business accounts have a $250/day receive limit

Low

No published rate limit on Square Connect API used for Cash App Pay

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

  • Custom fields must exist before import — migration fails silently otherwise

    Twenty CRM requires all custom fields to be pre-created in Settings → Data Model before CSV import or API writes can populate them. If a CASH custom property has no matching Twenty field, that data is skipped during migration. We audit CASH custom properties against Twenty's current schema and deliver a custom field creation checklist before the import runs. This is the longest planning step for heavily customized CASH workspaces — budget 1-3 hours of admin time to create fields per custom property before data lands.

  • Export limit of 20,000 records per operation fragments large migrations

    Twenty CRM's CSV export caps at 20,000 records per export run. CASH workspaces with more than 20,000 contacts, companies, or deals must run multiple exports filtered by criteria (date range, owner, record type). We split the export into tranches and maintain a mapping spreadsheet that records the source file name, row count, and checksum for each slice, so each CSV lands in the correct order and parent‑child relationships resolve. Missed exports or out‑of‑order imports can orphan deal records from their company, and we verify record counts after each tranche to catch any gaps.

  • Workspace Members must exist before import for owner resolution

    Twenty CRM resolves owner and assignee fields by matching email against Workspace Members. If a CASH owner email has no corresponding Twenty user account, the related record lands with no assignee and is invisible in Twenty's activity feeds. We run an owner pre-check against CASH owner list and flag unmatched emails so your team can invite users to Twenty before migration. This step adds 1-2 days to the planning timeline.

  • API rate limit of 100 calls per minute constrains bulk API migration

    Twenty CRM Cloud Pro tier limits API to 100 calls per minute; Organization tier allows 200 calls per minute. For CASH workspaces with 500,000+ records, API-only migration can extend the full run to 5-7 days. We use Twenty's CSV import as the primary path where possible, reserving API calls for relationship resolution and custom field population that CSV cannot handle. If rate limit errors occur during the migration, we implement exponential backoff and resume from the last confirmed record.

Migration approach

Six steps for a successful CASH to Twenty CRM data migration

  1. Audit CASH custom properties and map to Twenty schema

    We pull a complete list of CASH custom properties via API, cross-reference them against Twenty's current Data Model, and deliver an interactive field creation checklist. Every CASH custom property that has no Twenty equivalent is documented with a recommended field type (text, number, select, multi-select, date) and any relevant validation rules. This step determines the scope of pre‑migration admin work, flags any data type mismatches, and sets the pricing tier.

  2. Invite CASH owners as Twenty Workspace Members

    We extract all CASH owner and assignee emails, match them against existing Twenty Workspace Members, and flag unmatched users with a detailed report showing each email and the count of affected records. Your team invites or creates accounts for those users before migration; any remaining unmatched owners can be assigned to a designated fallback admin to avoid orphaned assignments in the final dataset.

  3. Export CASH data in correct dependency order

    CASH exports run in this sequence: (1) Companies, (2) People linked by companyId, (3) Opportunities linked to companies and people, (4) Custom objects with relations last. If CASH supports API access, we use it to pull records in dependency order and bypass the 20,000-record CSV export limit via pagination. For workspaces over 20,000 records, we split exports by date range or owner and maintain a tranche manifest.

  4. Run sample migration with field-level diff

    A representative slice (100-500 records spanning all object types and custom properties) migrates first. We generate a field-level diff comparing CASH source values against Twenty destination values for every mapped field. You verify that CASH custom property values landed correctly in Twenty's custom fields, that owner resolution worked, and that deal amounts and stage values are intact. Sample migration validation gates the full run.

  5. Execute full migration with delta-pickup and rollback

    The full migration runs against Twenty CRM using the validated field mapping, executing records in ordered batches while monitoring API rate limits. A 24‑48 hour delta‑pickup window captures any records modified in CASH during the cutover window so the final state reflects CASH at go‑live. FlitStack audit logs record every record created, updated, or skipped, and each batch commit is logged with a timestamp. If reconciliation fails, one‑click rollback atomically reverts the migration state to the last successful checkpoint.

Platform deep dives

Context on both ends of the pair

CASH logo

CASH

Source

Strengths

  • Familiar consumer UX increases checkout completion vs entering card data.
  • Flat 2.75% fee with no monthly minimum is friendly to low-volume sellers.
  • Integrates with Square's merchant stack for in-person acceptance.
  • Verified business account removes inbound receive caps.
  • Setup is genuinely zero-paperwork compared to traditional merchant accounts.

Weaknesses

  • Not a CRM — minimal contact, no pipeline, no activities timeline.
  • Spend caps ($7,500/day, $17,500/month) constrain larger operational use.
  • 3% fee on credit-card-funded payments hits higher-ticket margins.
  • No multi-user/role-based team access.
  • Square API rate limits are not publicly published — must be discovered via backoff in practice.
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?

Moderate CRM migration. 5 of 8 objects need a manual workaround.

C

Overall complexity

Moderate migration

Derived from compatibility, mapping clarity, API constraints, and data volume across CASH and Twenty CRM.

  • Object compatibility

    F

    5 of 8 objects need a manual workaround.

  • 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

    CASH: Square does not publish fixed rate limits — APIs return rate-limit error codes; exponential backoff is required.

  • Data volume sensitivity

    A

    CASH exposes a bulk API — large-volume migrations stream efficiently.

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most CASH-to-Twenty migrations complete in 48-72 hours of clock time for under 50,000 records, encompassing data extraction, field mapping, sample validation, and the final cutover run. Larger datasets over 500,000 records or workspaces with 50+ custom properties extend to 5-10 days, especially when multi-tranche exports are required. The custom field creation step in Twenty's Settings → Data Model adds 1-3 hours of admin time per custom property and is the longest planning step, so teams should allocate that effort before the migration window opens.

Adjacent paths

Related migrations to explore

Ready when you are

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