CRM migration

Migrate from iPresso to Twenty CRM

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

iPresso logo

iPresso

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

45%

5 of 11

objects map 1:1 between iPresso and Twenty CRM.

Complexity

CModerate

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from iPresso to Twenty CRM means shifting from a marketing automation and CDP platform into a modern open-source CRM built for sales and customer relationship management. The structural difference is significant: iPresso stores contact records with behavioral event history, campaign interactions, and multi-channel properties (Email, SMS, Web Push, Print) as first-class attributes, while Twenty CRM models People, Companies, Opportunities, Tasks, and Notes with a clean standard object schema. We resolve this by mapping iPresso contact properties and tag memberships to Twenty's custom fields and Topics, preserving lifecycle stages and campaign engagement history as auditable data rather than native workflow triggers. iPresso's absence of public API documentation is the defining constraint of this migration—we handle data extraction through direct vendor coordination or screen-scraping where necessary. Workflows, multi-step automation sequences, landing pages, and email templates do not migrate as reusable assets; we deliver a written inventory of every active automation so your admin can rebuild them in Twenty's workflow system post-migration.

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

iPresso logo

iPresso

What's pushing teams away

  • API documentation is not publicly accessible and migration tooling is limited, making automated data extraction difficult for teams moving to another platform
  • The interface is feature-dense — reviewers note that some functionalities are difficult to locate without training or occasional assistance from iPresso staff
  • Feature development cycles are slower than global competitors, and support for complex multilingual or international campaigns requires custom configuration
  • No published public API schema, rate limits, or documented export endpoints, creating uncertainty for teams evaluating data portability
  • Documentation and community resources are primarily in Polish, presenting a barrier for non-Polish-speaking teams or global rollouts

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

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

iPresso

Contact

maps to

Twenty CRM

People

1:1
Fully supported

iPresso Contact records map to Twenty People. We preserve name fields (firstName, lastName), email address, phone number, and lifecycle stage as a custom field ipresso_lifecycle_stage__c. Behavioral event history and campaign interaction counts migrate as JSON-serialized custom fields or as linked Note records so that historical engagement context is available without cluttering the People record. Channel subscription preferences (Email, SMS, Web Push) migrate to custom checkbox fields in Twenty.

iPresso

Company

maps to

Twenty CRM

Company

1:1
Fully supported

iPresso Company records map directly to Twenty Company. Domain from iPresso's company domain field populates the Company website field and is used as the deduplication key during import. Industry classifications, custom company-level fields, and address data migrate as typed fields or custom fields in Twenty's Data Model. Company is created before People import so that the relationship lookup is satisfied at the moment of People insert.

iPresso

Campaign

maps to

Twenty CRM

Custom Object (Campaign) or Note

1:many
Fully supported

iPresso Campaign records represent marketing initiatives with audience segments, channel assignments, and performance metrics. We map campaign metadata (name, status, start/end dates, channel) to a Twenty Custom Object named Campaign. Audience segment membership is preserved as a tag-like custom field or linked via a Custom Object relationship. Performance metrics (opens, clicks, conversions) migrate as numeric custom fields. If the customer has a large campaign history, we discuss archiving older campaigns versus importing all.

iPresso

Tag

maps to

Twenty CRM

Custom Field (Multi-Select) or Topic

lossy
Fully supported

iPresso contact segmentation tags migrate to Twenty as either a multi-select picklist custom field on People (recommended for under 50 distinct tags) or as Twenty Topics with TopicAssignment records (recommended if tags number in the hundreds and serve content classification purposes). The customer chooses the strategy during scoping. Tag membership history per contact migrates as a comma-delimited or JSON-serialized custom field value.

iPresso

Custom Field (Contact-level)

maps to

Twenty CRM

Custom Field

1:1
Fully supported

iPresso custom contact properties migrate to Twenty custom fields on the People object. We create all custom fields in Twenty Settings → Data Model before importing any records, per Twenty's requirement that fields must exist before CSV import. Field types are mapped: text to text, date to date, number to number, picklist to select. Validation rules from iPresso custom fields require manual reconfiguration in Twenty's Data Model.

iPresso

Custom Field (Company-level)

maps to

Twenty CRM

Custom Field

1:1
Fully supported

iPresso custom company properties migrate to Twenty custom fields on the Company object. Same approach as contact-level custom fields: pre-create in Twenty's Data Model before import, map field types explicitly, and note any picklist values that require translation. Industry-specific iPresso company configurations (Finance, FMCG, Education, Travel verticals) map to custom fields with appropriate data types or to a vertical-specific Custom Object.

iPresso

Industry Solutions

maps to

Twenty CRM

Custom Object

lossy
Fully supported

