CRM migration

Migrate from Mobile Worker to Twenty CRM

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

Mobile Worker logo

Mobile Worker

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

11 of 11

objects map 1:1 between Mobile Worker and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Mobile Worker platforms are purpose-built for field-service operations, tracking workers, assignments, locations, and time punches against a job schema. Twenty CRM is a modern open-source CRM that structures data around People, Companies, Opportunities, Tasks, and custom objects. The migration carries everything Mobile Worker stores natively — worker profiles, client companies, work orders, service tasks, time entries, and custom fields — into Twenty's relational object model. The core challenge is mapping Mobile Worker's job-assignment and dispatch model into Twenty's opportunity-pipeline architecture, preserving field-specific attributes like certification badges and service-area tags in Twenty's custom fields, and translating the worker-employee relationship into Twenty's People object with company associations. We handle the data via Twenty's REST and GraphQL APIs plus CSV import for bulk record creation, with a delta-pickup window capturing any updates made during cutover. Workflows, dispatch rules, and scheduling automations must be rebuilt in Twenty's workflow builder — we export your existing automation definitions as a reference.

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

Mobile Worker logo

Mobile Worker

What's pushing teams away

  • Customers report that the platform's reporting module is limited — custom reports require export to Excel and manual manipulation, which becomes burdensome at scale.
  • The mobile app occasionally desyncs when technicians lose cellular signal, causing time entries and status updates to be lost or duplicated when reconnecting.
  • Users in multi-location service companies say the platform's location management becomes unwieldy when managing more than 20 customer sites from a single account.
  • The platform's customer support response times have been flagged in reviews as inconsistent, with some users waiting multiple days for responses on billing or data issues.

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

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

Mobile Worker

Worker

maps to

Twenty CRM

People

1:1
Fully supported

Mobile Worker worker records map directly to Twenty CRM People. The worker's name, email, phone, and job title become the People record's standard fields. Worker status (active/inactive) migrates as a custom select field since Twenty lacks a native worker-status concept. Original hire date migrates as a custom datetime field for continuity.

Mobile Worker

Worker.employer_id

maps to

Twenty CRM

People.companyId

1:1
Fully supported

Mobile Worker's employer/agency field maps to a People.companyId lookup. If the Mobile Worker deployment stores an agency name as free text, we create a Company record in Twenty first and then link the People record. Multi-employer assignments require a custom relation field in Twenty since the standard schema supports one company per contact.

Mobile Worker

Client / Account

maps to

Twenty CRM

Company

1:1
Fully supported

Mobile Worker client or account records map to Twenty CRM Companies. Company name, address, and industry pick-list values map directly. Client contact names stored on the Mobile Worker client record become People records with a companyId linking back to the Twenty Company.

Mobile Worker

Work Order

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Mobile Worker work orders map to Twenty CRM Opportunities. Work order name becomes Opportunity name; work order value or estimated cost maps to Opportunity amount. The work order's current stage (Dispatched, In Progress, Completed) maps to a Twenty Opportunity stage pick-list — we create stages matching the source terminology. Service category on the work order becomes a custom select field.

Mobile Worker

Work Order Stage

maps to

Twenty CRM

Opportunity.stage

1:1
Fully supported

Each Mobile Worker stage value (e.g., 'Assigned', 'En Route', 'On Site', 'Completed', 'Invoiced') maps to a corresponding Twenty Opportunity stage. Probability weights and forecast categories are re-applied on the Twenty side based on your input. Stage-entry timestamps are preserved as custom datetime fields on the Opportunity record.

Mobile Worker

Task / Assignment

maps to

Twenty CRM

Task

1:1
Fully supported

Mobile Worker tasks and job assignments map to Twenty CRM Tasks. Task title, description, due date, and assignee all translate directly. Completed-at timestamps migrate as a custom datetime field since Twenty's native Task model tracks completion as a boolean. Task status (pending, completed) maps to the Task's status field.

Mobile Worker

Time Entry / Punch

maps to

Twenty CRM

Task + Custom Fields

1:1
Fully supported

