CRM migration
Field-level mapping, validation, and rollback between Prophet CRM and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Prophet CRM
Source
Twenty CRM
Destination
Compatibility
7 of 10
objects map 1:1 between Prophet CRM and Twenty CRM.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Prophet CRM to Twenty CRM is a platform-class shift: Prophet runs as an embedded Outlook plugin with OData API pagination and per-department field templates, while Twenty is a self-hosted, open-source web CRM that requires its schema objects and fields to be created before any CSV import. The migration starts with a mandatory custom field audit of every Prophet department template, since Prophet stores different field schemas per department and Twenty requires explicit field provisioning. We freeze Prophet's bidirectional Outlook contact sync before extraction, extract via OData pagination in batches of 500 to 1,000, and pre-create every Twenty object and custom field in the destination workspace before loading records. Activities (calls, emails, meetings, tasks) migrate as Tasks or Notes in Twenty's timeline. Workflows, automation rules, and Prophet's department access control settings do not migrate; we deliver a written inventory for the customer's admin to rebuild inside Twenty's workspace permission model. The self-hosted deployment option means Twenty has no per-user subscription ceiling, which is the primary cost driver for the switch.
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 Prophet 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.
Prophet CRM
Contact
Twenty CRM
People
1:1Prophet Contacts map to Twenty People records. Prophet stores first name, last name, email, phone, address, job title, company association, and custom fields per department template. We extract all fields during the custom field audit phase and create matching custom fields in Twenty's Settings → Data Model before import. The Outlook bidirectional sync is frozen before extraction to prevent duplicate records post-import. Email addresses serve as the dedupe key during Twenty CSV import.
Prophet CRM
Company
Twenty CRM
Company
1:1Prophet Company records map directly to Twenty Company records. Standard fields (company name, industry, address, website, employee count, revenue) export cleanly. Industry classification and employee count ranges from Prophet map to Twenty's industry and employeeCount fields, with format normalization applied where Prophet uses free-text. We pre-create any industry picklist values not present in the default Twenty workspace before import.
Prophet CRM
Opportunity
Twenty CRM
Opportunity
1:1Prophet Opportunities map to Twenty Opportunities with name, value, close date, probability, owner, and pipeline stage. Stage assignments migrate as part of the record. We capture the full Prophet pipeline stage list during scoping and create matching stage values in Twenty's pipeline configuration before migration. Closed-won and closed-lost reasons from Prophet custom fields become Twenty custom fields on Opportunity.
Prophet CRM
Pipeline Stage
Twenty CRM
Opportunity Stage
lossyProphet pipeline stages are configurable per department and vary across organizations. We enumerate the complete stage list during the scoping audit, including stage names, probabilities, and which departments use which pipelines. Each stage maps to a Twenty Opportunity stage value, with probability percentages rounded to Twenty's allowed integer format.
Prophet CRM
Activity (email, call, meeting, task)
Twenty CRM
Task or Note
1:1Prophet Activities include email tracking, tasks, appointments, and call logs linked to Contacts and Opportunities. These map to Twenty Task records (for calls, tasks, and appointments) and Note records (for logged emails and text notes). Activity date and time are preserved in Twenty's ActivityDate field. There is no bulk export endpoint in Prophet, so we extract via OData pagination in batches, preserving the linked Contact and Opportunity references for reconstruction in Twenty.
Prophet CRM
Department
Twenty CRM
Workspace Member role or custom field
lossyProphet departments are first-class objects with custom templates and configurable cross-department access. Twenty's permission model uses Workspace Members with object-level visibility rather than a department hierarchy. We evaluate the customer's department structure during scoping and recommend either a custom department field on each record (if departments represent reporting structures) or Workspace Member-based team segmentation (if departments represent access-controlled silos). The recommendation is documented and implemented as part of the schema pre-build.
Prophet CRM
Custom Field (per object, per department)
Twenty CRM
Custom Field
lossyProphet supports custom fields on Companies, Contacts, and Opportunities with schemas that vary by department template. We conduct a mandatory custom field audit before migration, enumerating all field names, data types, and which departments use which templates. Every distinct custom field is created in Twenty's Settings → Data Model before the corresponding object import begins. Fields must exist in Twenty before the CSV import step; CSV import creates records only, not fields.
Prophet CRM
Attachment
Twenty CRM
Attachment (File)
1:1Prophet stores file attachments on Companies, Contacts, and Opportunities. We extract attachment metadata and file URLs from the OData export and upload files to Twenty's file attachment capability, linking each file to the parent record by resolving the target People, Company, or Opportunity ID in Twenty post-import.
Prophet CRM
Owner
Twenty CRM
Workspace Member
1:1Prophet Owners map to Twenty Workspace Members. We resolve owners by email match. Twenty's migration documentation explicitly requires that users exist in the workspace before importing records with owner references. Any Prophet Owner without a matching Twenty Workspace Member enters a reconciliation queue for the customer's admin to provision the account before record import resumes.
Prophet CRM
Custom Object
Twenty CRM
Custom Object
1:1Prophet's Enterprise tier supports custom objects with department-scoped schemas. Twenty supports custom objects via its /metadata API with GraphQL schema generation. We pre-create the destination custom objects (including all custom fields, field types, and lookup relationships) before any data import. Twenty's schema must be deployed via the Settings → Data Model interface, and all fields must exist before CSV import begins.
| Prophet CRM | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact | People1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Opportunity | Opportunity1:1 | Fully supported | |
| Pipeline Stage | Opportunity Stagelossy | Fully supported | |
| Activity (email, call, meeting, task) | Task or Note1:1 | Fully supported | |
| Department | Workspace Member role or custom fieldlossy | Fully supported | |
| Custom Field (per object, per department) | Custom Fieldlossy | Fully supported | |
| Attachment | Attachment (File)1:1 | Fully supported | |
| Owner | Workspace Member1:1 | Fully supported | |
| Custom Object | Custom Object1: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.
Prophet CRM gotchas
Prophet CRM renamed to Avid CRM mid-lifecycle
No bulk export API in Prophet CRM
Custom field audit required before export scoping
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
Discovery and custom field audit
We audit Prophet CRM across all departments, enumerating every custom field, field type, and which departments use which templates. We capture the full pipeline stage list, owner list, and engagement volume estimates (email, call, meeting, task counts). We also assess the target Twenty deployment environment (self-hosted server, Docker host, managed hosting provider) and verify that Twenty's workspace is accessible for API-based schema provisioning. The discovery output is a written migration scope document with the full field mapping matrix and a Twenty schema pre-build checklist.
Schema pre-build in Twenty
We create every required object and field in Twenty before importing any records. This includes creating custom fields on People, Company, and Opportunity to match the Prophet custom field audit. We configure pipeline stages, stage probabilities, and any picklist values. We invite all Workspace Members referenced as owners and wait for account acceptance before proceeding. This phase is critical: Twenty's CSV import will silently skip any field that does not already exist in the workspace, so schema completeness is verified before data movement begins.
Outlook sync freeze and OData extraction
We freeze Prophet's bidirectional Outlook contact sync before extraction to prevent duplicate records post-import. We then extract data from Prophet via OData API pagination, starting with Companies (parent object), then Contacts (resolved against Company IDs), then Opportunities (resolved against Company and Contact IDs), then Activities. Each object extracts in batches of 500 to 1,000 records with skip/top pagination. We preserve relational links by recording the source Prophet IDs and mapping them to destination Twenty IDs during the load phase.
Data transformation and field mapping
We apply field-level transformations during a staging phase before Twenty import. This includes date format normalization (Prophet datetime to ISO 8601), phone number standardization, industry classification mapping to Twenty's industry picklist, and pipeline stage name mapping to Twenty's stage values. Department template fields from Prophet are consolidated: if the same field appears in multiple department templates under different names, we map to a single Twenty custom field and document the department-level variation in a reconciliation note. Owner email references are resolved against the pre-provisioned Twenty Workspace Members.
CSV import into Twenty and reconciliation
We import records into Twenty in dependency order: Companies first (no foreign key dependencies), then People (with Company lookup resolved), then Opportunities (with Company and People lookups resolved), then Tasks and Notes for engagement history. Each batch is followed by a row-count reconciliation report comparing imported count against extracted count. We spot-check 25 to 50 records per object against the Prophet source for field-level accuracy before marking the object as complete. Attachments are uploaded separately via Twenty's file API and linked to the correct parent record.
Cutover, validation, and workflow inventory handoff
We freeze Prophet writes during the cutover window, run a final delta migration of any records modified during the migration window, then mark Twenty as the system of record. We deliver a written inventory of every Prophet workflow and automation rule with its trigger, conditions, and recommended Twenty rebuild steps, plus a department template reconciliation report documenting any fields that could not be mapped one-to-one. We support a one-week hypercare window for reconciliation issues raised by the customer's team. We do not rebuild Prophet workflows inside Twenty; that is a separate engagement.
Platform deep dives
Prophet 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 Prophet 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
Prophet CRM: Not publicly documented.
Data volume sensitivity
Prophet 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 Prophet CRM to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Prophet 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 Prophet 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.