CRM migration

Migrate from AddressTwo to Twenty CRM

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

AddressTwo logo

AddressTwo

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

92%

11 of 12

objects map 1:1 between AddressTwo and Twenty CRM.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from AddressTwo to Twenty CRM is a platform upgrade from a flat-rate small-business CRM to a self-hostable open-source alternative built as a modern replacement for Salesforce. AddressTwo stores company information as fields on the Contact record rather than as a separate object; we extract those fields during migration and reconstruct Organizations in Twenty, then resolve the Contact-to-Person lookup relationship. The AddressTwo v2.0 API is not self-service — an approved key must be obtained by emailing support — which determines whether we extract via API or via a support-assisted CSV export. Activity history (calls, emails, tasks) migrates as timeline entries on the corresponding Person record in Twenty. Workflows, automations, and mass-email campaign logic do not migrate as code; we deliver a written inventory of every automation requiring rebuild in Twenty's workflow builder. We do not provide post-migration admin support or training as standard 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

AddressTwo logo

AddressTwo

What's pushing teams away

  • No QuickBooks or accounting integration — at least one long-term user cited this as the reason they finally evaluated alternatives despite years of satisfaction.
  • Basic reporting and dashboard features — multiple reviewers describe difficulty building reports in the web interface, especially after UI refreshes.
  • Duplicate contact detection fails during email sync, causing double records that require manual cleanup — this friction pushed at least one reviewer toward a switch.
  • Scaling concern: the feature set is deliberately simple, so growing teams outpace the platform's capabilities and need more advanced pipeline automation or custom objects.
  • Some users find the web interface harder to navigate after UI updates, preferring the older program layout.

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

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

AddressTwo

Contact

maps to

Twenty CRM

Person

1:1
Fully supported

AddressTwo Contacts map directly to Twenty CRM Persons. Every Contact field (name, email, phone, address, company, tags, custom properties) maps to the corresponding Person field. We run a de-duplication pass before import to catch any duplicate Contact records created by the BCC email sync feature known to generate double entries.

AddressTwo

Company (field on Contact)

maps to

Twenty CRM

Organization

1:many
Fully supported

AddressTwo stores company information as fields on the Contact record rather than as a separate object. We extract the company name, website, and address fields from every Contact, build a distinct Organization record for each unique company name, and resolve the Person-to-Organization lookup relationship at migration time. Contacts without a company name receive no Organization link.

AddressTwo

Deal

maps to

Twenty CRM

Opportunity

1:1
Fully supported

AddressTwo Deals map to Twenty CRM Opportunities. We preserve the deal name, amount, stage, close date, owner assignment, and any associated Contact. Pipeline information from AddressTwo maps to Opportunity stage configuration in Twenty. We flag any pipeline custom field values that lack a direct Twenty stage equivalent for customer review.

AddressTwo

Activity (call)

maps to

Twenty CRM

Activity (event)

1:1
Fully supported

AddressTwo call activities map to Twenty Activities with type = CALL. The timestamp, duration, notes, and owner migrate to the corresponding Person record's activity timeline. We set the activity type to CALL so it renders in the correct timeline section in Twenty's UI.

AddressTwo

Activity (meeting)

maps to

Twenty CRM

Activity (event)

1:1
Fully supported

AddressTwo meeting activities map to Twenty Activities with type = MEETING. Subject, date, location (if present), and notes migrate directly. Owner assignment resolves via the Owner-to-User email mapping table.

AddressTwo

Activity (email)

maps to

Twenty CRM

Activity (event)

1:1
Fully supported

AddressTwo email activities from the BCC-auto-populated thread map to Twenty Activities with type = EMAIL. The subject, body text, and timestamp migrate to the Person's activity timeline. Note that the flattened conversation thread stores as a single activity entry per imported email rather than a threaded view.

AddressTwo

Activity (task)

maps to

Twenty CRM

Activity (task)

1:1
Fully supported

AddressTwo task activities map to Twenty Activities with type = TASK. Status (completed, pending), subject, due date, and notes migrate directly. Open tasks inherit the original due date; completed tasks preserve completion status.

AddressTwo

Note

maps to

Twenty CRM

Comment

1:1
Fully supported

AddressTwo free-text notes attached to a Contact migrate as Comments on the corresponding Person record in Twenty. Note body migrates verbatim as the comment text. Notes are not structured objects so they carry no field-level mapping beyond the text body.

