CRM migration
Field-level mapping, validation, and rollback between Proton and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Proton
Source
Twenty CRM
Destination
Compatibility
7 of 10
objects map 1:1 between Proton and Twenty CRM.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Proton to Twenty CRM is a transition from a privacy-first communication suite into a full-featured open-source CRM. Proton does not have a native CRM data model — it holds contacts, calendar events, and email metadata — so the migration scope is narrower than a CRM-to-CRM move. We extract Proton Contacts (name, email, phone, address, and custom fields) and map them to Twenty People, map Proton Calendar events to Twenty Tasks and Notes with timestamps preserved, and map Proton Companies (if used) to Twenty Company records. Proton Mail messages are end-to-end encrypted and cannot be extracted server-side; we preserve folder structure and label taxonomy as a reference document. Proton's workspace user accounts map to Twenty Members for owner assignment. Twenty's custom object model, custom fields via GUI, and PostgreSQL-backed schema mean Proton contacts with extended properties can be modeled precisely without a developer. We do not migrate Proton VPN configurations, Proton Pass vault entries, or Proton Drive files as these are infrastructure-specific and outside CRM scope.
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 Proton 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.
Proton
Contact
Twenty CRM
People
1:1Proton Contacts (name, email addresses, phone numbers, physical addresses, and custom fields) map directly to Twenty People. We export contacts in vCard format from Proton Contacts, parse each field (givenName, fn, email, tel, adr, org), and map them to Twenty's name, email, phone, address, and companyName fields. Custom fields on Proton contacts migrate as custom fields on Twenty People, created in Settings → Data Model before import. Multi-value email addresses on a single Proton contact create multiple People records with a shared external ID for relationship reconstruction at the destination.
Proton
Company
Twenty CRM
Company
1:1Proton Contacts with an organization field (org, orgunit, title, role) are extracted as a preliminary Company deduplication pass. Where a Proton contact has no org field but shares a domain with other contacts, we derive a Company record from domain grouping. Twenty Company is created before the related People import so that the companyId lookup is satisfied at insert time. Domain becomes the Company domain field for dedupe.
Proton
Calendar Event
Twenty CRM
Task
1:1Proton Calendar events (title, description, location, start/end time, reminders, attendees, recurrence rules) map to Twenty Task records. We set Task title from the Proton event summary, description from the event body, dueDate from the event start, and status based on completion state. Recurrence rules are documented in a separate recurrence mapping note since Twenty's Task does not have native recurrence — the customer's admin configures a recurring task pattern post-migration if required. Attendees migrate as Task relations to People records where email matches exist.
Proton
Calendar Event
Twenty CRM
Note
1:1Proton Calendar event details with rich description, location, and attachment references migrate to Twenty Note records attached to the parent Task. This preserves event context beyond what the Task title and due date capture. Notes are linked via ContentDocumentLink to the corresponding Task for a complete activity timeline in Twenty.
Proton
Email Address (user account)
Twenty CRM
Member
1:1Proton user accounts within an organization's workspace map to Twenty Members. We extract workspace members (display name, email) and provision them as Twenty users with matching email for SSO or invite routing. Shared mailboxes in Proton (multiple addresses per account) are documented as aliases on the primary member record and as a written alias inventory for the customer's admin to configure in Twenty email settings post-migration.
Proton
Alias / hide-my-email alias
Twenty CRM
Email Alias
1:1Proton Mail supports up to 10 hide-my-email aliases on Mail Plus and unlimited on higher tiers. We extract aliases as separate email address objects and map them to Twenty's email alias configuration on the corresponding People record. Aliases that were used as send-from addresses in Proton contacts become secondary email fields on the related Twenty People record. The customer reviews alias routing post-migration since Twenty does not support true send-as aliases at the same depth as Proton.
Proton
Label / Folder
Twenty CRM
Tag / Custom Field
lossyProton Mail labels (tag-style, color-coded) and folder hierarchy (hierarchical) are preserved as Twenty Tags and as custom select fields on People or Company. We map the full label taxonomy to a tag inventory document for the customer to configure in Twenty Settings → Tags. Folders that represent organizational categories (client, partner, internal) become custom picklist fields on People rather than tags for cleaner filtering in Twenty views.
Proton
Custom Email Domain
Twenty CRM
Domain Configuration
lossyProton Workspace supports up to 15 custom domains on Standard and 20 on Premium. We extract domain configuration (MX, SPF, DKIM, DMARC records) as a DNS verification checklist. The DNS cutover runs as a parallel workstream: Proton continues receiving mail during propagation, and routing rules are updated at the DNS registrar once Twenty domain verification is complete. This prevents mid-migration email loss from premature MX changeover.
Proton
Drive File (reference)
Twenty CRM
Attachment Reference Document
1:1Proton Drive files are end-to-end encrypted binaries stored with Proton's infrastructure. We extract file metadata (filename, path, size, modified date) and create a reference document listing every file that should be re-uploaded to Twenty or a linked storage system. The files themselves cannot be decrypted server-side. We map folder structure as a directory reference so the customer's admin can recreate the folder hierarchy in Twenty's file attachments or a connected storage provider post-migration.
Proton
Shared Link
Twenty CRM
N/A (link invalid at destination)
lossyProton Drive shareable links (with optional password protection and expiration) point to Proton infrastructure and become invalid after migration. We extract link metadata (original URL, access settings, expiration date) as a written inventory for the customer's admin to recreate as Twenty attachments or external links. Links with expiration dates in the past are flagged as already expired and excluded from the inventory.
| Proton | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact | People1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Calendar Event | Task1:1 | Fully supported | |
| Calendar Event | Note1:1 | Fully supported | |
| Email Address (user account) | Member1:1 | Fully supported | |
| Alias / hide-my-email alias | Email Alias1:1 | Fully supported | |
| Label / Folder | Tag / Custom Fieldlossy | Fully supported | |
| Custom Email Domain | Domain Configurationlossy | Fully supported | |
| Drive File (reference) | Attachment Reference Document1:1 | Fully supported | |
| Shared Link | N/A (link invalid at destination)lossy | 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.
Proton gotchas
Storage quota enforcement blocks all write operations at limit
End-to-end encryption keys must be available at extraction time
Mail Professional plan deprecated — no new sign-ups, migration requires plan upgrade
Large mailbox migration via Easy Switch is slow and non-streaming
Custom domain DNS migration requires manual re-verification
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 data inventory
We audit the source Proton account across plan tier, storage usage, contact count, calendar event volume, custom fields on contacts, organization records, aliases, and label taxonomy. We extract a preliminary count to size the migration and identify any storage quota constraints that would block extraction. The discovery output is a written scope document listing all objects to migrate, object counts, deduplication candidates, and any objects outside CRM scope (Drive files, VPN profiles, Pass vault entries) that we document as a separate re-upload checklist.
Twenty workspace provisioning and schema setup
We provision the Twenty workspace (cloud or self-hosted per customer preference) and configure the data model before any data arrives. This includes creating any custom fields on People and Company that map from Proton contact custom fields, configuring Tags to match Proton's label taxonomy, setting up Company records with domain-based dedupe, and inviting all team members who will receive migrated records. Fields must exist in Twenty before CSV import because Twenty's import creates records, not fields.
Contact and company extraction with deduplication
We export Proton Contacts in vCard format, parse all fields (name, emails, phones, addresses, organization, title), and run a deduplication pass on email address as the primary key. Where multiple Proton contacts share the same email, we consolidate to a single Twenty People record and preserve all other email addresses as secondary fields. Organization fields and shared domains generate a Company deduplication pass before People import so that companyId lookups are resolved at insert time.
Calendar event extraction and Task mapping
We export Proton Calendar events via the Proton Calendar API, extracting title, description, location, start/end timestamps, reminders, attendees, and recurrence rules. Each event becomes a Twenty Task with the original timestamps preserved for timeline ordering. Rich event descriptions and attachments migrate as Notes linked to the parent Task. Recurrence rules are documented in a recurrence mapping sheet for the customer's admin to configure in Twenty post-migration.
Parallel DNS cutover and alias routing
Custom email domain DNS migration runs as a parallel workstream to avoid mid-migration email loss. We extract current MX, SPF, DKIM, and DMARC records from the DNS registrar and produce a domain verification checklist for Twenty. Proton continues receiving mail during DNS propagation. Once Twenty verifies the domain, we update MX records at the registrar and enable Twenty as the primary mail handler. Both systems run in parallel during the propagation window, typically 24-72 hours.
Cutover, validation, and handoff
We freeze Proton writes during cutover, run a final delta migration of any records modified during the migration window, then enable Twenty as the system of record. We deliver the Drive file reference inventory, alias routing map, and label-to-tag translation document to the customer's admin team. We support a one-week post-cutover window for record reconciliation. We do not rebuild Proton Drive files, VPN configurations, or Pass vault entries as these are infrastructure-specific and outside CRM migration scope.
Platform deep dives
Proton
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 Proton and Twenty CRM.
Object compatibility
1 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
Proton: Not publicly documented in official documentation.
Data volume sensitivity
Proton 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 Proton to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Proton 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 Proton
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.