CRM migration

Migrate from Dispatch to Twenty CRM

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

Dispatch logo

Dispatch

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

92%

11 of 12

objects map 1:1 between Dispatch and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Dispatch organizes field-service operations around work orders, vehicles, and technician dispatch. Twenty CRM structures data around People, Companies, Opportunities, Tasks, and custom objects. The migration carries Dispatch customers into Twenty People, service locations into Twenty Companies, active work orders into Twenty Opportunities, and scheduled dispatches into Twenty Tasks. Dispatch custom fields (service types, priority levels, vehicle assignments) migrate as custom fields on their respective Twenty objects. Dispatch's real-time scheduling board and automatic preventive-maintenance drops do not have native equivalents in Twenty — those workflows must be rebuilt using Twenty's workflow builder after data lands. FlitStack sequences the migration to resolve foreign keys correctly (Companies first, then People linked by companyId, then Opportunities linked to both) and runs a delta pickup window so any dispatches created during cutover are captured before go-live. Prior to import, we audit the source schema, generate a custom-field creation checklist, and validate pick‑list values against Twenty's data model to prevent import failures. After the bulk load, a field‑level diff report compares source and destination values for every mapped attribute, and a reconciliation step verifies record counts and relationship integrity before final sign‑off.

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

Dispatch logo

Dispatch

What's pushing teams away

  • Software upgrades and major feature changes have caused disruptions to existing workflows, with some users reporting that new versions alter functions they rely on daily.
  • Customers note that Dispatch costs more than they expected given the feature set, particularly when they need capabilities available only in higher tiers.
  • Some users report that Dispatch lacks the depth to function as a true CRM, making it difficult to capture and manage comprehensive customer relationship data over time.
  • The platform does not integrate natively with some third-party tools that businesses already use, leading teams to maintain duplicate records or manual workarounds.

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

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

Dispatch

Customer

maps to

Twenty CRM

People

1:1
Fully supported

Dispatch customers map directly to Twenty People records. Email, phone, name, and address fields transfer 1:1. Each customer must be linked to a Company record (the service location) using the companyId relation field. We also preserve the original customer ID as a custom field for future data reconciliation and delta imports.

Dispatch

Service Location / Address

maps to

Twenty CRM

Companies

1:1
Fully supported

Dispatch stores service addresses on work orders and customer records. These become Twenty Company records with domain (extracted from address if available), name, industry, and address fields. Parent-child location hierarchies in Dispatch map to Twenty's parentCompanyId field, ensuring consistent location hierarchy in Twenty.

Dispatch

Work Order

maps to

Twenty CRM

Opportunities

1:1
Fully supported

Dispatch work orders become Twenty Opportunities. Work order number becomes Opportunity name. Service type, priority, and status map to custom fields on Opportunity. StageName is derived from Dispatch status: 'Scheduled' → 'Prospecting', 'In Progress' → 'Value Proposition', 'Completed' → 'Closed Won', 'Cancelled' → 'Closed Lost'.

Dispatch

Dispatch Schedule / Assignment

maps to

Twenty CRM

Tasks

1:1
Fully supported

Each scheduled dispatch in Dispatch creates a Twenty Task record linked to the corresponding Opportunity (work order) and assigned to the matched technician. Task subject carries the work order number; due date maps from the scheduled date; status reflects Dispatch completion status.

Dispatch

Driver / Technician

maps to

Twenty CRM

People (with custom role field)

many:1
Fully supported

Dispatch technicians are both contacts and system users. They migrate as Twenty People records with a custom pick-list field (Technician_Role__c) set to 'Technician'. Owner/assignment fields on related Opportunities and Tasks reference these People records. Email match resolves to Twenty Workspace Members for Task assignment.

Dispatch

Vehicle (Dispatch Enterprise custom object)

maps to

Twenty CRM

Custom Object: Vehicle

1:1
Fully supported

If Dispatch Enterprise is in use and a custom Vehicle object exists, it maps 1:1 to a Twenty custom object named 'Vehicle'. Fields include make, model, year, license plate, and current technician assignment (relation to People). N:N driver-vehicle assignments use a junction object.

Dispatch

Equipment / Asset (Dispatch Enterprise custom object)

maps to

Twenty CRM

Custom Object: Equipment

1:1
Fully supported

