CRM migration
Field-level mapping, validation, and rollback between Bilr and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Bilr
Source
Freshsales
Destination
Compatibility
11 of 12
objects map 1:1 between Bilr and Freshsales.
Complexity
BStandard
Timeline
48–72 hours
Overview
Bilr is a legal-practice billing platform centered on clients, matters, and time/billing records. Its data model has no native CRM concept of pipelines, leads, or contact lifecycles — those concepts do not exist in Bilr's schema. Freshsales inverts that model: it is built around Leads, Contacts, Accounts, and Opportunities with a visual Kanban pipeline, Freddy AI contact scoring, and territory management across Growth, Pro, and Enterprise tiers. The migration therefore requires both a structural translation (matters → opportunities) and a conceptual reorientation (billing records → custom fields or deal line items). We extract Bilr data via its export API, map matters to Freshsales Opportunities, clients to Contacts/Accounts, and preserve billing metadata in custom fields. Workflows, automations, and trust-accounting logic have no Freshsales equivalent — those are exported as documentation for manual rebuild. Our approach runs a sample migration first with field-level diff, then executes the full load against the Freshsales REST API, respecting per-plan rate limits (1,000/hr Growth, 2,000/hr Pro, 5,000/hr Enterprise) and capturing a 24–48h delta window at 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 Bilr object lands in Freshsales, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Bilr
Firm / Organization
Freshsales
Account
1:1Bilr's top-level firm record maps directly to Freshsales Account. Firm name becomes Account Name; billing address maps to the Account address fields. Multi-office firms with separate addresses require either multiple Account records or the primary office as the parent Account.
Bilr
Client
Freshsales
Contact + Account
many:1Bilr clients are merged into Freshsales Contact (the person) linked to an Account (the firm). The client's firm name resolves to an existing Freshsales Account record via AccountId lookup. If no matching Account exists, one is created first to satisfy the foreign key.
Bilr
Matter
Freshsales
Opportunity
1:1Each Bilr matter becomes a Freshsales Opportunity. Matter number maps to a custom field (Matter_Number__c). The Opportunity Name is constructed from matter_number + client_name for uniqueness. Pipeline and StageName are set via a default pipeline-stage mapping since Bilr has no native stage concept.
Bilr
Billing Record / Invoice
Freshsales
Custom Object (Billing_Record__c) + Opportunity Amount
1:1Bilr invoices have no direct Freshsales equivalent — Freshsales Opportunity stores only Amount, not line-item detail. We create a Billing_Record__c custom object linked to the Opportunity via Lookup. Invoice total populates Opportunity.Amount; individual line items become Billing_Record__c records.
Bilr
Time Entry
Freshsales
Task (Sales Activity)
1:1Billable time entries migrate as Freshsales Tasks with Type = 'Custom Activity' and Subject = 'Billable Time'. Duration_in_minutes__c and billing_rate__c custom fields capture the financial data. Date of entry becomes the Task creation date. Time entries link to the parent Opportunity via the WhatId field.
Bilr
Client Note / Document
Freshsales
Task Note
1:1Client-level notes and documents in Bilr become Freshsales Tasks with Subject = 'Client Note' and the note body in the Description field. Original attachment filenames are preserved. Attachments are re-uploaded to Freshsales Files and linked to the Contact or Opportunity.
Bilr
Trust Accounting Ledger
Freshsales
Custom Object (Trust_Accounting__c)
1:1Bilr's trust accounting ledger has no Freshsales equivalent — Freshsales has no trust or IOLTA module. We create a Trust_Accounting__c custom object with fields for ledger_type, amount, running_balance__c, and reference_number__c. This preserves the ledger for reporting but requires manual reconciliation.
Bilr
User / Staff Member
Freshsales
User (Freshsales)
1:1Bilr staff records map to Freshsales Users by email match. Unmatched staff are flagged before migration — either invited to Freshsales or assigned to a fallback user. Role and permission sets are destination-side configuration not migrated.
Bilr
Custom Field (Billing Rate, Practice Area, LEDES Code)
Freshsales
Custom Field on Contact / Opportunity
1:1Bilr custom properties are mapped to Freshsales custom fields on the corresponding object. Field type is preserved (pick-list, text, number, currency). Note that Freshsales Growth plan limits custom fields to 10 — migration to Growth requires consolidation of non-essential fields.
Bilr
Sub-Matter / Nested Matter
Freshsales
Custom Object or Lookup
1:1Bilr supports nested matter hierarchies. Freshsales has no native sub-opportunity structure. We handle this by creating a Sub_Matter__c custom object linked to the parent Opportunity, or by flattening hierarchy into Parent_Matter_Number__c text fields — the approach is chosen during the sample migration review.
Bilr
Attachment / Uploaded File
Freshsales
Freshsales Files
1:1Bilr file attachments on matters, clients, and invoices are downloaded and re-uploaded to Freshsales Files. Files are linked to the corresponding Contact or Opportunity record. File size limits (25MB per file in Freshsales) are respected; oversized files are flagged for manual handling.
Bilr
Workflow / Automation (Bilr)
Freshsales
Not Migrated
1:1Bilr's automated templates and workflow triggers have no functional equivalent in Freshsales. We export Bilr workflow definitions as a structured JSON document that the Freshsales admin uses as a rebuild reference when configuring Freshsales Workflows under Admin Settings > Workflows.
| Bilr | Freshsales | Compatibility | |
|---|---|---|---|
| Firm / Organization | Account1:1 | Fully supported | |
| Client | Contact + Accountmany:1 | Fully supported | |
| Matter | Opportunity1:1 | Fully supported | |
| Billing Record / Invoice | Custom Object (Billing_Record__c) + Opportunity Amount1:1 | Fully supported | |
| Time Entry | Task (Sales Activity)1:1 | Fully supported | |
| Client Note / Document | Task Note1:1 | Fully supported | |
| Trust Accounting Ledger | Custom Object (Trust_Accounting__c)1:1 | Fully supported | |
| User / Staff Member | User (Freshsales)1:1 | Fully supported | |
| Custom Field (Billing Rate, Practice Area, LEDES Code) | Custom Field on Contact / Opportunity1:1 | Fully supported | |
| Sub-Matter / Nested Matter | Custom Object or Lookup1:1 | Fully supported | |
| Attachment / Uploaded File | Freshsales Files1:1 | Fully supported | |
| Workflow / Automation (Bilr) | Not Migrated1: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.
Bilr gotchas
No trust accounting support is a hard blocker for IOLTA firms
Limited workflow and template customization
Per-seat pricing model is migration-cost-sensitive
Export scope discovery is required before migration
Freshsales gotchas
Freddy AI is Pro-tier only despite heavy marketing
Post-migration emails and sequences are disabled
Bot session credits are a one-time 500-session allocation
Phone credits charged per minute with no cap
File storage limits scale with plan tier
Pair-specific challenges
Migration approach
Audit Bilr schema and data quality before mapping
We connect to Bilr via read-access API and export a full schema inventory: firm records, clients, matters, billing records, time entries, trust ledger entries, notes, and attachments. We profile field fill rates, identify duplicate records, and flag any Bilr custom properties that will exceed Freshsales Growth plan custom field limits. The audit output is a Bilr-to-Freshsales field mapping document reviewed by the client before any data movement begins.
Set up Freshsales destination schema
Before loading data, we create the custom fields, pick-list values, custom objects (Billing_Record__c, Trust_Accounting__c), and lookup relationships required by the mapping plan. If the destination is on the Growth plan and the Bilr setup exceeds 10 custom fields, we recommend upgrading to Pro or consolidating fields. We also configure the default sales pipeline and stage mapping so that Bilr matter statuses route to appropriate Freshsales Opportunity stages.
Run a sample migration with field-level diff
A representative slice of 100–500 records migrates first: 10–20 clients, 20–40 matters, billing records, time entries, and a sample trust ledger. We generate a field-level diff comparing source values to Freshsales values, verified by the client. This catches mapping errors (wrong stage values, broken lookups, truncated text) before the full run commits. The sample run also calibrates API throughput against Freshsales rate limits for the chosen plan tier.
Execute full migration with phased loads and delta pickup
The full migration loads in sequence: Accounts and Contacts first (no foreign key dependencies), then Matters and related time entries, then trust accounting records, then notes and attachments. We throttle API calls to stay within Freshsales per-hour rate limits. A delta-pickup window (24–48 hours after initial load) captures any Bilr records modified during the cutover window. After delta pickup, we run a record-count reconciliation against Bilr exports and a spot-check of critical fields (matter number, invoice total, client email).
Deliver audit log and go-live support
We provide a migration audit log listing every record migrated: source Bilr ID, destination Freshsales ID, record type, and timestamp. Any records that failed migration are flagged with error codes for manual resolution. After the client validates data in Freshsales and approves the final reconciliation report, the Bilr account is placed in read-only mode and Freshsales becomes the production CRM. We remain available for 5 business days post-go-live for any data corrections identified after the cutover.
Platform deep dives
Bilr
Source
Strengths
Weaknesses
Freshsales
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 Bilr and Freshsales.
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
Bilr: Not publicly documented — typical SaaS limits assumed and confirmed during scoping.
Data volume sensitivity
Bilr 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 Bilr to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Bilr to Freshsales migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Bilr
Other ways to arrive at Freshsales
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.