CRM migration

Migrate from edge CRM to Twenty CRM

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

edge CRM logo

edge CRM

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

70%

7 of 10

objects map 1:1 between edge CRM and Twenty CRM.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from edge CRM to Twenty CRM is an SMB-to-open-source transition that trades a closed platform with no public API for a self-hosted, developer-first CRM with full data ownership. edge CRM provides no documented export endpoint, so the first migration step is confirming whether the platform offers a UI-based CSV export or requires a direct support request to edge CRM's team. Once export is confirmed, we extract Contacts, Companies, Deals, Leads, and Activities in dependency order, then map them to Twenty's Company, People, Opportunity, and Task objects. Twenty requires all custom fields to exist before CSV import begins, so we pre-create the schema in Settings → Data Model before any data loads. Owner lookups in Twenty require Users to be invited and accepted before migration, so we reconcile HubSpot owner emails against Twenty Members before record import. Views, workflows, and permission sets do not migrate; we deliver a written inventory for the customer's team to rebuild in Twenty's workflow builder.

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

edge CRM logo

edge CRM

What's pushing teams away

  • No free tier or free trial limits pre-purchase evaluation — teams must commit before testing whether the feature set fits their workflow.
  • No publicly documented API or export endpoint means customers rely entirely on edge CRM's built-in data tools to extract data, limiting migration flexibility.
  • Small review volume (33 verified reviews on Software Advice, 27 on G2) makes it harder to find peer evidence on long-term reliability and support quality at scale.
  • OCR for visiting card capture needs improvement according to at least one long-term user, suggesting some AI features feel underbaked relative to marketing claims.
  • Limited industry-specific vertical depth compared to purpose-built CRMs for legal, medical, or field-service use cases.

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

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

edge CRM

Contact

maps to

Twenty CRM

People

1:1
Fully supported

edge CRM Contacts map to Twenty People. The edge CRM contact's email becomes the People email field (used as dedupe key), name splits to firstName and lastName, and any phone, address, or custom field values map to their Twenty equivalents. We resolve edge CRM's company association to a Twenty Company record by domain match before Contact import so that the workspaceId relation is satisfied at insert time.

edge CRM

Company

maps to

Twenty CRM

Company

1:1
Fully supported

edge CRM Company records map directly to Twenty Company. The company domain becomes the Company domain field, which Twenty uses for link previews and reverse contact lookup. Company is imported first in the sequence so that People records can reference a valid Company workspaceId on insert rather than arriving as orphaned contacts without an account linkage.

edge CRM

Deal

maps to

Twenty CRM

Opportunity

1:1
Fully supported

edge CRM Deals map to Twenty Opportunity. The deal name becomes Opportunity name, deal amount maps to Opportunity amount, and the close date maps to Opportunity closeDate. The edge CRM deal stage maps to a Twenty Opportunity stage, which must be pre-created in Settings → Data Model with a matching stage name before Deal import begins. The deal owner maps to a Twenty User by email lookup.

edge CRM

Lead

maps to

Twenty CRM

Lead or People

1:many
Fully supported

edge CRM supports a separate Lead object distinct from Contacts, typically enriched with AI-scored qualification data. If the customer uses edge CRM's Lead object as a distinct stage before Contact conversion, we map Leads to Twenty's Lead object. If the customer's edge CRM uses Leads interchangeably with Contacts (common in SMB workflows), we consolidate them into Twenty People. The split rule is defined during scoping based on whether edge CRM's Lead records have distinct fields or lifecycle stages not present on Contacts.

edge CRM

Pipeline Stage

maps to

Twenty CRM

Opportunity Stage

lossy
Fully supported

edge CRM allows custom stage names and ordering per pipeline. We extract the full stage list including custom names, sequence order, and probability weights, then configure matching Opportunity stages in Twenty's Settings → Data Model before Deal migration. Each stage must exist in Twenty before Deals referencing that stage are imported via CSV.

edge CRM

Activity

maps to

Twenty CRM

Task or Note

1:1
Fully supported

edge CRM Activities (calls, emails, meetings, notes) map to Twenty Task or Note records. Calls and tasks become Task with the activity type stored as a custom field. Meeting metadata (date, duration, attendees) stores in Task fields or as a Note with the meeting summary body. Emails become Note records with the email body and metadata. Each activity inherits the link to the related People, Company, or Opportunity record via Twenty's workspaceId and activityTargetIds.