Dispatch equipment or asset records used in preventive-maintenance workflows map to a Twenty custom object. Linked to Company (customer site) and Vehicle if applicable. Service history attached as Notes or Tasks on the Equipment record. We also preserve original equipment IDs and maintenance intervals for reference.

Dispatch

Work Order Notes / Activity Log

maps to

Twenty CRM

Notes and Tasks

1:1
Fully supported

Dispatch work order notes, status-change logs, and technician comments become Twenty Notes attached to the corresponding Opportunity. Timestamps and author names are preserved as Note metadata. High-priority flags migrate as a custom boolean field on the Note, ensuring audit trail continuity for each work order.

Dispatch

Work Order Attachments (photos, signatures, reports)

maps to

Twenty CRM

Files

1:1
Fully supported

Dispatch file attachments on work orders are downloaded and re-uploaded to Twenty as Files linked to the corresponding Opportunity. File size limits depend on Twenty hosting configuration. Inline images in notes are extracted and rehosted as separate attachments. We also log the original file names and checksums for verification.

Dispatch

Preventive Maintenance Schedule (automated in Dispatch)

maps to

Twenty CRM

Workflow (rebuild required)

1:1
Fully supported

Dispatch's automatic PM drops based on service intervals have no native equivalent in Twenty. We export PM configuration (interval, service type, asset) as a reference document. Twenty's workflow builder can recreate trigger logic after migration, including interval type, trigger conditions, and associated assets.

Dispatch

User Permissions / Roles

maps to

Twenty CRM

Workspace Members and Permissions

1:1
Fully supported

Dispatch user roles and permission sets do not map to Twenty's permission groups. We export the role structure as a setup reference. Twenty workspace members must be invited before migration; owner/technician references resolve by email match, ensuring correct access control and reporting visibility in Twenty.

Dispatch

Integrations (third-party connections)

maps to

Twenty CRM

N/A

1:1
Fully supported

Dispatch integrations with GPS tracking, accounting software, or payment processors must be rebuilt separately. We document the connected systems and their purpose so your team can re-establish integrations in Twenty or through middleware, including connection credentials, API endpoints, and data flow descriptions for each integration.

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.

Dispatch logo

Dispatch gotchas

High

API export endpoints gated by Dispatch360 tier

Medium

Work Order history split across open and closed states

Medium

Custom fields require discovery mapping before import

Low

Attachment extraction requires separate file-store access

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

  • Dispatch's preventive-maintenance automation has no native Twenty equivalent

    Dispatch's automatic PM drops trigger work order creation based on service intervals (mileage, time, or equipment usage). Twenty CRM has no built-in preventive-maintenance scheduling engine. We export PM configuration (interval, trigger type, asset, service type) as a structured reference document that your Twenty admin can use to rebuild trigger logic in Twenty's workflow builder. If PM scheduling is a core operational requirement, plan 2–4 weeks for workflow rebuild and testing after data lands in Twenty.

  • Technician/owner resolution requires Twenty workspace members to exist before migration

    Dispatch assigns work orders to drivers and technicians by name. Twenty Tasks require an assigneeId that points to an existing Workspace Member. We match technicians by email — if a Dispatch technician record has no email or the email does not match a Twenty workspace member, their assignments land as unassigned. We flag all unmatched technicians before migration so your team can either invite them to Twenty or choose a fallback assignee. Plan 1–2 days for member invitation and acceptance before migration runs.

  • N:N driver-vehicle assignments need a junction object in Twenty

    Dispatch allows a driver to be assigned to multiple vehicles and a vehicle to have multiple drivers over time. Twenty's relation fields are one-to-many by default. We map N:N driver-vehicle relationships to a custom junction object (Driver_Vehicle_Assignment__c) with fields for driver (People), vehicle (Vehicle), assignment start date, and assignment end date. This preserves the full assignment history rather than a single-current-value snapshot. Your Twenty admin approves the junction schema before data loads.

  • Custom fields must exist in Twenty before CSV import runs

    Twenty's CSV import (accessed via Command Menu → Import records) creates records but not fields. All custom fields referenced in the import — Service_Type__c, Priority__c, Technician_Role__c, and any vehicle-equipment custom fields — must be created in Twenty Settings → Data Model before the migration script runs. We deliver a custom-field creation checklist with API names, field types, and pick-list values so your admin can pre-build the schema. Skipping this step causes import failures for any record using those fields.

  • File attachments require download-reupload cycle

    Dispatch stores work order attachments (photos, signatures, inspection PDFs) in its own cloud storage. Twenty stores files separately. We download all Dispatch attachments, re-upload them to Twenty as Files, and link each file to the corresponding Opportunity record. Large attachments (>25MB) may be limited by Twenty's hosting configuration. We flag oversized files before migration so your team can decide whether to compress, split, or store externally. Additionally, we verify file type compatibility, preserve original upload timestamps as custom metadata on each File record, and log the file migration in the audit report for future reference.

