CRM migration

Migrate from Bill4Time to Nutshell

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

Bill4Time logo

Bill4Time

Source

Nutshell

Destination

Nutshell logo

Compatibility

91%

10 of 11

objects map 1:1 between Bill4Time and Nutshell.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Bill4Time and Nutshell serve fundamentally different functions: Bill4Time is a time-tracking and legal-billing platform built around clients, matters (projects), time entries, and invoices, while Nutshell is a sales-focused CRM centered on Companies, People, Leads, and Deals. This mismatch makes the migration architectural rather than cosmetic — Bill4Time's matter-centric model (client, project, time entry, expense, invoice) has no direct equivalent in Nutshell's sales pipeline. We map Bill4Time clients to Nutshell Companies and People, Bill4Time projects to Nutshell Deals, and time entries to Nutshell Activities. Billing rates and overtime multipliers surface as custom fields. We do not migrate Bill4Time invoices — Nutshell has no billing module — but invoice status and outstanding balances are preserved as reference fields. The migration uses Bill4Time's read-only v1/v2 API (OData filtering supported) and Nutshell's JSON-RPC API for writes, with a delta-pickup window capturing any entries logged during cutover. Workflows, bill4Time workflow templates, and automations do not migrate and must be rebuilt in Nutshell or handled separately.

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

Bill4Time logo

Bill4Time

What's pushing teams away

  • The API is read-only (GET routes only), making it difficult to export data programmatically and forcing manual CSV exports or support-assisted migrations for bulk record movement.
  • The platform lacks a native general ledger, requiring firms to export data into QuickBooks or similar accounting software, which creates a two-system workflow and reconciliation risk.
  • Reports occasionally show discrepancies between invoice status and the accounting page, creating confusion during month-end billing reconciliation.
  • Custom Fields and unlimited data imports are gated behind the Enterprise Add-On, making them inaccessible to smaller firms that need them most.
  • The client portal is basic — it shows invoices and balances but lacks case document sharing and secure messaging that competitors offer natively.

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 Bill4Time objects map to Nutshell

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

Bill4Time

Client

maps to

Nutshell

Company + Person

many:1
Fully supported

Bill4Time clients contain both organizational and contact-level data (billing name, address, phone, email, account manager). We split these: company details map to Nutshell Company, and the primary contact maps to a Nutshell Person linked to that Company. Additional contacts require separate Person records.

Bill4Time

Client.accountManagerId

maps to

Nutshell

Person.ownerId / Company.ownerId

1:1
Fully supported

Bill4Time account manager is a numeric user ID. We resolve this to a Nutshell user by email match — the account manager's Bill4Time email is used to find or flag the corresponding Nutshell owner. Unmatched managers are flagged before migration so you can either create Nutshell users or reassign records.

Bill4Time

Project (Matter)

maps to

Nutshell

Deal

1:1
Fully supported

Bill4Time projects map directly to Nutshell Deals. The project name becomes the Deal name, client association links to the mapped Company, and project status (Open/Closed) maps to the Nutshell Deal status. Multiple Bill4Time projects per client become separate Nutshell Deals on the same Company.

Bill4Time

Project.billingMethod

maps to

Nutshell

Deal.custom billing_method__c

1:1
Fully supported

Bill4Time's billing method (Hourly, Flat Fee, Percentage) has no native Nutshell equivalent. We create a custom pick‑list field called `billing_method__c` on the Deal object to preserve the original billing method for every project. This allows your team to filter or group Deals by how they were originally billed, ensuring that the billing context remains traceable when time entries are reviewed in Nutshell.

Bill4Time

Time Entry

maps to

Nutshell

Activity

1:1
Fully supported

Each Bill4Time time entry becomes a Nutshell Activity. The entry date, description (public), user, and billable status all map to corresponding Nutshell Activity fields. Private descriptions are stored as a custom field since Nutshell Activities do not have a private-note concept by default.

Bill4Time

Time Entry.billingRate / hourlyOverrideRate

maps to

Nutshell

Activity.custom billing_rate__c

1:1
Fully supported

Bill4Time time entries carry billing rates that may differ from the project or user default. These are preserved as custom numeric fields on the Nutshell Activity so the original billing rate is traceable even when the entry is logged in Nutshell's activity stream.

Bill4Time

Expense Entry

maps to

Nutshell

Activity

1:1
Fully supported

