CRM migration

Migrate from Followup CRM to Twenty CRM

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

Followup CRM logo

Followup CRM

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

11 of 11

objects map 1:1 between Followup CRM and Twenty CRM.

Complexity

BStandard

Timeline

24–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Followup CRM and Twenty CRM occupy different positions in the CRM landscape: Followup CRM is a construction-industry-focused system with a vertical data model built around projects, bids, and follow-up sequences tied to sales territory. Twenty CRM is an open-source platform (AGPL-3.0, 44K GitHub stars) with a developer-first architecture that models People, Companies, and Opportunities as standard objects and exposes custom objects via a GraphQL API with 100–200 calls per minute depending on tier. The migration from Followup CRM to Twenty involves several structural transitions: Followup's Projects (with bid tracking and goals) map to Twenty's Opportunities, Followup's custom fields (User, Text, Dropdown types, load-ordered from 11) map to Twenty's custom fields (text, select, multi-select, relation), and Followup's contact associations with companies must respect Twenty's import-order constraint — Companies must exist before People can reference them via companyId. FlitStack AI sequences the migration to handle that dependency, runs a sample migration with field-level diff before committing data, and offers a delta-pickup window so in-flight records modified during cutover are captured. Workflows, quotas, goals, and Owner-level access rules in Followup CRM are not migratable — those must be rebuilt in Twenty's workflow builder or configuration settings.

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

Followup CRM logo

Followup CRM

What's pushing teams away

  • Starting price of ~$4500/yr for 5 users is steep for small contractors and locks teams into annual contracts before validating fit.
  • No publicly documented API or bulk export endpoints makes migration to another platform technically difficult without vendor assistance.
  • Known duplicate follow-up issue in the system frustrates users who rely on clean task queues for sales cadence.
  • Construction-specific feature set does not generalize well; teams outgrowing the niche find limited upgrade paths within 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 Followup CRM objects map to Twenty CRM

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

Followup CRM

Contact

maps to

Twenty CRM

People

1:1
Fully supported

Followup CRM contacts migrate directly to Twenty People records. The primary company association uses Twenty's companyId foreign key, which requires the referenced Company to be imported first. Contacts without a primary company land in Twenty as standalone People records with no companyId.

Followup CRM

Company

maps to

Twenty CRM

Company

1:1
Fully supported

Followup CRM companies map 1:1 to Twenty Companies. Domain-based linking in Followup CRM (for website matching) translates to Twenty's domain unique field for deduplication. Parent-child company hierarchies use Twenty's relation field if supported, or are flattened if the relationship is not expressible.

Followup CRM

Project

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Followup CRM's Projects are the primary deal-tracking entity in a construction-sales context. They migrate to Twenty Opportunities with project-level fields (bid volume, goals, milestones) mapped to custom fields on the Opportunity record. The follow-up task chain associated with each Project migrates as individual Tasks linked to the Opportunity.

Followup CRM

Custom Field (User type)

maps to

Twenty CRM

Relation field (WorkspaceMember)

1:1
Fully supported

Followup CRM User-type custom fields store a reference to another Followup CRM user (e.g., assigned estimator). These migrate as Twenty relation fields pointing to the WorkspaceMember object, resolved by email match — the Twenty user must exist in the workspace before the relation can resolve.

Followup CRM

Custom Field (Dropdown type)

maps to

Twenty CRM

Custom field (select or multi-select)

1:1
Fully supported

Followup CRM Dropdown custom fields carry a defined list of options with description and load order. Each option migrates as a select or multi-select value in Twenty's corresponding custom field. The option order is preserved from Followup's load order values.

Followup CRM

Custom Field (Text type)

maps to

Twenty CRM

Custom field (text)

1:1
Fully supported

Followup CRM Text-type custom fields migrate directly to Twenty text-type custom fields without any transformation. Both the field display names and the underlying string data type carry over exactly as they appear in Followup CRM, preserving any labels, descriptions, or placeholder text associated with each field during the migration.

Followup CRM

Follow-up / Task

maps to

Twenty CRM

Task

1:1
Fully supported