AddressTwo

Tag/Label

maps to

Twenty CRM

Tag

1:1
Fully supported

AddressTwo contact tags migrate as Tags in Twenty CRM. Tags are stored as a flat array on each Person record. The tag names pass through verbatim; no transformation is applied. Tags used for segmentation map to Twenty's tag system with no loss of labeling information.

AddressTwo

Mass Email Campaign Membership

maps to

Twenty CRM

Target (with campaign label)

1:1
Fully supported

AddressTwo campaign membership — which Contacts were sent a given mass email — migrates as a tag on the Person record with the campaign name as the tag value. Campaign-level analytics (open rates, click rates, bounce counts) are not exported from AddressTwo and cannot be migrated; we flag this gap in the delivery report.

AddressTwo

Custom Field (Contact)

maps to

Twenty CRM

Custom Field (Person)

1:1
Fully supported

AddressTwo custom fields on Contacts (such as birthday, spouse, referred_by, lead_source) map to Twenty CRM custom fields on the Person object. We create the custom field in Twenty before migration, match the field type (text, date, number, checkbox), and migrate values directly. Any custom field without a clear Twenty equivalent is flagged for customer review.

AddressTwo

Custom Field (Deal)

maps to

Twenty CRM

Custom Field (Opportunity)

1:1
Fully supported

AddressTwo custom fields on Deals migrate to Twenty CRM custom fields on the Opportunity object. The same field-type matching logic applies. We flag any Deal custom fields that reference AddressTwo-specific objects (such as the QuickBooks invoice reference, which AddressTwo does not natively integrate) for customer review.

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.

AddressTwo logo

AddressTwo gotchas

High

API requires approved key obtained via email to support

High

No self-service data export or bulk download

Medium

Duplicate contact creation during email sync

Low

QuickBooks integration does not exist

Low

No formally documented API rate limits

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

  • AddressTwo API requires approved key via email with no self-service path

    AddressTwo's v2.0 API is not publicly accessible. There is no developer portal, no OAuth flow, and no published sandbox. To obtain an API key, you must email [email protected] and receive manual approval. This means we cannot pre-validate automated extraction scripts before the migration window and timeline depends on their support response speed. We contact AddressTwo support on the customer's behalf during scoping. If the API key is not granted within the migration window, we fall back to a support-assisted CSV export, which may not include the full activity history or custom field data. Teams on a 14-day free trial should note that API access is not guaranteed on trial accounts.

  • No self-service data export; export scope is undefined

    AddressTwo does not publish a self-service data export button in the account settings. Users report that CSV exports are possible but the interface is not obvious and the export scope (contacts only, or including activities and notes) is not documented publicly. We ask customers to log a formal data export request with AddressTwo support before migration kickoff and request the widest available dataset. If the export is limited to contacts only, activity history and notes must be obtained separately or reconstructed from the BCC email thread exports.

  • Company data reconstruction required — no separate Companies object in AddressTwo

    AddressTwo stores company information as fields on the Contact record rather than as a separate object. When migrating to Twenty CRM, which uses a separate Organizations object with Person-to-Organization lookups, we must extract the company name, website, and address fields from each Contact, build a distinct Organization record for each unique company, and link the Person record to the Organization. This is a transformation step that adds mapping complexity and must be validated against the customer's expected Organization count before import.

  • Duplicate contact detection gap causes double records requiring pre-import cleanup

    At least one verified user review documented that AddressTwo's BCC email sync created duplicate contact entries when contacts were synced multiple times, requiring manual deletion and re-entry. We run a fuzzy de-duplication pass on all Contact records before import into Twenty, matching on email address and company name to catch and merge any duplicates that originated from this sync behavior. Without this step, duplicate Person records in Twenty would inflate the dataset and confuse the Organization linkage logic.

  • Self-hosting Twenty adds server and DevOps overhead not present with AddressTwo

    If the customer chooses to self-host Twenty CRM (the open-source option), the migration scope includes no additional items, but the customer's team assumes responsibility for server provisioning (Docker), database management, TLS certificates, software updates, and backups. AddressTwo is a fully managed cloud service with no server requirements. We flag this distinction during scoping so the customer makes an informed deployment choice before migration rather than discovering the operational difference after cutover.

Migration approach