edge CRM

Task

maps to

Twenty CRM

Task

1:1
Fully supported

edge CRM follow-up Tasks map directly to Twenty Task. Completed and open tasks both transfer. Due date maps to dueAt, completion status maps to Task status (completed/open/overdue), and task body migrates as the Task description. Assignee resolves by email match to a Twenty User record.

edge CRM

Custom Field

maps to

Twenty CRM

Custom Field

lossy
Fully supported

edge CRM allows teams to define custom properties on Contacts, Companies, Deals, and Leads. We extract the full custom field schema from edge CRM, map field types to their closest Twenty equivalent (text, number, date, select, multiselect), and pre-create each field in Twenty Settings → Data Model before any CSV import runs. Twenty's CSV importer creates records, not fields — a critical difference from edge CRM's inline field creation that requires this configuration step to happen first.

edge CRM

Company-Contact Association

maps to

Twenty CRM

People-Company Relation

1:1
Fully supported

edge CRM stores the relationship between Contacts and Companies as a first-class association. We extract every contact-company association and recreate it in Twenty by importing People with their domain-matched Company workspaceId. For edge CRM contacts without a company association, we either attach them to a catch-all Company or import them as unlinked People, depending on the customer's preference during scoping.

edge CRM

Deal-Contact Association

maps to

Twenty CRM

Opportunity-People Relation

1:1
Fully supported

edge CRM links Deals to Contacts as opportunity stakeholders. We preserve these associations by mapping edge CRM deal-contact links to Twenty's opportunityContactRole equivalent or activityTargetIds on the Opportunity record. The association migrates after both the Opportunity and the People records are loaded so that the foreign key resolution succeeds.

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.

edge CRM logo

edge CRM gotchas

Medium

No free trial or free version means pre-purchase evaluation is limited

High

No publicly documented API or export endpoints

Medium

Automations and workflows do not survive migration

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

  • edge CRM export mechanism is unconfirmed

    No publicly documented REST API, webhook, or export endpoint exists for edge CRM in our research. Export may rely on a CSV or Excel download built into the platform's UI, or it may require a support request to edge CRM's team. We treat this as a risk item during scoping: we attempt to locate an export function in edge CRM's settings, and if none exists, we raise a support-request dependency before defining the migration sequence. Migrations that begin without confirming the export pathway risk a full rescope mid-project.

  • Twenty requires custom fields created before CSV import

    Twenty's CSV import creates records, not fields. All custom fields referenced in the import CSV must exist in Twenty Settings → Data Model before any data is loaded. edge CRM allows custom fields to be defined inline during data entry, but Twenty enforces a schema-first approach. We pre-create every edge CRM custom field in Twenty before migration begins. If the customer adds a custom field to edge CRM mid-migration, it must also be added to Twenty before that field's data can import.

  • Twenty owner lookups require invited Users before import

    Twenty uses a workspaceId and activityTargetIds model for owner and contact lookups. If the migration CSV references a User (as Deal owner or Task assignee) who does not yet exist in Twenty, the relation silently fails and the record imports without an owner assignment. We reconcile every edge CRM owner email against Twenty Members before migration, and the customer's admin invites all relevant users to Twenty before we begin record import. This is a hard dependency documented in Twenty's own migration guide.

  • Automations and workflows do not migrate

    edge CRM's automation logic (lead assignment rules, follow-up triggers, stage-change alerts, AI-powered scoring) is not publicly documented and does not transfer to Twenty. Twenty's workflow builder is a separate configuration system that the customer's team rebuilds using Twenty's native workflow and automation tools post-migration. We document the customer's current automation logic during the audit phase and provide a written inventory of each automation with its trigger, conditions, and recommended Twenty equivalent.

Migration approach