Migration approach

Six steps for a successful Dispatch to Twenty CRM data migration

  1. Audit Dispatch data and design Twenty schema

    FlitStack exports all Dispatch objects (customers, locations, work orders, schedules, technicians, vehicles, and any Enterprise custom objects) as CSV. We audit record counts, identify custom fields, and flag N:N relationships. Based on the audit, we deliver a Twenty schema setup plan: which custom objects to create, which custom fields to add to People, Companies, and Opportunities, and what pick-list values each field needs. Your Twenty admin creates these in Settings → Data Model before migration runs.

  2. Invite and resolve workspace members

    All Dispatch drivers and technicians must have matching Twenty Workspace Members so Task assigneeId fields resolve correctly. We export the technician list, match by email, and flag any Dispatch technician with no matching Twenty member. Your team has 1–2 days to invite missing members and confirm acceptance. Unmatched records receive a configurable fallback assignee (e.g., team lead) or are flagged for manual assignment post-migration.

  3. Migrate companies, people, and opportunities in correct sequence

    Twenty's import order requires parent objects before child lookups. We run the migration in three passes: (1) Companies first using domain and name as unique keys, (2) People second with companyId linking each contact to the correct Company, (3) Opportunities third linking to Companies and assigning stage/status by value mapping. Each pass includes field-level validation — we compare source field values against Twenty pick-list constraints before committing records. Errors surface in a pre-migration report so corrections happen before data loads.

  4. Run sample migration with field-level diff

    A representative slice of 100–500 records migrates first — spanning contacts across multiple companies, work orders in various stages, and a mix of technician assignments. We generate a field-level diff showing source value vs. destination value for every mapped field. You verify that service_type → Service_Type__c pick-list values match, priority → Priority__c mapping is correct, and technician assignments resolve to the expected Twenty members. Approval of the sample unlocks the full migration run.

  5. Execute full migration with delta-pickup window

    Full migration runs against Twenty using the validated field mappings. A delta-pickup window (typically 24–48 hours after the full run starts) captures any Dispatch records created or modified during cutover — new work orders, updated schedules, or newly added customers. FlitStack generates an audit log of every record migrated and every transformation applied. If reconciliation fails, one-click rollback reverts the Twenty workspace to its pre-migration state. After rollback confirmation, the migration re-runs with corrections applied.

Platform deep dives

Context on both ends of the pair

Dispatch logo

Dispatch

Source

Strengths

  • Visual drag-and-drop dispatch board for real-time job scheduling and technician assignment.
  • Automated customer notifications for appointment confirmations, reminders, and technician ETA updates.
  • Integrated asset and equipment tracking linked directly to work orders for field visibility.
  • Real-time technician status updates and GPS-based routing for service dispatch.
  • Tiered pricing from Starter to Enterprise accommodates growing field service businesses.

Weaknesses

  • API access and bulk data export capabilities are tier-gated, making large-scale migrations dependent on the customer's plan level.
  • Customers report that software upgrades occasionally disrupt established workflows and require relearning.
  • Cost increases at higher tiers for advanced features make the platform less competitive for small businesses on a budget.
  • Limited native CRM depth — Dispatch does not function well as a standalone customer relationship management tool.
  • Attachment storage and management on jobs has size and format restrictions that can complicate data export.
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 Dispatch 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

    Dispatch: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Dispatch-to-Twenty migrations complete in 48–72 hours for under 25,000 records. Larger setups with Enterprise custom objects (vehicles, equipment, junction tables for N:N relationships) or 200,000+ records extend to 5–10 days. The longest single step is schema setup — creating custom objects and custom fields in Twenty before import runs. We handle sequencing to resolve foreign keys correctly, but the schema design and Twenty admin creation steps happen before migration clock starts.

Adjacent paths

Related migrations to explore

Ready when you are

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