CRM migration

Migrate from Pawa to Twenty CRM

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

Pawa logo

Pawa

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

80%

8 of 10

objects map 1:1 between Pawa and Twenty CRM.

Complexity

CModerate

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Pawa to Twenty CRM is a migration from a Quebec-designed offline-first field CRM to a modern open-source platform that runs on a $20/month VPS with unlimited users. Pawa stores customer and business data with an emphasis on reliable offline access, making field data collection work in remote areas, but its limited public API documentation and absence of a documented bulk export endpoint require live API validation during scoping. We enumerate Pawa's available endpoints, map Contacts and Companies with their linked relationships, and move Deals and Pipeline Stages where present. File attachments do not migrate because the Pawa API does not expose them; we list attachment-bearing records so the customer can download and re-upload manually. Tags, custom fields, and user records map to Twenty's standard field equivalents. We do not migrate workflows, sequences, or automations; we deliver a written inventory for the customer's admin to rebuild in Twenty.

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

Pawa logo

Pawa

What's pushing teams away

  • Limited public documentation and API transparency make it difficult for technical teams to evaluate the platform's data export capabilities before committing.
  • The platform appears to be better optimized for Android devices, leading Apple users to feel underserved and to seek alternatives with consistent cross-platform support.
  • Small review volume on G2 (only 2 reviews) makes it hard for prospective buyers to assess long-term reliability and support quality, prompting some to choose more established CRMs.

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

Each row shows how a Pawa 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.

Pawa

Contact

maps to

Twenty CRM

Person

1:1
Fully supported

Pawa Contact records (name, phone, email, custom fields) map directly to Twenty's Person object. Email and phone serve as dedupe keys during import. Custom fields are discovered at scoping time via live API enumeration and mapped to equivalent Twenty field types (text, number, date, picklist) before any records are written. Tags on Pawa Contacts migrate as a label field in Twenty's Person record.

Pawa

Company

maps to

Twenty CRM

Company

1:1
Fully supported

Pawa Company records map to Twenty's Company object. The company name, address, and linked contact relationships are preserved. We resolve the Company-to-Person relationship by exporting Pawa's linked contact IDs alongside Company records, then cross-referencing those IDs to set the primary contact on the Twenty Company record during import.

Pawa

Deal

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Pawa Deal records (value, stage, linked contacts) map to Twenty's Opportunity object. Deal value migrates to the Amount field; stage maps to Twenty's Pipeline Stage with a mapping table applied at import. The linked contact association migrates as the Opportunity's PersonId pointing to the resolved Twenty Person record.

Pawa

Pipeline Stages

maps to

Twenty CRM

Pipeline Stage

lossy
Mapping required

Where Pawa supports deal stages, we map the named stages to Twenty Pipeline Stages, preserving stage order. If Pawa's stage set differs from Twenty's default pipeline, we create a custom pipeline in Twenty and configure the stage values to match Pawa's ordering before migration.

Pawa

Custom Fields

maps to

Twenty CRM

Custom Fields

1:1
Mapping required

Pawa custom fields on Contacts and Companies are discovered via live API at scoping. Each custom field is typed (text, number, date, single-select, multi-select) and mapped to the equivalent Twenty field definition created via Twenty's field management before import. Multi-select fields from Pawa map to Twenty multi-select picklists.

Pawa

User

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

Pawa User records (name, email, role) map to Twenty's WorkspaceMember object. We resolve by email match against the destination Twenty workspace. Inactive Pawa users are flagged and excluded unless the customer requests otherwise. Role mappings are documented for the customer's admin to assign appropriate Twenty permissions post-migration.

Pawa

Tag

maps to

Twenty CRM

Tag / Label Field

lossy
Fully supported

Pawa stores tags as flat string arrays on records. Tags migrate as a text label field on the equivalent Twenty record (Person or Company). If tags represent a taxonomy the customer wants to preserve as a structured filter, we discuss creating a custom picklist field in Twenty rather than a free-text label field during scoping.

Pawa

Attachments

maps to

Twenty CRM

Files (manual re-upload)

1:1
Not supported

Pawa's API does not expose file attachments. We flag every record that carries an attachment, listing the record ID and attachment count so the customer can download files manually before migration and re-upload them to the corresponding Twenty record after import. Attachments are excluded from the migration scope and from record-count-based pricing.

Pawa

Field Records

maps to

Twenty CRM

Custom Object (FieldVisit / Site)

1:1
Fully supported

Pawa's field-record structure is enumerated during API scoping. If field records represent structured data (site visits, equipment inspections, survey data) that cannot map to standard Person, Company, or Opportunity objects, we create a custom object in Twenty via the /metadata API and define the lookup relationships to Person or Company before import.

Pawa

Timestamp / Audit Fields

maps to

Twenty CRM

createdAt / updatedAt

1:1
Fully supported

Pawa record creation and update timestamps migrate to Twenty's createdAt and updatedAt fields. We preserve the original creation date on migrated records so historical ordering is maintained in Twenty's activity and record timelines.

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.

Pawa logo

Pawa gotchas

High

No publicly documented bulk data export endpoint

