CRM migration
Field-level mapping, validation, and rollback between Service Toolz and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Service Toolz
Source
Twenty CRM
Destination
Compatibility
12 of 12
objects map 1:1 between Service Toolz and Twenty CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
Service Toolz is a field service management platform centered on work orders, technician dispatch, and service scheduling. Twenty CRM is an open-source CRM built on People, Companies, Opportunities, Notes, and Tasks with a GraphQL API and unlimited custom objects. The migration from Service Toolz to Twenty CRM is a domain-shift migration: Service Toolz's operational constructs (work orders, line items, technician schedules) map into Twenty's CRM primitives (tasks, custom objects, workspace members). We migrate all standard Service Toolz records — contacts, companies, quotes, and work orders — preserving timestamps, owner assignments, and custom fields. Workflows, sequences, and automation rules do not migrate; they must be rebuilt in Twenty's automation engine. Our migration engine uses scoped read access against Service Toolz's API, resolves technician-to-workspace-member mappings by email, and sequences the load so Twenty's relationship constraints (Companies before People, People before Opportunities, Tasks last) resolve correctly. A 24–48 hour delta-pickup window captures in-flight work orders during cutover.
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 Service Toolz 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.
Service Toolz
Contact
Twenty CRM
People
1:1Service Toolz contacts migrate as Twenty People records. Email, phone, address, and job title map directly. The primary company link in Service Toolz becomes the companyId relation in Twenty. Original create timestamps are preserved as a custom datetime field since Twenty's createdAt is set at migration time.
Service Toolz
Company
Twenty CRM
Company
1:1Service Toolz company records migrate as Twenty Companies. Domain, industry, employee count, and annual revenue map to their Twenty equivalents. Parent-company hierarchies in Service Toolz map to Twenty's companyId self-reference. Companies must migrate before People to satisfy Twenty's import-order constraint.
Service Toolz
Quote
Twenty CRM
Opportunity
1:1Service Toolz quotes map to Twenty Opportunities. Quote name becomes Opportunity name. Quote amount maps to amount. Quote status (Draft, Sent, Accepted, Lost) maps to Opportunity stage via value mapping. The linked contact and company from the quote become the Opportunity's personId and companyId relations.
Service Toolz
Work Order
Twenty CRM
Task (customized)
1:1Service Toolz work orders are the most complex migration object. Work order status, priority, scheduled date, and service type become Twenty task fields. The assigned technician email resolves to a Twenty workspace member. Work order line items (parts, labor) require either a custom task description format or a ServiceItems custom object with a relation to the task.
Service Toolz
Work Order Line Item
Twenty CRM
Custom Object (ServiceItem)
1:1Service Toolz line items attached to work orders (part number, quantity, unit price, labor hours) do not map to any native Twenty field. We create a ServiceItem custom object with fields for itemType, partNumber, quantity, unitPrice, and laborHours, then create a one-to-many relation from the target Task to ServiceItem records.
Service Toolz
Technician
Twenty CRM
WorkspaceMember
1:1Service Toolz technician records contain name, email, phone, certifications, and availability status. These map to Twenty workspace members: name and email are required, phone migrates as a custom field, certifications migrate as a text array or multi-select custom field. Availability status has no direct Twenty equivalent — it's preserved as a custom field for reference.
Service Toolz
Inventory Item
Twenty CRM
Custom Object (InventoryItem)
1:1Service Toolz inventory (part numbers, stock levels, reorder points, bin locations) has no equivalent in Twenty's standard objects. We create an InventoryItem custom object with partNumber, stockQuantity, reorderPoint, binLocation, and unitCost fields. Inventory records link to Companies as a vendor relation.
Service Toolz
Invoice
Twenty CRM
Custom Object (InvoiceReference)
1:1Service Toolz invoices include invoice number, amount, status, line items, and payment history. Twenty has no native invoicing. Invoice data migrates as read-only InvoiceReference custom object records — invoice number, amount, status, date, and linked companyId are preserved for historical reference. The payment transaction history migrates as Note records attached to the InvoiceReference.
Service Toolz
Custom Field (any object)
Twenty CRM
Custom Field (same object)
1:1Service Toolz custom properties on any object migrate to Twenty custom fields created via Settings → Data Model before migration runs. Custom field data type mapping: text → TEXT, number → NUMBER, date → DATE, dropdown → SELECT, checkbox → BOOLEAN, multi-select → MULTI_SELECT. Pick-list values require value-by-value mapping.
Service Toolz
Attachment / File
Twenty CRM
Attachments (on People, Companies, Tasks)
1:1Service Toolz file attachments on contacts, companies, and work orders re-upload to Twenty's attachment model. Files attach to the migrated record they were associated with in Service Toolz. Inline images in notes are extracted and re-hosted as Twenty attachments. File size limits from Service Toolz's storage tier apply.
Service Toolz
Note
Twenty CRM
Note
1:1Service Toolz notes attached to any record migrate as Twenty Notes. The note body, create timestamp, and author (by email lookup to workspace members) are preserved. Notes attach to the target People, Company, or Task record via the relation field. Rich-text formatting is preserved where Service Toolz supports it.
Service Toolz
User / Owner
Twenty CRM
WorkspaceMember
1:1Service Toolz user records (dispatchers, admins, technicians) map to Twenty workspace members. Owner assignments on quotes and work orders resolve by email match to existing Twenty workspace members. Unmatched owners are flagged before migration — the team either creates the user in Twenty first or assigns records to a fallback workspace member.
| Service Toolz | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact | People1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Quote | Opportunity1:1 | Fully supported | |
| Work Order | Task (customized)1:1 | Fully supported | |
| Work Order Line Item | Custom Object (ServiceItem)1:1 | Fully supported | |
| Technician | WorkspaceMember1:1 | Fully supported | |
| Inventory Item | Custom Object (InventoryItem)1:1 | Fully supported | |
| Invoice | Custom Object (InvoiceReference)1:1 | Fully supported | |
| Custom Field (any object) | Custom Field (same object)1:1 | Fully supported | |
| Attachment / File | Attachments (on People, Companies, Tasks)1:1 | Fully supported | |
| Note | Note1:1 | Fully supported | |
| User / Owner | WorkspaceMember1: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.
Service Toolz gotchas
No public API means migration relies on report exports
Quote-to-Work Order ID linkage requires manual mapping
Inventory quantities are point-in-time and may drift
Add-on modules gate feature data
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 Service Toolz data across all modules
We connect with scoped read access to Service Toolz and export every object: contacts, companies, quotes, work orders, technicians, inventory items, and invoices. We document record counts per object, identify custom properties on each object, assess data quality (duplicate detection, missing required fields, stale records), and build the data model map that drives the entire migration. This audit also surfaces objects — like invoice payment history and work-order line items — that require custom object creation in Twenty before migration can proceed.
Design Twenty data model and pre-create custom objects
Before any data moves, we deliver a Twenty setup plan: which custom objects to create (ServiceItem, InvoiceReference, InventoryItem), which custom fields to add to standard objects (serviceType, originalCreateDate, certifications, availabilityStatus), and which pick-list values to pre-populate for status and priority fields. We include the import-order constraint diagram from Twenty's documentation so the Twenty admin knows exactly what to create and in what sequence. Fields must exist before import — CSV import creates records, not schema.
Resolve technician emails to Twenty workspace members
We export Service Toolz technician records by email and cross-reference against Twenty workspace members. Matches land directly; unmatched technician emails are flagged and reported to the migration team with instructions: either create the workspace member in Twenty first, or assign those work orders to a fallback assignee. No work order migrates with an unresolved assignee — the task record either has a valid assigneeId or is flagged for post-migration assignment so the migration audit log stays clean.
Run sample migration with field-level diff
A representative slice — typically 100–300 records spanning contacts, companies, quotes, and work orders — migrates first. We generate a field-level diff comparing source values against destination values for every mapped field, flagging discrepancies in pick-list mappings, date formats, and null-handling. The diff report is shared with the customer for verification before the full run commits. This is where we catch mapping errors (wrong stage value, unconverted date format, missed custom field) before they affect the full dataset.
Execute full migration with delta-pickup cutover
The full migration runs in dependency order: Companies, then People, then Opportunities, then Technicians (as workspace members), then Tasks with ServiceItem relations, then InvoiceReference records. A 24–48 hour delta-pickup window opens at migration start to capture work orders created or modified during the cutover window. All operations are logged in the FlitStack audit log. If reconciliation fails — record counts don't match, required fields landed null — one-click rollback reverts the Twenty workspace to its pre-migration state so the team can remediate and retry.
Platform deep dives
Service Toolz
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 Service Toolz and Twenty CRM.
Object compatibility
2 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
Service Toolz: Not publicly documented.
Data volume sensitivity
Service Toolz 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 Service Toolz to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Service Toolz 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 Service Toolz
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.