CRM migration
Field-level mapping, validation, and rollback between Smokeball and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Smokeball
Source
Salesforce Sales Cloud
Destination
Compatibility
13 of 14
objects map 1:1 between Smokeball and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
48–72 hours
Overview
Smokeball organizes law-firm data around matters and activities: clients, opposing parties, attorneys, documents, time entries, trust ledger entries, and workflow tasks. Salesforce Sales Cloud uses Account-Contact-Opportunity with Case for service work and custom fields for extensibility. There is no native matter concept in Salesforce—the migration must decide per record whether a Smokeball matter becomes a Salesforce Account (for the client organization), a Case (for active legal work), an Opportunity (for business development), or some combination. We map Smokeball contacts to Salesforce Contacts attached to Accounts, staff to Salesforce Users by email match, and documents to Salesforce Files. Trust accounting balances and hard/soft costs become custom fields on Account since Salesforce has no native trust-ledger construct. Smokeball workflows do not migrate—they must be rebuilt in Salesforce Flow using an exported definition. The migration uses a staged approach: first staff and clients (so owner lookups resolve), then matters with their contacts, then time entries and documents, with a 24–48 hour delta window at cutover to capture in-flight work.
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 Smokeball object lands in Salesforce Sales Cloud, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Smokeball
Staff
Salesforce Sales Cloud
User
1:1Smokeball staff records (first name, surname, email, status, salutation) map to Salesforce User records. Email match is the primary key for owner resolution. Active Smokeball staff become active Salesforce Users with appropriate ProfileId; inactive staff become inactive Users. RoleId assignment follows the person's practice area if available.
Smokeball
Contact (Client)
Salesforce Sales Cloud
Contact
1:1Smokeball contacts linked as clients map to Salesforce Contacts. Each contact requires an AccountId lookup—Smokeball contacts without a primary organization attach to a default 'Individual Client' Account or the contact's address becomes Account.Name. Phone, email, address fields map directly. Tags migrate as a custom multi-select picklist.
Smokeball
Contact (Opposing Party, Opposing Attorney)
Salesforce Sales Cloud
Contact
1:1Non-client contacts (opposing parties, opposing attorneys) map to Salesforce Contacts on a separate Account representing the opposing organization, or as individual Contacts attached to a generic 'Opposing Party' Account if no organization exists. The contact's relationship to the matter is preserved in a custom Role__c field on Contact.
Smokeball
Matter
Salesforce Sales Cloud
Account + Case + Opportunity (split)
1:manySmokeball matters do not map to a single Salesforce object. We split each matter into: (1) an Account representing the client organization, (2) a Case for active legal work, and (3) optionally an Opportunity if the matter has a billing relationship. Matter type determines which RecordTypeId is assigned for page layout scoping. Person Responsible maps to Case.OwnerId by email match.
Smokeball
Matter Type
Salesforce Sales Cloud
RecordTypeId + Custom Field
1:1Smokeball matter types (family law, personal injury, estate planning, etc.) become Salesforce Record Types on Case and Account. Each Record Type enables a different page layout with type-specific pick-list values. The original Smokeball matter type is preserved in a Matter_Type__c custom field for reporting continuity.
Smokeball
Activity (tasks, memos, emails)
Salesforce Sales Cloud
Task
1:1Smokeball activities—tasks, document work, memos, emails—are logged as Salesforce Tasks. The original timestamp, owner (mapped by email), and subject are preserved. Task.WhatId links to the related Case or Opportunity. Task status defaults to 'Completed' for historical records. Reminder dates and priorities also migrate to maintain the original activity context for audit review.
Smokeball
Time Entry
Salesforce Sales Cloud
Task + Custom Fields
1:1Smokeball time entries (hours, description, date) become Salesforce Tasks with Type='Time Entry' plus custom fields Duration_Hours__c and Billing_Rate__c. AutoTime-generated entries preserve their source flag in a custom field. Time entries billable flag maps to a custom Is_Billable__c checkbox. Historical billing rates also migrate for reporting on client cost recovery and attorney utilization metrics.
Smokeball
Document / File
Salesforce Sales Cloud
ContentDocument + ContentVersion
1:1Smokeball documents upload to Salesforce Files (ContentDocument/ContentVersion). Document Containers become Salesforce Libraries if the firm uses ContentWorkspace. Files are linked to the relevant Case via ContentDocumentLink. Inline images in notes are downloaded and re-hosted in Salesforce. Maximum file size is 25 MB per Salesforce default limit.
Smokeball
Trust Accounting (balance, entries)
Salesforce Sales Cloud
Custom Fields on Account
1:1Smokeball trust account balances and ledger entries have no Salesforce native equivalent. We create custom fields on Account: Trust_Balance__c (Currency), Trust_Ledger_Entries__c (Long Text Area for audit reference), and Trust_Account_Number__c (Text). The original trust entries are preserved as a JSON blob in the text area for compliance reference.
Smokeball
Debtor / Open Balance
Salesforce Sales Cloud
Custom Fields on Account + Opportunity
1:1Smokeball debtor fields (open debtors balance, other side, other side attorney) become custom fields on Account: Open_Debtors_Balance__c, Other_Side__c, Other_Side_Attorney__c. If the matter generated billing opportunities, the outstanding balance also appears on the related Opportunity via Outstanding_Balance__c. Collection status can be tracked using a custom picklist field for follow-up workflow automation.
Smokeball
Hard Costs / Soft Costs
Salesforce Sales Cloud
Custom Fields on Case or Account
1:1Smokeball's hard costs (court filing fees, expert fees—paid to third parties) and soft costs (photocopying, postage—firm overhead) map to custom Decimal fields on Case: Hard_Costs__c and Soft_Costs__c. Whether these live on Case or a custom Cost_Tracking__c object depends on the firm's reporting requirements, decided during the mapping session.
Smokeball
Matter Number / Internal Reference
Salesforce Sales Cloud
Case.CaseNumber + Custom Field
1:1Smokeball matter number and internal reference map to Case.CaseNumber and a custom Original_Matter_Number__c text field. Salesforce auto-generates CaseNumber, but we preserve the original Smokeball identifier for continuity and audit purposes. The custom field enables users to search by the legacy matter number directly from Salesforce without relying on the system-generated case number format.
Smokeball
Person Assisting
Salesforce Sales Cloud
Case.OwnerId + Custom Field
1:1Smokeball's Person Assisting field (secondary staff on a matter) maps to a custom Person_Assisting__c lookup field on Case pointing to User. The primary Person Responsible maps to Case.OwnerId. Both resolve by email match to Salesforce Users before migration runs. This allows multiple attorneys to be associated with a single matter while maintaining clear primary responsibility assignments.
Smokeball
Workflows
Salesforce Sales Cloud
Flow
1:1Smokeball workflows are series of tasks tied to matter types. They do not have a Salesforce equivalent—Flow is the only automation engine in Salesforce in 2026, and workflow definitions are not portable. We export the workflow definitions as a reference document for the firm's Salesforce admin to rebuild in Flow Builder. The tasks themselves (created by workflows) migrate as completed Tasks.
| Smokeball | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Staff | User1:1 | Fully supported | |
| Contact (Client) | Contact1:1 | Fully supported | |
| Contact (Opposing Party, Opposing Attorney) | Contact1:1 | Fully supported | |
| Matter | Account + Case + Opportunity (split)1:many | Fully supported | |
| Matter Type | RecordTypeId + Custom Field1:1 | Fully supported | |
| Activity (tasks, memos, emails) | Task1:1 | Fully supported | |
| Time Entry | Task + Custom Fields1:1 | Fully supported | |
| Document / File | ContentDocument + ContentVersion1:1 | Fully supported | |
| Trust Accounting (balance, entries) | Custom Fields on Account1:1 | Fully supported | |
| Debtor / Open Balance | Custom Fields on Account + Opportunity1:1 | Fully supported | |
| Hard Costs / Soft Costs | Custom Fields on Case or Account1:1 | Fully supported | |
| Matter Number / Internal Reference | Case.CaseNumber + Custom Field1:1 | Fully supported | |
| Person Assisting | Case.OwnerId + Custom Field1:1 | Fully supported | |
| Workflows | Flow1:1 | Mapping required |
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.
Smokeball gotchas
Document upload may not finish before Go Live
Data entry must halt during final LIVE migration cutover
Duplicate contacts are not detected during import
Closed and archived matters migrate after Go Live
Lower pricing tiers strip PDF functionality and auto time
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
Audit Smokeball data and design the matter-split strategy
We extract a full export of Smokeball data: staff, contacts, matters, activities, time entries, documents, and trust ledger entries. Our team reviews the matter types and decides per type whether the matter becomes a Case, an Account+Case pair, or an Account+Opportunity for billing-enabled matters. We map every staff member to a Salesforce User by email and flag any unmappable contacts (no email, no name) for your review. We also export Smokeball workflow definitions for reference rebuild in Salesforce Flow.
Create Salesforce schema (record types, page layouts, custom fields)
Before data moves, your Salesforce admin creates the RecordTypeId entries for each matter type, assigns page layouts per record type, and we create the custom fields identified in the mapping plan (Trust_Balance__c, Hard_Costs__c, Soft_Costs__c, Person_Assisting__c, Original_Matter_Number__c, Matter_Type__c, etc.). We deliver a schema setup checklist so the Salesforce side is ready before validation runs. This step also includes setting up ContentWorkspace libraries for document containers.
Resolve owners and create placeholder Accounts
Salesforce requires every Contact and Case to have an AccountId and OwnerId. We match Smokeball staff to Salesforce Users by email, flagging any unmatched owners for your team to either invite to Salesforce or assign to a fallback user. For Smokeball contacts without a parent organization, we create placeholder Accounts using the contact's name so Contact.AccountId resolves correctly. This step must complete before any records insert.
Run sample migration with field-level diff
A representative slice migrates first—typically 100–300 records spanning staff, contacts, matters, activities, time entries, and documents. We generate a field-level diff between the Smokeball export and the Salesforce records so you can verify owner resolution, Account creation for individual contacts, matter-split logic per type, and custom field population before the full run commits. Approval from your team on the sample diff is required before the full migration proceeds.
Execute full migration with delta-pickup window
The full migration runs in staged passes: (1) Users and Accounts, (2) Contacts with AccountId lookups, (3) Cases with RecordTypeId and owner assignment, (4) Activities and time entries linked to Cases, (5) Documents as ContentVersion + ContentDocumentLink. A delta-pickup window (24–48 hours) at cutover captures any Smokeball records created or modified during the migration run. FlitStack AI uses scoped read access on Smokeball throughout—so your team keeps billing in Smokeball during the cutover. Audit logs document every operation, and one-click rollback is available if reconciliation fails.
Platform deep dives
Smokeball
Source
Strengths
Weaknesses
Salesforce Sales Cloud
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 3 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 Smokeball and Salesforce Sales Cloud.
Object compatibility
3 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
Smokeball: Not publicly documented.
Data volume sensitivity
Smokeball 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 Smokeball to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Smokeball to Salesforce Sales Cloud migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Smokeball
Other ways to arrive at Salesforce Sales Cloud
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.