High

Attachment files are not exposed via API

Medium

Small review sample limits platform reliability assessment

Low

Android preference may affect iOS user experience post-migration

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

  • No publicly documented bulk export endpoint in Pawa

    Pawa does not publish a bulk export or batch API endpoint in its available documentation. We request API credentials during scoping and enumerate available endpoints against a live connection. If a full data export is not accessible via API, we work with the customer to use any available CSV download or report feature and validate the resulting dataset against the live schema before mapping. Manual extraction extends the migration timeline by one to two weeks and may require additional data-cleaning passes to normalize formats.

  • Attachment files are not exposed via Pawa API

    Pawa's API does not expose file attachments in any publicly documented endpoint. We do not migrate attachments. Before migration, we produce a full inventory of attachment-bearing records (record type, record ID, attachment count, file type) so the customer can download files manually and re-upload them to the corresponding Twenty record after the migration. Attachments are excluded from the record count used to scope migration timelines and pricing.

  • Twenty self-hosted update process can cause blank CRM screens

    GitHub issue #14705 documents cases where updating a self-hosted Twenty instance from version 1.3.0 to 1.6.7 resulted in a largely blank CRM despite database migrations completing and the server starting normally. We recommend taking a full snapshot of the Twenty instance before any version update post-migration and scheduling updates during low-activity windows. Cloud-hosted Twenty instances do not have this risk.

  • Pawa's Android preference may have masked iOS data inconsistencies

    G2 reviewers note that Pawa performs better on Android than on Apple devices. Teams with mixed device fleets may have recorded data inconsistently depending on which device type created or edited records. We flag device parity as a pre-migration review item and recommend the customer audit records created or modified on iOS devices for completeness before migration.

Migration approach

Six steps for a successful Pawa to Twenty CRM data migration

  1. Live API scoping and schema discovery

    We connect to the Pawa API using provided credentials and enumerate all available endpoints, field names, and data types against a live connection. Because Pawa has limited public API documentation, this step is required to establish the actual schema before we can build a field map or confirm record counts. We produce a written schema inventory listing every object, field, and relationship we can access. If a bulk export endpoint is not available, we identify manual export alternatives at this stage.

  2. Attachment inventory and data-cleaning review

    We query for all records that carry attachments and produce an inventory report listing the record ID, record type, and attachment count for each. We review field data for duplicates, incomplete records, and inconsistent formatting. We deliver a data-cleaning checklist to the customer before migration begins, with specific instructions for standardizing phone formats, removing duplicate Contacts, and resolving any orphaned Company-to-Contact relationships identified during scoping.

  3. Destination schema creation in Twenty

    We create the destination schema in Twenty. This includes provisioning custom fields (mapped from Pawa's discovered field names and types), custom objects (via Twenty's /metadata API for any field-record data that does not map to standard Person or Company), and pipeline stage values. Schema is created in a staging environment first for validation before any records are written to the production Twenty instance.

  4. Record export and dependency-ordered import

    We export records from Pawa in dependency order: Person records first (standalone, no foreign-key dependencies), then Company records (with primary-contact lookup resolved using previously exported Person IDs), then Opportunities (with PersonId and CompanyId resolved). Tags and custom field values are applied during each record import. We write records using Twenty's API with rate-limit handling and batch chunking for large datasets. Attachment-bearing records are skipped during automated import and flagged on the manual-re-upload list.

  5. Cutover, validation, and manual handoff

    We freeze Pawa writes during a short cutover window, run a delta migration of any records modified since the initial export, and validate record counts in Twenty against the source export. We deliver the attachment inventory and instructions for manual file re-upload. We do not rebuild Pawa workflows or automations in Twenty; we deliver a written inventory of any automation logic discovered in Pawa for the customer's admin to reconstruct using Twenty's workflow tools. We provide a one-week post-migration reconciliation window to resolve any record-level issues raised by the team.

Platform deep dives

Context on both ends of the pair

Pawa logo

Pawa

Source

Strengths

  • Works reliably in low-connectivity and offline environments for field data collection.
  • Cross-device compatibility across Android, tablets, and mobile phones.
  • Straightforward mobile interface suitable for non-technical field users.

Weaknesses

  • Very limited public API documentation and low review volume hinder technical evaluation.
  • Appears to favour Android over iOS, creating an inconsistent experience for mixed-device teams.
  • No publicly documented bulk export mechanism, which complicates large-scale migrations.
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?

Moderate CRM migration. 5 of 8 objects need a mapping; the rest are 1:1.

C

Overall complexity

Moderate migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Pawa and Twenty CRM.

  • Object compatibility

    C

    5 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

    Pawa: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your Pawa to Twenty CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Migrations under 5,000 Contacts, 1,000 Companies, and 500 Deals with standard field mappings land in two to four weeks. Migrations with larger record volumes, complex custom field schemas, multiple linked relationship types, or requiring manual CSV extraction when the bulk export endpoint is unavailable extend to four to eight weeks. The scoping and schema-creation phase adds one to two weeks before the first record moves.

Adjacent paths

Related migrations to explore

Ready when you are

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