CRM migration
Field-level mapping, validation, and rollback between Timefold and Nutshell. We move data and schema; workflows are rebuilt natively in Nutshell.
Timefold
Source
Nutshell
Destination
Compatibility
10 of 10
objects map 1:1 between Timefold and Nutshell.
Complexity
BStandard
Timeline
48–72 hours
Overview
Timefold is a constraint-satisfaction and optimization engine — it solves scheduling problems (employee rostering, field-service routing, vehicle routing) using mathematical models built from Java annotations and configuration files. Nutshell is a relational CRM that tracks people, companies, and deals via a JSON-RPC API. The two platforms share almost no native object parity: there is no standard equivalent in Nutshell for a Timefold shift, a route plan, or a constraint score. FlitStack AI handles the migration by identifying all extractable operational data in Timefold — employees, locations, vehicles, skills, and scheduling project metadata — and mapping those into Nutshell's standard objects (People, Accounts, Deals) and custom fields. Constraint configuration files (the logic that makes Timefold valuable) cannot execute inside Nutshell and are not migrated as code; instead, we surface the constraint schema as structured JSON custom fields and export a human-readable constraint manifest your team can use to document or re-implement logic in Timefold or another optimization tool. The migration reads from Timefold's export APIs and flat-file configuration structures, and writes into Nutshell via the JSON-RPC API with supplemental bulk CSV for high-volume custom-field loads. Scoped read access means your Timefold environment remains fully operational during the entire 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 Timefold object lands in Nutshell, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Timefold
Employee (PlannerEmployee / WorkEmployee)
Nutshell
People
1:1Timefold employees (technicians, agents, drivers) map directly to Nutshell People records. First name, last name, and email map as direct fields. Email match resolves Nutshell owners for activity attribution. Employees without email addresses are migrated as inactive People and flagged for manual owner assignment. Skills and certifications stored as custom fields on the People record.
Timefold
Optimization Model / Planning Solution
Nutshell
Deal + Custom Fields
1:1Each Timefold planning model (field-service routing, shift scheduling, VRP) maps to a Nutshell Deal record with a dedicated pipeline. Model metadata — name, model type, solver version, score type (hard/medium/soft) — is stored as custom fields on the deal. The constraint schema is serialized as a JSON custom field for documentation purposes. The solver logic itself is not migrated as executable code.
Timefold
Shift / Duty Assignment
Nutshell
Task + Custom Fields
1:1Timefold shift records (employee, timeslot, location, skill requirements, shift type) map to Nutshell Tasks. The task Subject carries the shift label, the task Due Date carries the shift start datetime, and the assigned Nutshell People record carries the Timefold employee. Shift type (regular, overtime, on-call) and skill requirements are stored as custom fields on the Task. Task Status in Nutshell is set to Completed for historical shifts, Open for future unscheduled shifts.
Timefold
Visit / Customer Appointment
Nutshell
Task + Custom Fields
1:1Timefold visits (technician, customer location, time window, travel time, visit status) map to Nutshell Tasks linked to the People record of the customer contact. Original visit ID, time window, travel duration, and visit outcome are stored as custom fields on the task. Nutshell does not have a native geolocation field; coordinates are stored as text custom fields for reference only. Status (completed, no-show, cancelled) maps to Nutshell Task status.
Timefold
Location / Customer Site
Nutshell
Account
1:1Timefold locations (service sites, depots, customer addresses) map to Nutshell Accounts. Address fields map directly. Website maps to the Nutshell Account Website field where available. Timefold geographic zones and service area polygons are stored as text custom fields since Nutshell has no native geofencing support. Each location is linked to related Task records for the visits scheduled at that site.
Timefold
Vehicle / Asset
Nutshell
Custom Field on Account or People
1:1Timefold vehicles and assets have no native equivalent in Nutshell's CRM model. We create a custom field on the Account (for depot-level assets) or People (for technician-owned vehicles) record to store vehicle ID, vehicle type, capacity, and current status. Multi-vehicle deployments result in multiple custom field entries stored as a text list.
Timefold
Skill / Certification
Nutshell
Custom Field on People
1:1Timefold skills and certifications (e.g., HVAC Level 2, CDL Class B, bilingual Spanish) map to Nutshell custom fields on the People record. Single-value skills use a pick-list custom field; multi-skill certifications use a multi-select field. Timefold's skill requirement constraints on shifts and visits are stored as a JSON custom field on the shift/visit Task record for rebuild reference.
Timefold
Timefold User / Owner
Nutshell
People (Owner Resolution)
1:1Timefold user accounts (dispatchers, planners, admins) are resolved against Nutshell People records by email address. Active Nutshell users matched by email become the owner of migrated records (Accounts, People, Deals, Tasks). Unmatched Timefold users are flagged before migration runs — your team decides whether to invite them to Nutshell or assign their records to a fallback owner. Original Timefold user ID is preserved as a custom field for audit traceability.
Timefold
Score / Optimization Result
Nutshell
Custom Field on Deal
1:1Timefold solver scores (hard score, medium score, soft score) for each optimization run are stored as custom numeric fields on the associated Deal record. Historical score trend data is stored as a JSON list in a custom long-text field. Nutshell has no native scoring engine — these fields provide reference data only and do not trigger any Nutshell workflow. Teams wanting active scoring must keep Timefold running or use a third-party scoring integration.
Timefold
Constraint Configuration / DRL Rules
Nutshell
Custom Field on Deal (JSON)
1:1Timefold constraint rules defined in DRL files or Constraint Streams have no functional equivalent in Nutshell. We serialize the constraint configuration as a structured JSON custom field on each Deal record for documentation. A separate constraint manifest CSV is exported with all constraint names, types, and weightings. This manifest serves as a rebuild reference for your team to re-implement constraints in Timefold or document them in a separate optimization wiki — it is not executable migration output.
| Timefold | Nutshell | Compatibility | |
|---|---|---|---|
| Employee (PlannerEmployee / WorkEmployee) | People1:1 | Fully supported | |
| Optimization Model / Planning Solution | Deal + Custom Fields1:1 | Fully supported | |
| Shift / Duty Assignment | Task + Custom Fields1:1 | Fully supported | |
| Visit / Customer Appointment | Task + Custom Fields1:1 | Fully supported | |
| Location / Customer Site | Account1:1 | Fully supported | |
| Vehicle / Asset | Custom Field on Account or People1:1 | Fully supported | |
| Skill / Certification | Custom Field on People1:1 | Fully supported | |
| Timefold User / Owner | People (Owner Resolution)1:1 | Fully supported | |
| Score / Optimization Result | Custom Field on Deal1:1 | Fully supported | |
| Constraint Configuration / DRL Rules | Custom Field on Deal (JSON)1: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.
Timefold gotchas
Score DRL to Constraint Streams migration is non-trivial
Hard constraint enforcement failures reported in production
Solver migration bugs are upstream-dependent
Neighborhoods API is preview-only and subject to breaking changes
Commercial tier features are edition-gated without feature-flag documentation
Nutshell gotchas
Contact tier limits enforced on import
No bulk API endpoint requires paginated extraction
Email sequences not exportable via API
Foundation plan disables key sales features
Pair-specific challenges
Migration approach
Discover and enumerate all Timefold optimization models and their entity schemas
FlitStack AI reads your Timefold configuration files, domain model annotations, and Timefold Platform API responses to enumerate every optimization model (field-service routing, employee rostering, VRP) and identify all entity types, relationships, and constraint configurations across your deployment. We catalog every planning entity type, every problem-fact class, and every constraint rule with its weight and score type. The output is a complete schema manifest that lists all record types that will migrate, all custom fields that will be created in Nutshell, and all constraint configurations that will be serialized as documentation. This step establishes the mapping plan before any data moves.
Create Nutshell custom fields and configure deal pipelines per optimization model
Based on the schema manifest from step 1, FlitStack AI creates the custom fields in Nutshell required to store scheduling metadata — skill fields on People, shift metadata fields on Tasks, constraint JSON fields on Deals, and score fields on Deals. We also create a dedicated Nutshell pipeline for each Timefold optimization model type so scheduling projects are visually isolated from standard sales deals. Nutshell's custom field creation is done via the API before migration validation runs. Your Nutshell admin reviews the custom field labels and field types before the migration proceeds.
Resolve Timefold employees to Nutshell People records by email
Timefold technicians, agents, drivers, and dispatchers are matched to existing Nutshell People records by email address. Active Nutshell users matched by email become the owner of migrated records — Accounts, People, Deals, and Tasks will all carry the correct owner in Nutshell. Unmatched Timefold users are flagged in a pre-migration report with their email, name, and role — your team decides whether to invite them to Nutshell as users first or assign their records to a fallback owner. No record migrates without an owner resolution decision. This step also handles role-specific email aliases (e.g., [email protected] vs. [email protected]) that might resolve to different Nutshell users.
Migrate core entities in dependency order: Accounts, then People, then Deals and Tasks
Timefold location records migrate first to Nutshell Accounts, establishing the account IDs needed to link visit Tasks. Employees migrate next to Nutshell People, establishing the owner IDs needed for Task assignment. Optimization models migrate as Nutshell Deals with solver metadata in custom fields. Individual shifts and visits migrate as Nutshell Tasks linked to the resolved People records for technicians and customer contacts. Constraint configurations are serialized and attached to their parent Deal record as structured JSON. This dependency ordering — Locations → Accounts, Employees → People, Models → Deals, Shifts/Visits → Tasks — ensures foreign-key relationships resolve correctly at migration time.
Run a sample migration with field-level diff, then execute delta pickup at cutover
A representative sample (typically 100–500 records spanning multiple optimization models) migrates first. We generate a field-level diff report showing every mapped field, its source value, and its destination value in Nutshell so you can verify that skill tags, shift datetimes, visit outcomes, and score metadata are correctly mapped before the full run commits. After the full migration completes, a delta-pickup window of 24–48 hours captures any records created or modified in Timefold during the cutover window. Scoped read access means your team keeps working in Timefold throughout — there is no data freeze. An audit log records every migrated record and its destination ID, and one-click rollback is available if reconciliation reveals unexpected gaps.
Platform deep dives
Timefold
Source
Strengths
Weaknesses
Nutshell
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 Timefold and Nutshell.
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
Timefold: Not publicly documented on the Timefold Platform REST API.
Data volume sensitivity
Timefold exposes a bulk API — large-volume migrations stream efficiently.
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 Timefold to Nutshell migration scoping. Not seeing yours? Book a call.
Walk through your Timefold to Nutshell migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Timefold
Other ways to arrive at Nutshell
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.