CRM migration

Migrate from WorkBuddy to Twenty CRM

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

WorkBuddy logo

WorkBuddy

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

12 of 12

objects map 1:1 between WorkBuddy and Twenty CRM.

Complexity

BStandard

Timeline

1–3 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

WorkBuddy organizes field-service operations around Jobs, Work Orders, Subcontractors, Assets, and Locations. Twenty CRM models relationships around People, Companies, Opportunities, Notes, and Tasks. The structural mismatch is the central challenge: jobs are work orders, not sales opportunities, so the migration requires explicit architectural decisions before data moves. FlitStack AI sequences the migration so WorkBuddy Jobs become Twenty Opportunities (or a custom work_order object), Subcontractors map to People records with trade-specialty as a custom pick-list, and Work Order locations become address fields on Companies. Original timestamps, assigned team members, and budget amounts carry across; work-order notes become Twenty Notes or Tasks linked to the parent opportunity. WorkBuddy does not export workflow definitions — all automations, approval chains, and trigger rules must be rebuilt inside Twenty's workflow builder using exported WorkBuddy documentation as a rebuild reference. Attachments re-upload to Twenty Files. The migration uses WorkBuddy's CSV export capability combined with Twenty's REST and GraphQL API for large-record imports, with a delta-pickup window capturing any records modified during the cutover window.

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

WorkBuddy logo

WorkBuddy

What's pushing teams away

  • No publicly available pricing on the website—prospects must contact sales for every tier decision, making competitive evaluation and budget planning difficult.
  • Limited documented API surface means customers relying on third-party integrations or custom automation may hit walls when WorkBuddy's native features do not cover their workflow.
  • Smaller trade businesses with fewer than five technicians may find the platform's feature depth unnecessary and the administrative overhead disproportionate to their needs.

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

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

WorkBuddy

Job

maps to

Twenty CRM

Opportunity

1:1
Fully supported

WorkBuddy Jobs are work orders, not sales opportunities. The migration requires an explicit architectural decision: Jobs can become Opportunities (name → Name, budget_amount → Amount, job_status → StageName) or a custom work_order object if the team needs to preserve job-specific fields that don't fit Opportunity semantics. FlitStack surfaces this decision before the migration runs.

WorkBuddy

Work Order

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Each WorkBuddy Work Order maps 1:1 to a Twenty Opportunity. Work Order name → Opportunity.name, scheduled_start → CloseDate (or a custom date field), assigned_technician → OwnerId via email resolution against Twenty workspace members. Work Order status maps to Opportunity stage via value_mapping. Work Order properties that don't map directly become custom fields on the Opportunity.

WorkBuddy

Subcontractor

maps to

Twenty CRM

People

1:1
Fully supported

Subcontractors are people records in Twenty — name → name, email → email, phone → phone, company → companyId (lookup to Company record). Subcontractor trade_specialty becomes a custom pick-list field on the People record. License_number and insurance_expiry migrate as custom text and date fields. Email-matched owners in Twenty receive assignments for migrated Work Orders they were assigned in WorkBuddy.

WorkBuddy

Customer (account on a Work Order)

maps to

Twenty CRM

Company + People

1:1
Fully supported

WorkBuddy customers may exist as Company records (with contact persons) or standalone contact records. The migration creates a Company record for the business and a People record for the primary contact, linking them via the standard companyId relationship. For customers stored as people-only in WorkBuddy, a minimal Company record is created with the person's name as the company name.

WorkBuddy

Asset

maps to

Twenty CRM

Custom Object (Asset)

1:1
Fully supported

Twenty has no native Asset object. FlitStack creates a custom Asset object in Twenty's data model with fields for asset_name, asset_type, location, last_service_date, and a relation to the Company that owns it. Asset-service history maps to Notes or Tasks linked to the Asset record. Custom object creation happens before migration data lands, per Twenty's requirement that fields must exist before CSV import.

WorkBuddy

Location / Service Address

maps to

Twenty CRM

Company (address fields)

1:1
Fully supported

WorkBuddy's service-location data (site name, site address, latitude/longitude) has no native equivalent in Twenty. The migration maps site name to Company.name and site address to Company.address fields. Latitude and longitude become custom number fields on the Company record if precision location tracking is required for the field-service workflow.

WorkBuddy

Work Order Note / Instruction

maps to

Twenty CRM

Note + Task

1:1
Fully supported

Work Order notes and instructions become Twenty Notes attached to the related Opportunity. Long-form instructions that represent actionable follow-up items become Twenty Tasks with the Opportunity as the parent record, assigned to the Work Order's original assigned_technician (resolved via email match to a Twenty workspace member).

WorkBuddy