iPresso Enterprise-tier industry-specific solutions (FMCG, Finance, Education, Travel) are custom-configured objects that exist only on higher iPresso plans. We map each to a corresponding Twenty Custom Object with fields matching the source schema. These require pre-creation in Twenty's Data Model with lookup relationships to Company and People. Not all iPresso industry configurations are directly migratable—some represent workflow logic rather than pure data, and those are documented in the automation inventory rather than imported.

iPresso

Email Template

maps to

Twenty CRM

Note (content) or Custom Object (Template)

1:1
Fully supported

iPresso email templates store HTML content and dynamic personalization tokens. We extract the HTML body and migrate it as a Note record attached to a Template-type Custom Object, preserving the template name and any field reference tokens for manual update in Twenty. Dynamic tokens (contact.firstName, contact.email) require field reference updates because Twenty uses different variable syntax. We do not migrate template rendering logic or A/B test configurations.

iPresso

Channel (Email, SMS, Web Push, Print)

maps to

Twenty CRM

Configuration (rebuild required)

lossy
Fully supported

iPresso channel configurations (sender settings, SMS provider credentials, Web Push credentials) do not export as reusable data because they contain credentials and third-party API keys tied to the iPresso platform. We document the channel configuration settings in the handoff inventory so that the customer's admin can recreate them in Twenty or the appropriate channel provider. Email sending via Twenty uses the configured SMTP or email provider; SMS requires a Twilio or equivalent integration.

iPresso

Workflow

maps to

Twenty CRM

Not migrated (rebuild inventory)

lossy
Fully supported

iPresso multi-step workflow sequences do not migrate. We deliver a written inventory of every active iPresso Workflow documenting its trigger conditions, steps, delays, CRM actions, and channel assignments. The customer uses this inventory to rebuild equivalent logic in Twenty's system. Twenty CRM does not include a native visual workflow builder as of 2026—automations require custom development or a third-party workflow tool integrated via API. This is a significant scope item that the customer should plan for separately.

iPresso

Landing Page

maps to

Twenty CRM

Not migrated (rebuild required)

lossy
Fully supported

iPresso drag-and-drop landing page assets do not export as reusable templates or HTML. We document the page names, URLs, associated campaigns, and form field configurations in the handoff inventory. The customer's admin rebuilds pages in their preferred landing page tool (Twenty does not include native landing page creation). Form field mappings are preserved as structured data so that the new landing page tool can reference the same field names.

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.

iPresso logo

iPresso gotchas

High

No public API documentation or migration tooling

Medium

Workflow dependencies can be silently broken at migration cutover

Medium

SMS channel and advanced features may be gated by plan tier

Low

Pricing is not published, complicating budget planning

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

  • iPresso has no public API documentation or export endpoints

    iPresso does not publish API documentation, rate limits, or export endpoints publicly. There is no self-service path to programmatically extract Contacts, Campaigns, or Workflows. We handle this by coordinating directly with the iPresso team to obtain data dumps or by using screen-scraping methods where necessary. This step adds coordination time and cost to the migration because it depends on iPresso's responsiveness and data export capabilities. We flag this as a high-severity constraint during scoping so the customer understands the migration will not be fully automated.

  • Twenty CRM lacks a native workflow or automation builder

    Twenty CRM does not include a visual workflow builder, automation rules, or sequence management as native features in version 2.0. iPresso workflows that trigger on contact lifecycle changes, tag additions, or campaign events cannot be replicated without custom development or a third-party automation tool integrated via Twenty's REST API. We document every active iPresso workflow and its intended behavior, but the customer must plan for either a custom development effort or a separate automation platform. This is a fundamental capability gap that teams should evaluate before committing to the migration.

  • Twenty CRM is actively developing with reported stability issues

    Twenty CRM launched in 2025 and is in active development with rapid feature releases. Users on the Twenty Discord and GitHub have reported stability issues including timeline display bugs, view configuration breakage after updates, and performance degradation with over 600 lead records. The core team has acknowledged these issues and is prioritizing quality improvements, but teams should expect that Twenty's interface and behavior may change between now and when the migration goes live. We recommend migrating to a specific Twenty version and testing thoroughly before production cutover.

  • iPresso workflow dependencies break silently at cutover

    iPresso workflows reference contacts, tags, channels, and custom fields by internal IDs. When we migrate to Twenty CRM, those IDs change and the workflow logic becomes invalid. Because workflows do not migrate, automated sequences will not fire after cutover unless rebuilt. We flag every workflow that requires rebuild and confirm rebuild responsibility with the customer before proceeding. If the customer plans to run iPresso and Twenty in parallel temporarily, workflow logic will produce different results in each system until cutover is complete.

  • iPresso SMS and advanced features may be gated by plan tier

    iPresso Basic and Enterprise editions carry different feature sets. SMS capabilities and advanced automation triggers are not available on all tiers. When migrating out, we identify which contacts and campaigns used gated features so the customer can plan for equivalent functionality in Twenty plus a third-party SMS provider (Twilio, MessageBird, or equivalent). This prevents the surprise of discovering that SMS functionality cannot be replicated in Twenty without additional integration setup.

