CRM migration

Migrate from Timefold to Nutshell

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

Timefold logo

Timefold

Source

Nutshell

Destination

Nutshell logo

Compatibility

100%

10 of 10

objects map 1:1 between Timefold and Nutshell.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

Timefold logo

Timefold

What's pushing teams away

  • Steep learning curve when modeling custom constraints — teams struggle to correctly express business rules as DRL rules or Constraint Streams without specialist help.
  • Constraint enforcement bugs reported on GitHub (issue #307) cause unexpected infeasibility in production, particularly around capacity and dependency constraints.
  • Performance unpredictability at scale — without Enterprise Edition features (multithreaded solving, partitioned search), large datasets produce prohibitively slow solve times.
  • Lack of native no-code UI for business users — the platform is primarily developer-facing, making it harder for operations teams to tweak schedules directly.
  • Website performance issues noted in G2 review (occasionally slow loading) suggest infrastructure concerns for the managed SaaS offering.

Choosing

Nutshell logo

Nutshell

What's pulling them in

  • Lowest cost entry point among mid-market CRMs—Foundation plan starts at $13/user/month, making it accessible for teams validating CRM fit before committing.
  • Integrated sales automation and email sequencing on Pro plans without requiring a separate email marketing platform, per verified Capterra reviews.
  • Consistently praised for intuitive interface and fast onboarding, with case studies reporting 100% team adoption rates within initial deployment periods.
  • Strong customer support responsiveness cited across G2 reviews, with dedicated support tiers available on Enterprise plans.
  • Native integrations with WhatsApp, Facebook Messenger, Instagram, and Slack reduce reliance on third-party middleware for common communication channels.

Object mapping

How Timefold objects map to Nutshell

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)

maps to

Nutshell

People

1:1
Fully supported

Timefold 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

maps to

Nutshell

Deal + Custom Fields

1:1
Fully supported

Each 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

maps to

Nutshell

Task + Custom Fields

1:1
Fully supported

Timefold 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

maps to

Nutshell

Task + Custom Fields

1:1
Fully supported

Timefold 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

maps to

Nutshell

Account

1:1
Fully supported

Timefold 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

maps to

Nutshell

Custom Field on Account or People

1:1
Fully supported

Timefold 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

maps to

Nutshell

Custom Field on People

1:1
Fully supported

Timefold 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

maps to

Nutshell

People (Owner Resolution)

1:1
Fully supported

Timefold 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

maps to

Nutshell

Custom Field on Deal

1:1
Fully supported

Timefold 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

maps to

Nutshell

Custom Field on Deal (JSON)

1:1
Fully supported

Timefold 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.

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.

Timefold logo

Timefold gotchas

High

Score DRL to Constraint Streams migration is non-trivial

High

Hard constraint enforcement failures reported in production

Medium

Solver migration bugs are upstream-dependent

Medium

Neighborhoods API is preview-only and subject to breaking changes

Low

Commercial tier features are edition-gated without feature-flag documentation

Nutshell logo

Nutshell gotchas

High

Contact tier limits enforced on import

Medium

No bulk API endpoint requires paginated extraction

Medium

Email sequences not exportable via API

Medium

Foundation plan disables key sales features