Safety / Compliance Record

maps to

Twenty CRM

Custom Object (SafetyRecord) or Note

1:1
Fully supported

WorkBuddy safety and compliance data — permits, inspection results, site-risk flags — doesn't fit standard Twenty objects. The migration creates a custom SafetyRecord object with fields for record_type, issue_date, expiry_date, and a relation to the Company or Work Order it belongs to. For simple safety notes, a Note record attached to the Company is the lightweight alternative.

WorkBuddy

Custom Work Order Property

maps to

Twenty CRM

Custom Field on Opportunity

1:1
Fully supported

WorkBuddy allows custom properties per work-order type (e.g., trade_category, site_access_instructions, equipment_serial). Each custom property requires a corresponding custom field on the Opportunity object in Twenty's Settings → Data Model before import. Pick-list values map via value_mapping if the custom property has enumerated options; text fields map directly.

WorkBuddy

Attachment / Document

maps to

Twenty CRM

Twenty Files

1:1
Fully supported

Files attached to WorkBuddy Jobs and Work Orders — photos, permits, contracts, site diagrams — are downloaded and re-uploaded to Twenty Files, associated to the parent Opportunity or Company record. File size limits and format compatibility are validated during the sample migration phase. Inline images in notes are extracted and rehosted as separate file records.

WorkBuddy

Team Member / User

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

WorkBuddy team members are internal staff who may be assigned to Work Orders. They map to Twenty workspace members via email resolution — the WorkBuddy user email is matched against invited Twenty workspace members. Unmatched users are flagged before migration; the team either invites them to Twenty first or assigns their records to a fallback owner.

WorkBuddy

Time Entry / Labor Record

maps to

Twenty CRM

Task or Custom Field

1:1
Fully supported

WorkBuddy time entries tracking labor hours against work orders have no direct equivalent in Twenty's standard model. The migration maps time-entry data to a custom TimeEntry object (if the Professional or Organization tier's custom object quota is available) or as custom number fields on the Opportunity for total_hours and labor_cost. This is preserved for reporting reference even if it doesn't map to a native Twenty workflow.

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.

WorkBuddy logo

WorkBuddy gotchas

High

No publicly documented REST API

Medium

Multi-company accounts split data scopes

Medium

Job status must be resolved before cutover

Low