Followup CRM follow-up items (reminders, task sequences tied to projects) map to Twenty Tasks. The original due date, assignee (via User field → WorkspaceMember relation), and completion status are preserved. Open follow-ups migrate as open Tasks; completed ones carry their completed timestamp.

Followup CRM

Goals / Quotas

maps to

Twenty CRM

Custom field / Report

1:1
Fully supported

Followup CRM team goal-setting and quota configuration—including bid volume targets, revenue goals, and per-user allocations—has no equivalent object in Twenty's current data model. These cannot be migrated as data records. FlitStack AI exports the full goal and quota definitions (targets, assignments, and thresholds) as a structured reference document so administrators can reconstruct the equivalent reporting setup using Twenty's custom fields and reporting tools.

Followup CRM

Workflow / Sequence

maps to

Twenty CRM

Workflow (Twenty workflow builder)

1:1
Fully supported

Followup CRM automation sequences—including automated follow-up triggers, stage-transition logic, and action-based rules—do not migrate because they are configuration rather than data records. FlitStack AI exports the complete sequence definitions, documenting each step's trigger conditions, actions, and stage transitions in a structured format that serves as a detailed rebuild checklist for Twenty's workflow builder.

Followup CRM

Attachment / File

maps to

Twenty CRM

File (Twenty native or external storage)

1:1
Fully supported

Files attached to Followup CRM contacts, companies, or projects are downloaded from the source system and re-uploaded to Twenty's native file storage. For self-hosted deployments, files may alternatively be linked externally if the storage architecture supports it. File size limits apply on Twenty Cloud (as defined by your tier), while self-hosted deployments inherit whatever storage constraints the hosting server defines.

Followup CRM

Owner / User

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

Followup CRM users (Owner, Admin, Regular) resolve to Twenty WorkspaceMembers by email address match. Unmatched owners are flagged before migration — either invited to Twenty first or assigned to a fallback WorkspaceMember. Owner-level permissions in Followup CRM (for custom field creation) do not map to any Twenty permission tier.

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.

Followup CRM logo

Followup CRM gotchas

High

No documented API or bulk export endpoint

Medium

Duplicate follow-up artifacts in contact records

Medium

Annual contract pricing creates migration timing pressure

Low

Custom fields require explicit field-level mapping

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

  • Twenty's import-order constraint requires Companies before People before Opportunities

    Twenty enforces a specific import sequence to satisfy foreign-key integrity: Companies must be imported before People (which reference them via companyId), and both must exist before Opportunities can reference them. Followup CRM has no equivalent constraint, so dense contact-to-company datasets with many N:1 associations require a pre-validated import plan before data lands. We generate the sequenced import plan during the sample migration phase and validate the foreign-key chain against Followup CRM's company-contact associations before the full run commits.

  • Followup CRM Dropdown custom fields need value-by-value mapping to Twenty select fields

    Followup CRM Dropdown fields carry a defined set of options with descriptions and load-order values — each option must map to a corresponding Twenty select-field value. If the Followup CRM Dropdown contains an option that has no logical equivalent in Twenty's data model, it becomes a custom select value on the Twenty side. We document the full value map during the field-audit step before migration, so the Twenty schema is pre-populated with the correct select values before records land.

  • Twenty's 20,000-record export ceiling may require chunking for large Followup CRM datasets

    Twenty caps CSV exports at 20,000 records per file, and only visible columns export. Followup CRM datasets with more than 20,000 contacts or companies must be exported in multiple batches — typically split by owner, date range, or company. We assess the record count during the discovery phase and generate a chunking plan using Followup CRM's export filters to ensure no records are missed and no duplicates are created when batches are recombined in Twenty.

  • Followup CRM User-type custom fields depend on owner records existing in Twenty first

    Followup CRM User-type custom fields store a reference to another Followup CRM user (e.g., assigned estimator, project manager). These translate to Twenty relation fields pointing to the WorkspaceMember object. The Twenty WorkspaceMember must be created before the relation can resolve — if the user does not yet exist in Twenty at migration time, the relation is stored as a placeholder and resolved post-migration. We identify all User-field references during the data audit and confirm Twenty user provisioning ahead of the migration run.

  • Goals, quotas, and workflow sequences have no Twenty equivalent and must be rebuilt

    Followup CRM's team goal-setting (bid volume quotas, revenue targets per user) and follow-up sequences (automated task chains tied to project stages) are not data records and cannot be exported as such — they are configuration, not data. Twenty's workflow builder can replicate the logic, but the definitions must be rebuilt manually. We export the Followup CRM workflow and goal definitions as a structured reference document (step-by-step logic, trigger conditions, stage transitions) so your Twenty admin can use it as a rebuild checklist. This is always disclosed upfront; it is not silently skipped.

