CRM migration
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
Source
Twenty CRM
Destination
Compatibility
7 of 10
objects map 1:1 between edge CRM and Twenty CRM.
Complexity
BStandard
Timeline
2-4 weeks
Overview
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.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
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
Twenty CRM
People
1:1edge 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
Twenty CRM
Company
1:1edge 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
Twenty CRM
Opportunity
1:1edge 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
Twenty CRM
Lead or People
1:manyedge 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
Twenty CRM
Opportunity Stage
lossyedge 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
Twenty CRM
Task or Note
1:1edge 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
Twenty CRM
Task
1:1edge 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
Twenty CRM
Custom Field
lossyedge 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
Twenty CRM
People-Company Relation
1:1edge 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
Twenty CRM
Opportunity-People Relation
1:1edge 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.
| edge CRM | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact | People1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Lead | Lead or People1:many | Fully supported | |
| Pipeline Stage | Opportunity Stagelossy | Fully supported | |
| Activity | Task or Note1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Custom Field | Custom Fieldlossy | Fully supported | |
| Company-Contact Association | People-Company Relation1:1 | Fully supported | |
| Deal-Contact Association | Opportunity-People Relation1:1 | Fully supported |
Gotchas + challenges
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 gotchas
No free trial or free version means pre-purchase evaluation is limited
No publicly documented API or export endpoints
Automations and workflows do not survive migration
Twenty CRM gotchas
Import order is enforced and critical
Export limited to 20,000 records and visible columns only
Soft-deleted records count toward uniqueness and trigger restores
API rate limits cap at 200 req/min on Organization tier
No native email sequences — follow-up cadences require external tools
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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.
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.
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
edge CRM
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 3 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across edge CRM and Twenty CRM.
Object compatibility
3 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
edge CRM: Not publicly documented.
Data volume sensitivity
edge CRM doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during edge CRM to Twenty CRM migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave edge CRM
Other ways to arrive at Twenty CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.