CRM migration
Field-level mapping, validation, and rollback between Perfectview and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Perfectview
Source
Twenty CRM
Destination
Compatibility
7 of 10
objects map 1:1 between Perfectview and Twenty CRM.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from PerfectView to Twenty CRM requires a structural data-model transformation, not a flat record copy. PerfectView stores company and contact data inside a single Relation object, while Twenty CRM uses separate Company and Person objects with a direct API-accessible schema. We split every Relation into a Company and one or more Person records during the transform phase, using the role, address-type, and function fields to determine the correct placement. Activity records (calls, emails, meetings, tasks) migrate as Timeline entries against the resolved Person or Company. Documents migrate as file attachments. Workflows, automations, and reminder rules cannot be exported from PerfectView and are documented separately for your admin to rebuild in Twenty's workflow builder. The rebrand of PerfectView to Tribe CRM adds urgency for teams wanting to exit before any forced platform transition.
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 Perfectview 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.
Perfectview
Relation
Twenty CRM
Company + Person (split required)
1:manyPerfectView's Relation object is the primary carrier of both company and contact data. We split each Relation into one Company record (using the organisation name and business address) and one or more Person records (using the individual name, email, phone, and role fields). The split logic examines the Relation type, address type flags, and function fields to determine whether each field belongs in Company or Person. We validate split output against a sample of 50 live records before bulk migration runs. The original Relation ID is preserved in a custom field relation_original_id__c on both output records for cross-reference.
Perfectview
Activities
Twenty CRM
Timeline (Tasks, Events, Notes)
1:1PerfectView Activities (calls, emails, meetings, tasks) map to Twenty's Timeline entries. We resolve the Activity type: calls become Tasks with TaskSubtype=Call, meetings become Events with start and end timestamps, task-type Activities become Tasks, and note-type Activities become Notes. Each Timeline entry is linked to the resolved Person or Company via the standard lookup. ActivityDate is preserved as the original timestamp. Owner resolution uses email-based matching against Twenty workspace members.
Perfectview
Leads
Twenty CRM
Person (with pipeline stage)
1:1PerfectView Lead records (or Relations with Lead lifecycle stage) migrate as Person records in Twenty CRM with a custom pipeline stage field added to capture the original lead status. Lead source, lead score (if stored as a custom field), and owner assignment migrate to equivalent custom fields on Person. If Twenty's workspace-level pipeline is enabled, leads map to the relevant pipeline stage value.
Perfectview
Cases
Twenty CRM
Custom Object (Case) or Opportunity
1:1PerfectView Cases (complaint management and support ticketing) migrate as Twenty custom objects named Case. We create the Case object via Twenty's /metadata API during the schema design phase, including custom fields for status, priority, assignee, and linked Relation. Conversation history migrates as Timeline entries on the Case custom object. If the customer prefers a simpler model, Cases can map to Opportunities with a Case Record Type.
Perfectview
Documents
Twenty CRM
File Attachments (Company / Person)
1:1PerfectView documents migrate as file attachments on the relevant Company or Person record in Twenty. We retrieve documents via the PerfectView API where enabled, falling back to the built-in bulk export function for bulk downloads. Document metadata (filename, upload date, uploader) is preserved as file metadata. Large documents (>10MB) may require chunked upload handling via Twenty's file API.
Perfectview
Quotes
Twenty CRM
Opportunity (with line items)
1:1PerfectView Quotes migrate as Twenty CRM Opportunities with line item data stored as custom fields or a linked OpportunityLineItem-equivalent custom object. We create the custom line item schema during schema design, then import Quote header fields (quote number, total, status, validity date) to the Opportunity and line items to the linked custom object. Quote PDFs migrate as file attachments on the Opportunity.
Perfectview
Invoices
Twenty CRM
Custom Object (Invoice)
lossyPerfectView Invoice records migrate as a custom Invoice object in Twenty CRM, created via /metadata API. Invoice fields (number, date, amount, status, payment terms) map to custom fields on the Invoice object. Invoices are linked to the parent Company record via a lookup. Note that invoice numbers may require renumbering in Twenty because PerfectView uses its own sequential numbering scheme that may conflict with any existing Twenty numbering.
Perfectview
Custom Fields
Twenty CRM
Custom Fields on standard and custom objects
lossyPerfectView custom fields on Relations and standard objects are discovered during the discovery phase by inspecting a sample export. We create equivalent custom fields in Twenty via the /metadata API before migration, handling field type mapping (text to text, date to date, numeric to number). Multi-select values in PerfectView map to multi-select picklist or text fields in Twenty depending on cardinality.
Perfectview
Custom Objects
Twenty CRM
Custom Objects (via /metadata API)
1:1PerfectView custom object schemas are documented during discovery and replicated as custom objects in Twenty CRM using the /metadata API. Each custom object receives its defined fields, lookup relationships, and validation rules. Custom object records migrate after standard objects so that all parent lookups are resolved. The Twenty GitHub issue tracker shows the /metadata endpoint as the correct mechanism for custom object management.
Perfectview
Users / Owners
Twenty CRM
Workspace Members
1:1PerfectView user records and owner assignments migrate as Twenty workspace members. We match PerfectView owners by email against the Twenty workspace. Any owner without a matching workspace member is held in a reconciliation queue for the customer's admin to provision before record import resumes. Owner-to-record links are preserved in the mapping file and reassigned to the matching workspace member.
| Perfectview | Twenty CRM | Compatibility | |
|---|---|---|---|
| Relation | Company + Person (split required)1:many | Fully supported | |
| Activities | Timeline (Tasks, Events, Notes)1:1 | Fully supported | |
| Leads | Person (with pipeline stage)1:1 | Mapping required | |
| Cases | Custom Object (Case) or Opportunity1:1 | Fully supported | |
| Documents | File Attachments (Company / Person)1:1 | Mapping required | |
| Quotes | Opportunity (with line items)1:1 | Fully supported | |
| Invoices | Custom Object (Invoice)lossy | Mapping required | |
| Custom Fields | Custom Fields on standard and custom objectslossy | Mapping required | |
| Custom Objects | Custom Objects (via /metadata API)1:1 | Fully supported | |
| Users / Owners | Workspace Members1: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.
Perfectview gotchas
Relations object conflates Companies and Contacts
Bulk export function caps at 1000 records per operation
Workflows and automations cannot be exported
API rate limits are not publicly documented
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 export strategy
We audit the PerfectView portal for record volumes across Relations, Activities, Cases, Documents, Quotes, and any custom objects. We assess whether the API is available in the account and run a load test to discover actual rate limits. We review the Relation data in a sample export to identify the split criteria used for the Company-Person separation. We also collect screenshots or documentation of all active workflows for the rebuild inventory. The discovery output is a written migration scope, export plan (API or bulk export with chunking), and Relation split validation sample.
Schema design in Twenty CRM
We design the destination schema in Twenty CRM. This includes creating the Case custom object and any invoice or custom objects via Twenty's /metadata GraphQL API, adding custom fields to Person and Company for any PerfectView fields that have no direct equivalent, and setting up pipeline stages if Twenty's pipeline feature is enabled. We deploy schema changes to a Twenty staging workspace before any production data moves. The Relation split rule is formalised as a transform specification during this phase.
Relation split validation
We run the Relation split logic against a 50-record sample of live PerfectView data. The customer's admin reviews the split output and confirms whether Company and Person placement is correct. Any Relation that cannot be unambiguously split is escalated for manual resolution. This step prevents bulk migration errors and is a prerequisite for the production migration. Validation sign-off is required in writing before we proceed.
Sandbox migration and reconciliation
We run a full migration into a Twenty staging workspace using production-like data volume. The customer reconciles record counts, spot-checks 25-50 random records against the PerfectView source, and reviews the Activity timeline on three sample Person records. Any mapping corrections are made before production migration begins. Owner reconciliation happens here: any PerfectView owner without a matching Twenty workspace member is flagged for the admin to provision.
Production migration in dependency order
We run production migration in record-dependency order: workspace members (provisioned, validated), Companies (from Relation split), Persons (from Relation split, linked to Companies), Activities (Tasks, Events, Notes via Twenty REST API), Cases (custom object), Documents (file attachments), Quotes and Invoices (custom objects), then any remaining custom objects with resolved lookups. Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, validation, and workflow rebuild handoff
We freeze writes to PerfectView during cutover, run a final delta migration of any records modified during the migration window, then enable Twenty CRM as the system of record. We deliver the workflow inventory document listing every active PerfectView automation with its trigger, conditions, and recommended Twenty workflow equivalent. We support a one-week hypercare window for reconciliation issues. We do not rebuild PerfectView workflows in Twenty inside the migration scope; that is a separate engagement or an internal admin task.
Platform deep dives
Perfectview
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 5 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 Perfectview and Twenty CRM.
Object compatibility
5 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
Perfectview: Not publicly documented in summary form..
Data volume sensitivity
Perfectview exposes a bulk API — large-volume migrations stream efficiently.
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 Perfectview to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Perfectview 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 Perfectview
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.