Migration approach

Six steps for a successful Followup CRM to Twenty CRM data migration

  1. Audit Followup CRM data and schema before planning

    FlitStack AI reads your Followup CRM export — contacts, companies, projects, custom field definitions, and Owner-level configuration. We catalog every custom field (User, Text, Dropdown), map Followup CRM project stages to a provisional Twenty Opportunity stage list, and identify User-type field references that depend on WorkspaceMember resolution. This audit generates the migration plan and a Twenty schema-setup checklist (custom field names, types, and select values to pre-create) before any data moves.

  2. Set up Twenty schema and provision WorkspaceMembers

    Before records can import, Twenty needs its custom fields, select-field value lists, and users in place. We deliver a schema-setup plan: which custom fields to create on People, Company, and Opportunity, what select values to populate for each Dropdown mapping, and which Twenty WorkspaceMembers correspond to Followup CRM users. WorkspaceMembers must be created or invited to Twenty so owner-resolution by email works during the migration run.

  3. Sequence the import: Companies → People → Opportunities → Tasks

    Twenty enforces that Company records exist before People can reference them (via companyId) and that both exist before Opportunities can link to them. We sequence the migration accordingly: Companies first, then People with companyId links, then Opportunities with their linked contacts and amounts, then Tasks tied to records. Custom objects import last. We run this sequence against a sample of 100–500 records first and generate a field-level diff so you can verify the mapping before the full run commits.

  4. Run sample migration with field-level diff

    A representative slice — typically 100–500 records spanning contacts, companies, projects, and tasks — migrates first. We generate a field-level diff between Followup CRM source values and Twenty destination fields for every record in the sample, so you can verify that Dropdown values mapped correctly, User-field relations resolved, companyId links are in place, and timestamps are preserved. No record lands without passing the diff.

  5. Execute full migration with delta-pickup window

    The full migration runs against Twenty once the sample diff is approved. A delta-pickup window (24–48 hours after initial load) captures any records created or modified in Followup CRM during the cutover. An audit log records every operation. One-click rollback is available if reconciliation fails. Your team keeps working in Followup CRM throughout the window — we use scoped read access only, so no records are modified on the source side.

Platform deep dives

Context on both ends of the pair

Followup CRM logo

Followup CRM

Source

Strengths

  • Intuitive drag-and-drop contact and field configuration requiring no developer involvement.
  • Built-in bid volume tracking and quotas aligned with construction sales workflows.
  • Responsive customer support praised across G2 review community.
  • Custom reporting exports from Project Pages including bid-to Excel formats.
  • Goals and team performance tracking features built into the home page dashboard.

Weaknesses

  • No publicly documented API makes programmatic migration difficult without vendor cooperation.
  • Annual contract requirement at ~$4500/yr for 5 users locks in spend before full validation.
  • Known duplicate follow-up bug creates dirty data requiring manual cleanup before migration.
  • Limited integrations beyond Procore make ecosystem connectivity a constraint for some construction firms.
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. 2 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 Followup CRM and Twenty CRM.

  • Object compatibility

    B

    2 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

    Followup CRM: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Followup CRM to Twenty CRM migrations complete within 24–72 hours for datasets under 25,000 records. Larger setups exceeding 100,000 records or those with complex custom field configurations — particularly Dropdown fields with many values or User-type fields tied to many owner references — extend to 5–10 days. The import-order sequencing (Companies before People before Opportunities) and the custom field pre-setup on the Twenty side are the longest planning steps.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Followup CRM.
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