Custom fields vary by industry template

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

  • Jobs-to-Opportunities mapping requires an explicit architectural decision before migration runs

    WorkBuddy Jobs are work orders — service tickets with assigned technicians, site locations, and safety flags — not sales opportunities. Twenty has no native work-order object. The migration requires choosing between two paths: map Jobs to Opportunities (losing job-specific fields that don't map to opportunity semantics) or create a custom work_order object in Twenty and map all job fields into it. Each path has downstream effects on reporting, workflow triggers, and dashboard building. FlitStack surfaces this decision in the planning phase with a schema proposal so the team commits to a model before data lands.

  • WorkBuddy does not export workflow definitions — all automations must be rebuilt manually in Twenty's workflow builder

    WorkBuddy workflows controlling approval chains, notification triggers, and job-status automation have no documented export mechanism. Twenty's workflow builder (available on Professional and Organization tiers) supports triggers, actions, and background jobs, but it starts empty. The migration delivers an exported WorkBuddy workflow reference document — screenshots, step descriptions, and trigger logic — so the Twenty admin can rebuild each automation. This is manual work that typically takes 1–3 days per complex workflow. The migration itself handles data only; it cannot carry workflow logic across platforms.

  • WorkBuddy has no native CRM data model — custom fields built inside WorkBuddy are not equivalent to CRM custom fields

    WorkBuddy's data model is job-centric, not contact-centric. Custom properties added to WorkBuddy Jobs and Work Orders (trade_category, safety_required, site_access_instructions) exist as work-order attributes, not as CRM-style fields on a contact or account record. When migrating to Twenty, each WorkBuddy custom property requires a corresponding custom field on the Twenty Opportunity object — and Twenty requires these fields to be created in Settings → Data Model before CSV import runs. The migration plan must include a field-creation phase before any data moves.

  • Import sequence is strictly enforced in Twenty — parent records must exist before child records reference them

    Twenty's CSV import requires Companies to exist before People can reference them via companyId, and Opportunities to exist before Notes or Tasks can link to them. WorkBuddy's export order may not follow this sequence — especially if job data and customer data were exported separately. FlitStack re-sequences the migration so Companies import first (subcontractor companies and customer accounts), then People (linked to those companies), then Opportunities (linked to People and Companies), then Notes and Tasks as child records. Violating this sequence produces orphaned records with broken foreign-key references.

  • Service-location data has no native equivalent in Twenty — site addresses require a custom field strategy

    WorkBuddy tracks service-location data including site name, full address, and GPS coordinates (latitude/longitude) on each work order. Twenty has no native service-location object and no separate address field for work-order-level locations — only Company and People address fields. The migration must decide: map site addresses to the related Company record's address (works when each work site is a known customer account) or carry the location as custom text fields (service_address__c, latitude__c, longitude__c) on the Opportunity record itself. The chosen strategy affects every downstream query, map view, and dispatch workflow in Twenty.

Migration approach

Six steps for a successful WorkBuddy to Twenty CRM data migration

  1. Audit WorkBuddy data and define the target Twenty schema

    FlitStack exports a full snapshot of WorkBuddy data across all object types: Jobs, Work Orders, Subcontractors, Customers, Assets, Locations, and any custom properties attached to work orders. We identify all unique field names, pick-list values, and custom property definitions, then produce a schema proposal for Twenty's Settings → Data Model. The proposal lists custom fields to create (with type and pick-list options), custom objects to add (for Asset, SafetyRecord, or TimeEntry), and the agreed Jobs-to-Opportunity mapping strategy. Twenty's admin creates the schema before any import data is prepared.

  2. Resolve owners and team members by email against Twenty workspace members

    WorkBuddy assigned_technician and subcontractor records carry email addresses that must resolve to Twenty workspace members for OwnerId and AssigneeId population. FlitStack matches WorkBuddy user emails against invited Twenty workspace members. Records with unmatched owners are flagged with a fallback assignment (a designated migration owner or a dedicated unassigned queue). No Work Order lands in Twenty without a valid owner assignment — this is validated before the migration run commits.

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

    FlitStack sequences the migration so foreign-key references resolve correctly: Companies import first (customer accounts and subcontractor businesses), then People linked to those companies via companyId (primary contacts and subcontractors), then Opportunities linked to People and Companies (Work Orders and Jobs), then Notes and Tasks as child records attached to their parent Opportunities. Custom objects with their own relationships (Asset linked to Company, SafetyRecord linked to Opportunity) import last. This sequencing matches Twenty's import-order constraint documented in its migration guide.

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

    A representative slice migrates first — typically 200–500 records spanning Work Orders, Subcontractors, Customers, and a few Notes and Tasks. FlitStack generates a field-level diff report showing source values against destination values for every mapped field, including custom fields. The team reviews the diff to verify: job-status to opportunity-stage mapping, custom property translation, owner resolution rates, and service-location field population. No full run commits until the diff report shows acceptable accuracy across all record types.

  5. Execute full migration with delta-pickup window and rollback capability

    The full migration runs against Twenty using the validated field mapping. A delta-pickup window (typically 24–48 hours) captures any Work Orders created or modified in WorkBuddy during the cutover period. FlitStack generates an audit log covering every record created, updated, or skipped during migration. If reconciliation fails — record counts don't match, relationship chains are broken, or data integrity checks surface unexpected values — one-click rollback reverts all migrated records and the team reruns after fixing the root cause.

Platform deep dives

Context on both ends of the pair

WorkBuddy logo

WorkBuddy

Source

Strengths

  • Job management lifecycle from quoting through to invoicing covered in a single platform
  • Real-time field visibility so office staff see job status without calling technicians
  • Mobile apps for iOS and Android enabling offline job lists and timesheet entry
  • Multi-company and multi-trade configuration for business owners running several entities
  • Accounting integrations for Xero, MYOB, and QuickBooks to sync invoicing and financial data

Weaknesses

  • No public pricing—sales contact required for every tier evaluation
  • No publicly documented REST API or developer portal, limiting third-party integrations
  • Feature set depth may overwhelm smaller trade businesses with fewer than five technicians
  • Multi-company setup adds administrative complexity and requires careful scoping per migration
  • Limited G2 and Capterra review volume (4 reviews total) makes competitive assessment difficult
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 WorkBuddy 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

    WorkBuddy: Not publicly documented. We confirm available export channels with WorkBuddy support on a per-customer basis before scoping a migration..

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Under 5,000 total WorkBuddy records with clean data and a straightforward job-to-opportunity mapping typically completes in 1–2 weeks. Complex setups with multiple custom fields per work-order type, custom objects (Asset, SafetyRecord), or intricate subcontractor relationship chains extend to 3–6 weeks. The longest phase is planning and Twenty schema setup — creating custom fields and objects in Settings → Data Model — which consumes 40–60% of total effort regardless of record count. Actual data transfer runs in hours; validation and delta pickup add 2–5 days.

Adjacent paths

Related migrations to explore

Ready when you are

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