Mobile Worker time punches log hours against work orders. We map each time entry to a Task record with custom fields for clock-in time, clock-out time, total hours, and the linked work order. Overtime flags from the source migrate as a custom select. Multiple punches on the same day aggregate into a single Task record per work order per day.

Mobile Worker

Certification Badge

maps to

Twenty CRM

Custom Field on People

1:1
Fully supported

Mobile Worker platforms often store certification badges, license numbers, and skill tags on worker profiles. Twenty has no native equivalent — we create a custom multi-select field (Worker_Certifications__c) on People. Each unique certification from the source becomes a pick-list value so reporting by certification is possible in Twenty.

Mobile Worker

Location / Geo Tag

maps to

Twenty CRM

Custom Field on Company

1:1
Fully supported

Mobile Worker stores service-area tags, coverage zones, or GPS coordinates for workers and clients. These migrate to custom fields on the People (for worker service radius) and Company (for client location) records. If the source stores latitude/longitude, we store as separate custom number fields in Twenty.

Mobile Worker

Attachment / Photo

maps to

Twenty CRM

Note

1:1
Fully supported

Photos and documents attached to work orders in Mobile Worker re-upload as Twenty Notes attached to the corresponding Opportunity record. File size limits from Twenty's storage backend apply. Inline images in notes are downloaded and re-hosted in Twenty's storage. We preserve the original filename and upload timestamp.

Mobile Worker

Custom Object (field-specific)

maps to

Twenty CRM

Custom Object

1:1
Fully supported

If the Mobile Worker deployment uses custom objects (e.g., Equipment, Vehicle, SafetyCheck), these map 1:1 to Twenty CRM custom objects. Custom object names are preserved as-is. Custom object relationships that use N:N associations in Mobile Worker require junction objects in Twenty — we surface this in the migration plan and advise on the appropriate relation type.

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.

Mobile Worker logo

Mobile Worker gotchas

High

Offline mobile app data is not API-accessible

Medium

Custom form schemas vary by Work Order type

Medium

Billing integration tokens may expire mid-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

  • Work-order-to-opportunity stage mapping requires manual stage creation in Twenty

    Mobile Worker stages like 'Dispatched', 'En Route', 'On Site', and 'Completed' are not native Twenty CRM opportunity stages — they must be created as pick-list values in Twenty's Opportunity.stage field before the migration runs. If stages don't exist in Twenty when data lands, the records will fail validation or land with blank stages. We deliver a stage-creation checklist based on the source stage inventory so your Twenty workspace is ready before the first record migrates. This step is the longest pre-migration planning task for field-service migrations.

  • Certification badges and skill tags need custom field creation before import

    Twenty CRM has no native field for worker certifications, license numbers, or skill tags — these attributes that Mobile Worker stores on worker profiles must be defined as custom fields (Worker_Certifications__c as multi-select, license numbers as text) in Twenty before the CSV import runs. If custom fields don't exist, the values are dropped silently. We audit the Mobile Worker field inventory, create the corresponding Twenty custom fields, and validate that pick-list values are populated before import begins. The custom field creation step adds one to two days to the project timeline.

  • Multi-employer worker assignments collapse to a single company link

    Mobile Worker allows a worker to be assigned to multiple employers or agencies simultaneously. Twenty CRM's standard People.companyId field is a single lookup — a People record can link to only one Company. We map the primary (most-recently-assigned) employer to companyId and surface secondary employer assignments as a custom multi-select field (Secondary_Employers__c). If your reporting depends on seeing all employer assignments on one view, a custom object with N:1 relations to People and Company may be needed — we advise on this during the mapping phase.

  • Twenty's API rate limits cap bulk migration throughput on large datasets

    Twenty CRM's Pro plan allows 100 API calls per minute; the Organization plan allows 200 per minute. For migrations exceeding 50,000 records with complex relations, we use a hybrid approach: Twenty's CSV import for bulk record creation plus API calls for relational linking and custom field population. We pace API writes to respect the rate limit and implement retry logic with exponential backoff for 429 responses. This adds 10–20% to migration duration but ensures no records are dropped due to throttling.

  • Dispatch and scheduling automations do not transfer — must be rebuilt in Twenty workflows

    Mobile Worker's assignment rules, auto-dispatch logic, and scheduling constraints are platform-native automations with no export path. Twenty CRM's workflow builder can replicate the logic (e.g., assign task to nearest available worker based on location) but requires manual configuration from scratch. We export a structured description of every Mobile Worker automation as a rebuild reference for your Twenty admin, including trigger conditions and action steps. This work falls outside the data migration scope and should be budgeted separately.

