CRM migration
Field-level mapping, validation, and rollback between WorkBuddy and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
WorkBuddy
Source
Twenty CRM
Destination
Compatibility
12 of 12
objects map 1:1 between WorkBuddy and Twenty CRM.
Complexity
BStandard
Timeline
1–3 weeks
Overview
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.
Every standard and custom field arrives verified.
AI proposes the map; you confirm before any record moves.
Parent–child, lookups, and ownership stay linked.
Calls, emails, meetings — with original timestamps.
Documents, uploads, and inline notes move with the record.
Why teams make this switch
Leaving
What's pushing teams away
Choosing
What's pulling them in
Object mapping
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
Twenty CRM
Opportunity
1:1WorkBuddy 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
Twenty CRM
Opportunity
1:1Each 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
Twenty CRM
People
1:1Subcontractors 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)
Twenty CRM
Company + People
1:1WorkBuddy 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
Twenty CRM
Custom Object (Asset)
1:1Twenty 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
Twenty CRM
Company (address fields)
1:1WorkBuddy'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
Twenty CRM
Note + Task
1:1Work 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
Twenty CRM
Custom Object (SafetyRecord) or Note
1:1WorkBuddy 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
Twenty CRM
Custom Field on Opportunity
1:1WorkBuddy 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
Twenty CRM
Twenty Files
1:1Files 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
Twenty CRM
WorkspaceMember
1:1WorkBuddy 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
Twenty CRM
Task or Custom Field
1:1WorkBuddy 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.
| WorkBuddy | Twenty CRM | Compatibility | |
|---|---|---|---|
| Job | Opportunity1:1 | Fully supported | |
| Work Order | Opportunity1:1 | Fully supported | |
| Subcontractor | People1:1 | Fully supported | |
| Customer (account on a Work Order) | Company + People1:1 | Fully supported | |
| Asset | Custom Object (Asset)1:1 | Fully supported | |
| Location / Service Address | Company (address fields)1:1 | Fully supported | |
| Work Order Note / Instruction | Note + Task1:1 | Fully supported | |
| Safety / Compliance Record | Custom Object (SafetyRecord) or Note1:1 | Fully supported | |
| Custom Work Order Property | Custom Field on Opportunity1:1 | Fully supported | |
| Attachment / Document | Twenty Files1:1 | Fully supported | |
| Team Member / User | WorkspaceMember1:1 | Fully supported | |
| Time Entry / Labor Record | Task or Custom Field1:1 | Fully supported |
Gotchas + challenges
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 gotchas
No publicly documented REST API
Multi-company accounts split data scopes
Job status must be resolved before cutover
Custom fields vary by industry template
Twenty CRM gotchas
Import order is enforced and critical
Export limited to 20,000 records and visible columns only
Soft-deleted records count toward uniqueness and trigger restores
API rate limits cap at 200 req/min on Organization tier
No native email sequences — follow-up cadences require external tools
Pair-specific challenges
Migration approach
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.
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.
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.
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.
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
WorkBuddy
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across WorkBuddy and Twenty CRM.
Object compatibility
1 of 8 objects need a mapping; the rest are 1:1.
Field mapping clarity
Field mapping is derived from defaults — final spec confirmed during the sample migration.
Timeline complexity
8-object category — typical timelines run 2–7 days end-to-end.
API constraints
WorkBuddy: Not publicly documented. We confirm available export channels with WorkBuddy support on a per-customer basis before scoping a migration..
Data volume sensitivity
WorkBuddy doesn't expose a bulk API — REST + parallelization used for high-volume runs.
Estimator
Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.
Step 1
Pick a category, then your source and destination platforms.
Category
FAQ
Answers to the questions buyers ask most during WorkBuddy to Twenty CRM migration scoping. Not seeing yours? Book a call.
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 consultationAdjacent paths
Other ways to leave WorkBuddy
Other ways to arrive at Twenty CRM
Ready when you are
Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.