Bill4Time expense entries map to Nutshell Activities using a dedicated activity type (for example, `Expense`). The expense amount, description, and the linked client/project association are all preserved as fields on the Activity. If Bill4Time uses expense categories that have no direct Nutshell counterpart, we map those categories to custom pick‑list values or a custom text field, allowing you to filter or report on expenses by category within Nutshell.

Bill4Time

Invoice

maps to

Nutshell

No equivalent

1:1
Fully supported

Nutshell has no invoicing module. Bill4Time invoices (status, amount, labor amount, expense amount, paid status) are not recreated in Nutshell. We preserve invoice status and outstanding balance as custom reference fields on the linked Deal for billing reconciliation purposes only.

Bill4Time

User

maps to

Nutshell

Nutshell User

1:1
Fully supported

Bill4Time users map to Nutshell users by email match. Bill4Time user fields (fname, lname, email, userType, department, billingRate, overtimeRate) are preserved as custom fields on the Nutshell user record for reference. Nutshell's simpler role model means Bill4Time's granular user types (Financial User, Limited User) are retained as a custom field only.

Bill4Time

Custom Fields (Enterprise Add-On)

maps to

Nutshell

Custom Fields

1:1
Fully supported

Bill4Time custom fields at User, Client, Project, Time Entry, and Invoice levels all migrate to Nutshell custom fields on the corresponding object. Custom field types (Text, Number, Date, List) map to Nutshell's available field types. List-type custom fields with pick-list values require explicit value mapping.

Bill4Time

Workflow Templates

maps to

Nutshell

No equivalent

1:1
Fully supported

Bill4Time Enterprise Add-On workflow templates do not migrate. Nutshell has no workflow builder for task automation. We export workflow definitions as a reference document so your team can manually configure automation in Nutshell or evaluate third-party tools if advanced automation is required.

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.

Bill4Time logo

Bill4Time gotchas

High

API is read-only with no write endpoints

Medium

Enterprise Add-On gates Custom Fields and unlimited imports

Low

Invoice status divergence between reports and accounting page

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

  • Nutshell has no billing or invoicing module — invoice history cannot be migrated as live records

    Bill4Time invoices track prebill, finalized, and paid status with associated labor amounts, expense totals, and payment history. Nutshell's CRM model has no invoice object at all — Deals track revenue and pipeline status but not billing state. We preserve Bill4Time invoice status, outstanding balance, and amounts as custom fields on the linked Nutshell Deal for reconciliation reference, but you cannot generate invoices from Nutshell without a separate accounting integration. If your firm relies on Bill4Time's invoice generation for client billing, that workflow must be handled outside Nutshell post-migration.

  • Bill4Time's read-only API requires export-before-migration for large time entry volumes

    Bill4Time's public API is read-only in both v1 and v2 — FlitStack cannot write back to Bill4Time during migration, which is expected and appropriate. However, the API applies rate limits on find queries with non-stub responses, and time entry exports with large result sets may require pagination or multiple filtered requests. We handle this by using Bill4Time's OData-style $filter and $top parameters to page through time entries efficiently. Import minimums in Bill4Time's own import tool (50-row minimum for projects, 100-row minimum for time entries) do not apply to our API-based migration, but data cleanliness checks are run against these thresholds to flag gaps before mapping.

  • Bill4Time Enterprise Add-On custom fields are not available on lower-tier accounts

    Custom fields in Bill4Time — the primary extensibility mechanism for Client, Project, Time Entry, and User — require the Enterprise Add-On. Firms on the Legal Pro or lower plans have no custom fields in Bill4Time, meaning any migration plan that assumes custom property mapping will find those fields absent. We audit custom field availability during discovery. Nutshell, by contrast, includes custom fields on all plans for Company, Person, Lead, and Deal — so a firm upgrading Bill4Time solely to unlock custom fields before migration may find the same capability available natively in Nutshell without an add-on cost.

  • Nutshell's per-contact-contact-role model differs from Bill4Time's N:N matter associations

    Bill4Time allows a single client to have multiple projects, and time entries link directly to both client and project independently. Nutshell's Deals sit under Companies, and the CRM's contact model uses a Company → Person relationship with optional Account Contact Relationships for multi-company associations. We map each Bill4Time client → Nutshell Company and each project → Nutshell Deal on that Company. Time entries link to the Deal via a custom field since Nutshell Activities are not natively tied to Deals in the same way Bill4Time entries are tied to projects. This means viewing a Bill4Time matter's full time history in Nutshell requires navigating to the linked Deal's activity custom field rather than a native matter record.

  • Nutshell's API impersonation mode must be enabled for owner-resolved migrations

    Nutshell's JSON-RPC API supports impersonation — when enabled on an API key, actions are logged under the impersonated user's name rather than the API key's name. For accurate owner resolution, we recommend enabling impersonation on the migration API key so Bill4Time user IDs map to the correct Nutshell owner. If impersonation is not permitted on your Nutshell API key, all migrated records will be attributed to the API key itself rather than individual owners, which affects activity attribution and Deal assignment visibility in Nutshell's reporting.

