CRM migration

Migrate from Proton to Twenty CRM

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

Proton logo

Proton

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

70%

7 of 10

objects map 1:1 between Proton and Twenty CRM.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

Proton logo

Proton

What's pushing teams away

  • Speed and performance trade-offs from client-side encryption — every read and search operation requires local decryption, making Proton noticeably slower than Gmail or Outlook, especially on large mailboxes
  • VPN reliability issues reported on macOS — users on Reddit documented that Proton VPN causes complete network loss on Mac after connecting, requiring a restart to recover, suggesting protocol-level incompatibility with some network configurations
  • High-volume migration blocked by storage limits — reaching a plan's storage quota prevents sending, receiving, uploading, or any storage-consuming action, and downgrading requires deactivating addresses or reducing storage before the new plan applies
  • External collaboration friction — while link-sharing works for one-off file delivery, external participants must create a free Proton account for ongoing collaboration, adding a gate that complicates workflows with frequent external contacts
  • Enterprise feature gaps compared to Google Workspace — no native desktop app (requires Proton Bridge for Outlook/Thunderbird), limited third-party integrations, and a smaller ecosystem mean teams with complex automation needs outgrow the platform

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

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

maps to

Twenty CRM

People

1:1
Fully supported

Proton 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

maps to

Twenty CRM

Company

1:1
Fully supported

Proton 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

maps to

Twenty CRM

Task

1:1
Fully supported

Proton 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

maps to

Twenty CRM

Note

1:1
Fully supported

Proton 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)

maps to

Twenty CRM

Member

1:1
Fully supported

Proton 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

maps to

Twenty CRM

Email Alias

1:1
Fully supported

Proton 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

maps to

Twenty CRM

Tag / Custom Field

lossy
Fully supported

Proton 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

maps to

Twenty CRM

Domain Configuration

lossy
Fully supported

Proton 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)

maps to

Twenty CRM

Attachment Reference Document

1:1
Fully supported

Proton 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

maps to

Twenty CRM

N/A (link invalid at destination)

lossy
Fully supported

Proton 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.

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.

Proton logo

Proton gotchas

High

Storage quota enforcement blocks all write operations at limit

High

End-to-end encryption keys must be available at extraction time

Medium

Mail Professional plan deprecated — no new sign-ups, migration requires plan upgrade

Medium

Large mailbox migration via Easy Switch is slow and non-streaming

Medium

Custom domain DNS migration requires manual re-verification

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

  • Proton has no native CRM data model

    Proton is an encrypted email, calendar, and contacts suite — it does not have Deals, Opportunities, Pipelines, or a task management system. The migration scope is limited to People (from Contacts), Company records (from org fields and domain grouping), Tasks and Notes (from Calendar events), and Members (from workspace users). Any CRM-style data the customer was managing inside Proton contacts (pipeline stage, deal value, deal status as custom contact fields) must be explicitly identified during scoping and mapped as custom fields on Twenty People or Company. Migrations that assume CRM parity with Proton will under-deliver on day-one functionality.

  • Proton Drive files cannot be decrypted server-side

    Proton Drive stores files with end-to-end encryption — decryption keys never leave the user's device. We extract file metadata (name, path, size, modified timestamp, share settings) but cannot extract file content without the client's decryption key present during extraction. For migrations involving Proton Drive attachments embedded in contacts or calendar events, we flag each reference and provide a re-upload checklist rather than a binary transfer. Customers with critical Drive files should run a plaintext export through Proton's local Bridge before account closure.

  • Twenty has no native sequence or sales engagement builder

    Reddit and community discussions consistently note that Twenty CRM lacks a built-in sequence or sales engagement cadence tool. A user on r/CRM described needing a manual Call → Wait 2 days → Email → Wait 2 days → Call flow and found no native solution. If the customer was managing outreach sequences inside Proton Contacts using custom fields or labels, Twenty does not offer a native replacement. We document the sequence intent as a written workflow specification for the customer's admin to implement in Twenty's workflow builder or an external sales engagement tool.

  • Storage quota enforcement blocks write operations at limit

    Proton enforces hard storage limits (1 GB Free, 15 GB Mail Plus, 1 TB Workspace Standard) across all Proton services. When a plan's storage quota is exhausted, the account cannot send, receive, upload, or perform any storage-consuming action. During migration scoping we pre-validate the customer's Proton storage footprint against their plan limit. If storage reduction is required before migration, we coordinate cleanup or archiving before initiating transfer to avoid mid-migration quota hits that would halt the job.

  • End-to-end encryption keys must be available at extraction time

    Proton Mail, Drive, Calendar, and Contacts encrypt data client-side with keys that never leave the user's control. If a customer loses their Proton credentials and account recovery fails, encrypted data becomes irrecoverable — Proton itself cannot decrypt it. We require confirmation of key availability and active Proton account access before scheduling any migration. For calendar and contact extraction via Proton's APIs, the account must be fully logged in and the encryption session active.

Migration approach

Six steps for a successful Proton to Twenty CRM data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

Proton logo

Proton

Source

Strengths

  • Largest end-to-end encrypted email service with 100 million accounts as of 2024, providing strong network effects and community trust
  • Swiss jurisdiction and Proton Foundation ownership structure offer legal protection against foreign government data requests
  • Bundled suite pricing undercuts purchasing Proton VPN, Proton Pass, and Proton Drive as separate products
  • 365-day version history on Professional and Premium Drive plans preserves file change history
  • Client-side encryption means Proton servers never hold plaintext user data, eliminating server-side breach risk for email content

Weaknesses

  • Every read, search, and indexing operation requires local decryption, causing measurable performance lag compared to plaintext platforms
  • No native desktop email application — requires Proton Bridge to connect Outlook or Thunderbird, adding setup complexity
  • Migration timelines significantly exceed expectations — Reddit users report Easy Switch taking days or weeks for large mailboxes, not hours
  • Limited third-party ecosystem compared to Google Workspace — fewer integrations, no equivalent to Google Docs collaborative editing natively
  • Support quality degrades at lower tiers — Mail Plus and below offer priority support but no dedicated onboarding or SLA guarantees
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. 1 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 Proton and Twenty CRM.

  • Object compatibility

    B

    1 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

    Proton: Not publicly documented in official documentation.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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 consultation

Most migrations land between two and four weeks for straightforward contact and calendar moves under 10,000 records with no extensive deduplication. Migrations with large calendar histories (over 50,000 events), complex multi-address account structures, extensive deduplication requirements, or parallel DNS cutover move to four to eight weeks. Proton's end-to-end encryption adds no time to the migration itself because we extract contacts and calendar data via API using the customer's active session, not server-side decryption.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Proton.
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