Migration approach

Six steps for a successful iPresso to Twenty CRM data migration

  1. Discovery and iPresso data extraction coordination

    We audit the iPresso account across edition tier, contact volume, company volume, campaign count, active workflows, custom fields (contact-level and company-level), tag structure, and industry-specific configurations. Because iPresso has no public API, we simultaneously initiate vendor coordination to request data dumps in CSV, JSON, or the vendor's preferred export format. We assess what data is directly extractable, what requires screen-scraping, and what may be unavailable. The discovery output is a written migration scope and a data extraction plan that identifies the constraints and timeline impact of the manual extraction process.

  2. Schema design and Twenty Data Model configuration

    We design the destination schema in Twenty CRM. This includes creating any custom objects needed (Campaign, industry verticals), adding custom fields to People and Company for lifecycle stage, tag memberships, channel subscriptions, and campaign engagement data, and configuring picklist values for any migrated categorical fields. We create all fields in Twenty Settings → Data Model before any import because Twenty requires fields to exist before CSV import. We also invite all team members who will be referenced as record owners before import so that OwnerId lookups are satisfied at migration time.

  3. Data extraction, cleansing, and transformation

    We execute the data extraction plan developed in Step 1, working with the iPresso vendor or using approved data access methods to obtain record exports. We cleanse the extracted data: deduplicating contacts by email address, standardizing phone number formats (E.164), correcting date formats, resolving null values, and identifying records to archive versus migrate (stale contacts with no activity in two or more years are candidates for archiving). We transform the data according to the mapping defined in the schema design step, including serializing behavioral event history and campaign interaction counts into custom field formats compatible with Twenty.

  4. Sandbox migration and reconciliation

    We run a full migration into a Twenty sandbox or staging environment using production-like data volume. The customer's team reconciles record counts (People in, Companies in, tag memberships in), spot-checks 25-50 random records against the iPresso source data, and reviews the custom field values to confirm transformation logic is correct. Any mapping corrections happen here. We also validate that the Twenty workspace is stable at the current version and that no interface changes have affected the migration approach.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Companies first (from iPresso Company records), then People (with CompanyId resolved via domain match), then Custom Objects (Campaign, industry solutions), then custom field data backfills, then tag memberships and topic assignments. Each phase emits a row-count reconciliation report before the next phase begins. Workflows and landing pages are not migrated; they are documented in the automation inventory delivered separately.

  6. Cutover, validation, and automation rebuild handoff

    We freeze iPresso writes during cutover, run a final delta migration of any records modified during the migration window, then designate Twenty as the system of record. We deliver the workflow and automation inventory document to the customer's admin team, covering every iPresso workflow with its trigger, conditions, steps, and recommended rebuild approach. We support a one-week hypercare window where we resolve reconciliation issues raised by the team. We do not rebuild iPresso workflows as Twenty automations inside the migration scope; that requires custom development or a separate automation platform evaluation.

Platform deep dives

Context on both ends of the pair

iPresso logo

iPresso

Source

Strengths

  • Multi-channel communication including SMS, email, web push, and print in a unified platform
  • Continuous product development driven by direct customer feature requests
  • Drag-and-drop workflow builder for multi-step marketing automation sequences
  • Strong Polish-language support and documentation for Central European teams
  • Industry-specific solutions for finance, automotive, retail, FMCG, and travel sectors

Weaknesses

  • No publicly documented API schema or migration/export tooling
  • Published pricing tiers are not accessible on the website, requiring sales contact
  • Documentation and community resources are primarily in Polish
  • Feature set can be overwhelming for small teams without dedicated marketing ops resources
  • Limited international third-party integration ecosystem compared to global competitors
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. 4 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 iPresso and Twenty CRM.

  • Object compatibility

    C

    4 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

    iPresso: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your iPresso 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 four and six weeks for accounts under 15,000 Contacts and 3,000 Companies with no Enterprise-tier industry-specific configurations and straightforward tag structures. Migrations with industry solutions (FMCG, Finance, Education, Travel), large campaign engagement histories, complex multi-channel contact properties, or vendor coordination delays for iPresso data extraction move to eight to twelve weeks. The primary timeline variable is how quickly iPresso can provide data exports and how many custom objects require schema design in Twenty.

Adjacent paths

Related migrations to explore

Ready when you are

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