Six steps for a successful edge CRM to Twenty CRM data migration

  1. Export pathway confirmation

    We locate an export function in edge CRM's UI or raise a support request to edge CRM's team to confirm whether a CSV or Excel export is available. This is the critical path item: migration cannot begin without a confirmed export mechanism. If the export requires a support request, we build a two-week buffer into the timeline to account for response time. We export each object type separately (Companies, People/Contacts, Deals, Leads, Activities, Tasks) in CSV format where available.

  2. Data audit and deduplication

    We audit the exported edge CRM data for duplicates (contacts with duplicate emails, companies with duplicate domains), outdated records (contacts with no activity in 24+ months), and incomplete fields (contacts missing both email and phone). We present the customer with a cleanup recommendation and apply agreed-upon rules before any data transformation begins. CRM migration research consistently shows that migration is the best time for data hygiene because every record is touched.

  3. Twenty workspace preparation and custom field pre-creation

    We configure the Twenty workspace before any import. This includes creating all standard objects (Company, People, Opportunity, Task), pre-creating every edge CRM custom field in Settings → Data Model with the correct field type, setting up Opportunity stages matching the edge CRM pipeline, inviting all team members who will be referenced as owners or assignees, and configuring the Company workspace structure if the customer uses multiple workspaces.

  4. Schema design and field mapping document

    We produce a field-by-field mapping document for each object type, specifying the source edge CRM field name, the target Twenty field name, any format transformations required (date formats, phone number structures, name splits), and notes on any fields that cannot map directly and require customer decision. This document is the reference artifact for the CSV transformation step and is reviewed and signed off by the customer's admin before transformation begins.

  5. CSV transformation and staging migration

    We transform the exported edge CRM CSVs into Twenty-compatible format using the mapping document. This includes splitting full names into firstName and lastName, converting date fields to ISO 8601 format, formatting phone numbers into the three-column structure Twenty requires, resolving company domain associations, and applying the Lead-versus-People split rule where applicable. We run a staging migration into the customer's Twenty workspace to validate record counts and spot-check field mappings before the production migration.

  6. Production migration in dependency order

    We run production migration in record-dependency order: Companies first (no dependencies), then People (with Company workspaceId resolved), then Opportunities (with People and Company lookups resolved), then Tasks and Notes (with People and Opportunity lookups resolved), then Custom Objects last (because they often reference standard objects via lookup). Each phase emits a reconciliation report comparing row counts imported against row counts exported from edge CRM. We hold a cutover freeze window where no new edge CRM records are created during the final delta sync.

  7. Cutover, validation, and workflow rebuild handoff

    We freeze edge CRM writes, run a final delta migration of any records created during the migration window, then designate Twenty as the system of record. We deliver the automation inventory document listing every edge CRM workflow and rule with its trigger, conditions, and a recommended Twenty equivalent. We support a one-week hypercare window to resolve reconciliation issues. We do not rebuild edge CRM automations as Twenty workflows as part of the migration scope; that is a separate configuration engagement.

Platform deep dives

Context on both ends of the pair

edge CRM logo

edge CRM

Source

Strengths

  • Per-user pricing at $11/month keeps cost predictable for small sales teams
  • Simplified UX cited as a direct antidote to CRM complexity failures documented in the industry
  • AI-assisted lead qualification and scoring with automatic profile enrichment
  • Smart PDF builder for proposals and invoices embedded in the deal workflow
  • Encryption in transit and at rest with third-party penetration testing for data security

Weaknesses

  • No free tier or free trial — teams cannot evaluate before committing financially
  • No publicly documented API — export and migration rely on undocumented or unreleased endpoints
  • Small review volume relative to established CRMs makes long-term reliability harder to validate independently
  • Custom object and automation migration is uncharted territory with no published documentation
  • Targeted primarily at SMB — limited enterprise-grade governance, audit trail, or advanced permission controls documented
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. 3 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 edge CRM and Twenty CRM.

  • Object compatibility

    B

    3 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

    edge CRM: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between two and four weeks for accounts under 5,000 Contacts, 2,000 Companies, and 1,000 Deals with no complex custom field schemas and a confirmed export pathway. Migrations with active custom field schemas across multiple object types, large activity histories (over 50,000 activity records), or a dependency on an edge CRM support request for export confirmation move to four to eight weeks. The export confirmation step is the most variable item; if edge CRM's support team does not respond within one to two weeks, the timeline extends accordingly.

Adjacent paths

Related migrations to explore

Ready when you are

Move from edge CRM.
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