Pair-specific challenges

  • Constraint logic and solver configurations cannot execute in Nutshell

    Timefold's entire operational value lives in its constraint models — the DRL files, Constraint Streams, score annotations, and solver configuration that take a scheduling problem and find the optimal solution. Nutshell is a CRM with no constraint-satisfaction engine and no concept of a planning variable, score director, or solver. When migrating, we serialize constraint configuration as structured JSON in custom fields and export a human-readable constraint manifest, but this is documentation — it cannot be run inside Nutshell. Your team must decide whether to keep Timefold running in parallel for optimization, document constraints externally, or accept that the CRM will store scheduling context without driving optimization. Failing to address this gap before go-live means your Nutshell instance will have the data from Timefold but none of its intelligence.

  • Timefold exports come from Java domain objects and configuration files, not a standard CRM API

    Timefold does not expose a standard object-oriented CRM export endpoint. Planning data lives in your own database or application, structured as Java domain objects annotated with @PlanningEntity and @PlanningVariable decorators. To extract migration-ready records, FlitStack AI either reads from the Timefold Platform REST API (which exposes input/output datasets per model) or parses your application-side domain exports. The structure varies by optimization model type (field service uses Visit entities; rostering uses Shift entities), and constraint configurations are spread across Java classes, XML files, and annotation metadata. We apply a multi-pass extraction: first to enumerate all model types and their entity schemas, then to export records per entity, then to consolidate constraint metadata. This multi-pass process adds discovery time compared to a standard CRM-to-CRM migration where the object schema is already known.

  • Scheduling objects (Shift, Visit, Route) have no native Nutshell equivalent and require custom fields

    In Nutshell, the standard record types are People, Accounts, Leads, and Deals — with Tasks as the only temporal activity record. Timefold Shift records (employee, timeslot, skill requirements, location, shift type) must map to Nutshell Tasks with a significant number of custom fields to preserve scheduling context. Timefold Visit records (technician, customer, time window, travel time, visit outcome) similarly map to Tasks linked to the People record of the customer contact. Multi-day shift sequences must be decomposed into individual Task records. If your Timefold model includes chained dependencies between visits or shift handover logic, those dependencies cannot be natively expressed in Nutshell Tasks and must be reconstructed from the constraint manifest as manual notes or activity logs.

  • Nutshell's People/Account name collision with Timefold entity terminology

    Timefold uses Java class names that may contain the strings 'Contact' or 'Account' as property names in the domain model (e.g., a Timefold Visit entity might have a field named 'contact' referencing the customer site). Nutshell's standard object model uses People for contacts and Accounts for companies. If your Timefold domain model references entities named 'Contact' or 'Account', the migration mapping must distinguish between Timefold's internal entity references and Nutshell's standard object names. We resolve this at the field level during the mapping phase: a Timefold Visit.contact field maps to a link to the Nutshell People record that corresponds to the customer at that service site, not to Nutshell's standard Contact object (which does not exist as a top-level object in Nutshell's API — the equivalent is People).

  • Skill and certification data type fidelity loss when stored in Nutshell custom fields

    Timefold models skill requirements as typed entity properties — a technician's skill set is an ordered collection of Skill objects with attributes like proficiency level, certification expiry, and skill category. Nutshell custom fields support text, number, pick-list, and multi-select. When we migrate skill data, we must collapse the rich Timefold skill object into a simplified multi-select or text field. Proficiency levels, expiry dates, and skill categories that were structurally distinct in Timefold become flattened text values or separate custom fields in Nutshell. If you rely on proficiency-level routing (e.g., only assign 'Level 2 HVAC' technicians to certain visits), that logic lives in the Timefold constraint model and is not preserved by the field-level migration — it must be rebuilt either in Timefold's constraint rules or as a Nutshell workflow.

Migration approach

Six steps for a successful Timefold to Nutshell data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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

Context on both ends of the pair

Timefold logo

Timefold

Source

Strengths

  • Apache 2.0 open-source solver with no licensing cost for self-hosted deployments.
  • Three production-grade pre-built models covering field service, shift scheduling, and vehicle routing.
  • Enterprise Edition enables multithreaded solving and partitioned search for large-scale optimization.
  • REST API with X-API-KEY authentication provides straightforward integration into existing backend systems.
  • Active open-source community on GitHub (1.6k stars) with Stack Overflow support and partner consulting network.

Weaknesses

  • Java/Kotlin-centric architecture excludes non-JVM languages from direct solver embedding without wrapper services.
  • Constraint authoring requires operations-research knowledge; no low-code or visual constraint builder for business analysts.
  • Single G2 review with 4.5/5 rating — very limited third-party validation compared to established FSM platforms.
  • Pricing is not publicly documented on the website, requiring a sales contact for commercial tier costs.
  • Platform is specialized for scheduling optimization and does not function as a general CRM, ERP, or project management tool.
Nutshell logo

Nutshell

Destination

Strengths

  • Simple, intuitive interface with minimal learning curve for sales teams new to CRM
  • Per-seat pricing is transparent and predictable, with annual billing reducing monthly cost
  • Full data export tool available for all account data including backups
  • Open JSON-RPC API allows programmatic access to all core objects
  • Native multichannel engagement (email, SMS, WhatsApp) without third-party add-ons for communication

Weaknesses

  • Reporting and analytics are considered weak, requiring manual Excel exports for detailed analysis
  • No bulk API endpoint—migration requires paginated API reads that must be rate-limited carefully
  • JSON-RPC API is less common than REST, requiring custom integration code compared to standard REST CRMs
  • Add-on costs (Forms, Nutshell IQ, Email Marketing) are per-company charges that stack on top of per-seat pricing
  • Feature restrictions on entry-level plans mean teams often need mid-tier to get basic automation

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 Timefold and Nutshell.

  • 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

    Timefold: Not publicly documented on the Timefold Platform REST API.

  • Data volume sensitivity

    A

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

Estimator

Estimate your Timefold to Nutshell 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 Timefold to Nutshell data migrations

Answers to the questions buyers ask most during Timefold to Nutshell migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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

Book a free 30 minute consultation

Timefold to Nutshell migrations typically complete in 48–72 hours for under 5,000 employee records and a single optimization model type. Larger deployments with multiple model types (field-service routing, rostering, VRP), more than 100,000 shift and visit records, or complex multi-skill constraint metadata extend to 5–10 days. The longest phase is schema discovery and custom field planning in step 1 — once Nutshell custom fields are configured and owner resolution is complete, the data migration itself runs at API speed. Nutshell's JSON-RPC API rate limits on find() requests with non-stub responses can slow high-volume extractions, which we manage with request throttling and batch sizing.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Timefold.
Land in Nutshell, 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