Six steps for a successful AddressTwo to Twenty CRM data migration

  1. Data export and scoping

    We contact AddressTwo support on the customer's behalf to request an API key and a full account data export. We audit the export scope — confirming which objects (Contacts, Deals, Activities, Notes) are included and which custom fields are present — and compare against what we can retrieve programmatically if the API key is granted. We run a row-count reconciliation across all objects and identify any gaps (typically missing activity history or attachments). The scoping output is a written data inventory and a recommendation on extraction method (API or CSV-assisted).

  2. Twenty workspace preparation

    We configure the Twenty CRM destination workspace before any data arrives. This includes creating all required custom fields on Person and Opportunity objects, setting up Organization records if any exist in the initial workspace, configuring Opportunity pipeline stages to match AddressTwo's stage names, and verifying timezone and currency settings. If the customer is self-hosting Twenty, we confirm the self-hosted instance is provisioned and the API endpoint is accessible before migration scripts are written.

  3. Company data extraction and Organization reconstruction

    We extract the company name, website, and address fields from every AddressTwo Contact record and build a deduplicated Organization list. Each unique company name becomes one Organization record in Twenty. We then link each Person record to the corresponding Organization via the Person's companyId field. This step runs as a pre-import transform so that Organization records exist before Person records are loaded, satisfying the foreign key constraint. We validate the Organization count against the customer's expected count and reconcile any Contacts with no company name (which receive no Organization link).

  4. De-duplication pass and data quality

    Before importing Contact records into Twenty, we run a fuzzy de-duplication pass on the exported Contact dataset. We match on email address as the primary key and on company name as a secondary signal to catch any duplicate records that originated from AddressTwo's BCC sync behavior. We also flag Contacts with missing required fields (no email, no name) for customer review and correction before import. This step prevents duplicate Person records from entering Twenty and avoids broken Organization linkages.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Organizations (from the extracted company list), Persons (with OrganizationId resolved), Opportunities (with PersonId and OwnerId resolved), and Activities (as timeline entries on each Person). Custom fields migrate last after the base object schema is validated. Each phase emits a row-count reconciliation report and we run a spot-check of 25-50 records against the AddressTwo source before advancing to the next phase. Owner resolution happens via email mapping; any Owner without a matching Twenty user is held in a reconciliation queue for the customer's admin to provision before record import resumes.

  6. Cutover, delta sync, and delivery handoff

    We freeze AddressTwo writes during the cutover window, run a final delta migration of any records modified during the migration, and verify the row counts match between AddressTwo source and Twenty destination across all objects. We deliver the full migration report including record counts, mapping decisions, any unmapped fields flagged for customer review, and the written automation inventory for the customer's admin to rebuild in Twenty's workflow builder. We support a 48-hour hypercare window for reconciliation issues raised by the customer's team.

Platform deep dives

Context on both ends of the pair

AddressTwo logo

AddressTwo

Source

Strengths

  • Flat-rate pricing at $14.95/month with no per-user fee — the simplest billing model in the small-business CRM category.
  • Perfect customer service score of 5.0/5 across verified reviews, with responsive named support staff.
  • Web-based with real-time multi-user access and no software to install or patch.
  • Built-in mass email and email BCC auto-population eliminates manual contact entry for inbound correspondence.
  • 14-day free trial with no credit card required lowers the barrier to evaluate fit.

Weaknesses

  • No accounting or bookkeeping integration — a documented gap that forces users to maintain a separate financial tool.
  • Limited reporting and dashboard features; multiple long-term users cite difficulty building custom reports.
  • Basic duplicate detection during contact sync causes double records that require manual cleanup.
  • API is not self-service — approved key required via email to support, limiting automated migration options.
  • No formally documented rate limits, bulk endpoints, or self-service data export makes programmatic extraction uncertain without direct engagement.
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. 3 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 AddressTwo and Twenty CRM.

  • Object compatibility

    B

    3 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

    AddressTwo: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most AddressTwo to Twenty CRM migrations land between two and four weeks for accounts with fewer than 5,000 Contacts, 500 Deals, and no complex custom field structures. Migrations requiring API-based extraction (when an approved AddressTwo API key is obtained), multiple custom fields, or extensive Organization reconstruction logic extend to five to eight weeks. The primary timeline variable is how quickly AddressTwo support responds to the API key request and data export request, since neither is self-service.

Adjacent paths

Related migrations to explore

Ready when you are

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