Migration approach

Six steps for a successful Mobile Worker to Twenty CRM data migration

  1. Audit Mobile Worker data inventory and Twenty workspace readiness

    We run a scoped read export against the Mobile Worker instance to inventory all objects, record counts, custom fields, and stage values. Simultaneously, we assess the Twenty workspace — creating the custom fields (Worker_Certifications__c, Service_Category__c, Clock_In__c, etc.) and opportunity stages needed for the migration before any records land. We deliver a pre-flight checklist confirming field parity and blocking the migration if Twenty's schema is not ready.

  2. Map worker and company relationships with owner resolution

    Workers map to People records; clients map to Companies. We resolve Mobile Worker owner or employer fields by email match against Twenty Workspace Members. Any worker or client whose email does not match an existing Twenty user is flagged — your team either creates the user in Twenty first or assigns those records to a fallback owner. Company records must exist before People records that link to them, so we sequence the migration: Companies first, then People, then Opportunities.

  3. Migrate work orders to Opportunities with stage value mapping

    Work orders migrate as Twenty Opportunities using the stage-value map created in step 1. We preserve original work order IDs, service category, assigned worker (via assigneeId), and close date. For each Opportunity we also link the corresponding Company (client) and People (worker-assignee) records created in the prior step. If a work order references a worker not yet migrated, we hold it in a staging queue and process it after the People records are confirmed.

  4. Run a sample migration with field-level diff before full run

    A representative slice of 200–500 records — spanning workers, companies, work orders, and time entries — migrates first. We generate a field-level diff between the Mobile Worker source values and the Twenty destination fields so you can verify certification badge mapping, stage mapping, and owner resolution before the full run commits. Sample validation typically takes one to two days and catches mapping errors before they affect the entire dataset.

  5. Execute full migration with delta-pickup window for in-flight records

    The full dataset migrates against Twenty using the API and CSV hybrid approach, with API writes paced to respect the rate limit. A delta-pickup window (typically 24–48 hours) captures any records created or modified in Mobile Worker during the cutover period. Audit logs record every operation, and a one-click rollback reverts the Twenty workspace to the pre-migration state if reconciliation fails. After rollback validation, the delta records are re-imported and a final count reconciliation confirms record parity with the source.

Platform deep dives

Context on both ends of the pair

Mobile Worker logo

Mobile Worker

Source

Strengths

  • Dispatcher-first scheduling interface with drag-and-drop job reassignment.
  • Native iOS and Android mobile apps for field technicians with offline-capable forms.
  • QuickBooks and Xero accounting sync for basic invoicing and expense tracking.
  • GPS location tracking for technician positions visible to dispatchers.
  • Per-technician pricing model for predictable cost scaling.

Weaknesses

  • Reporting and analytics are basic, requiring external tools for business intelligence needs.
  • No native CRM features for marketing or customer acquisition — strictly operational.
  • Custom form builder has limited logic capabilities compared to dedicated form tools.
  • Mobile app offline mode can cause sync conflicts that require manual resolution.
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. 1 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 Mobile Worker and Twenty CRM.

  • Object compatibility

    B

    1 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

    Mobile Worker: 500 requests per minute per organization.

  • Data volume sensitivity

    A

    Mobile Worker exposes a bulk API — large-volume migrations stream efficiently.

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Mobile Worker to Twenty CRM migrations complete in 48–72 hours of clock time for under 25,000 records. Larger setups with 200,000+ records, heavy certification-badge fields, or multiple service categories extend to 5–10 days. The longest single task is pre-migration: creating the custom opportunity stages and custom fields in Twenty to match the Mobile Worker field inventory. Plan two to three days for schema preparation before data begins moving.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Mobile Worker.
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