Migration approach

Six steps for a successful Bill4Time to Nutshell data migration

  1. Audit Bill4Time data volume and custom field availability

    We begin by connecting to Bill4Time via read-only API using your API key. We pull the full client list, project list, user list, and a representative sample of time entries and expenses to establish record counts and custom field presence. If custom fields are absent (indicating a non-Enterprise plan), we flag this immediately. We also validate that the Bill4Time API key has sufficient access to read all required objects. This step produces a data inventory document that defines the scope before any mapping work begins.

  2. Map Bill4Time objects to Nutshell schema and create destination fields

    With the Bill4Time data inventory in hand, we build the Nutshell side of the mapping. We create custom fields on Nutshell Companies, Deals, Activities, and Users to accommodate Bill4Time-specific data (billing rates, litigation codes, invoice status, project types) that has no native Nutshell equivalent. We generate a field-level mapping document that shows every source field, its destination, and any transformation or value mapping required. This document is reviewed with you before any data moves.

  3. Resolve Bill4Time users to Nutshell owners by email

    Bill4Time user IDs are resolved to Nutshell users by matching the email address on each Bill4Time user record against Nutshell user accounts. Any Bill4Time users without a corresponding Nutshell account are flagged in a pre-migration report. Your team either creates Nutshell users for those individuals or assigns their records to a designated fallback owner. No records land in Nutshell without a confirmed owner assignment.

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

    A representative slice — typically 100–500 records covering clients, contacts, projects, time entries, and expenses — migrates first. We generate a field-level diff comparing source Bill4Time values against the destination Nutshell values so you can verify that billing rates, litigation codes, project types, and custom fields populated correctly. You approve the sample before the full migration proceeds. This step catches mapping errors before they affect the full dataset.

  5. Execute full migration with delta-pickup window

    The full dataset migrates in dependency order: Bill4Time clients → Nutshell Companies, then Users, then Projects → Nutshell Deals, then Time Entries and Expenses → Nutshell Activities. A delta-pickup window of 24–48 hours captures any new or modified Bill4Time records created during the migration run. All operations are logged in an audit trail, and one-click rollback is available if reconciliation identifies unexpected gaps in the transferred data.

Platform deep dives

Context on both ends of the pair

Bill4Time logo

Bill4Time

Source

Strengths

  • Simple per-user pricing with a free trial and no setup fees.
  • Native time tracking with timers, manual entries, and multi-device sync tied to Clients and Projects.
  • Flexible billing methods supporting hourly, flat fee, and percentage-based arrangements per Project.
  • Built-in invoicing with customizable templates, billing increments, and online payment processing via LawPay, PayPal, or Stripe.
  • OData-compatible API supports $filter, $select, $top, $skip, and $count for targeted data queries.

Weaknesses

  • API is entirely read-only — no POST, PUT, or DELETE endpoints exist, blocking automated migration scripts and two-way integrations.
  • No native general ledger; firms must integrate with external accounting software for full financial reporting.
  • Invoice status and accounting page reports have been observed to diverge in some configurations.
  • Enterprise features (Custom Fields, unlimited imports) require a paid add-on, not available on standard tiers.
  • Attachment and document storage is not exposed via the public API, limiting what can be migrated programmatically.
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. 2 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 Bill4Time and Nutshell.

  • Object compatibility

    B

    2 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

    Bill4Time: Not publicly documented — confirm with Bill4Time support during scoping. The vendor's API reference does not publish per-minute or per-day request ceilings..

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Bill4Time to Nutshell migrations finish in 48–72 hours for datasets under 10,000 records (clients, projects, time entries, expenses). When the migration involves 50,000+ records or numerous custom fields, the timeline stretches to 5–10 days. The longest phase is usually the sample migration and field‑level diff review, during which we validate that all billing rates, litigation codes, and custom properties map correctly before the full cutover commits and the delta‑pickup window captures any final changes.

Adjacent paths

Related migrations to explore

Ready when you are

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