CRM migration
Field-level mapping, validation, and rollback between Smokeball and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Smokeball
Source
Twenty CRM
Destination
Compatibility
14 of 14
objects map 1:1 between Smokeball and Twenty CRM.
Complexity
BStandard
Timeline
48–96 hours
Overview
Smokeball organizes law-firm data around Matters — a practice-area-specific work unit that holds contacts, activities, documents, time entries, and trust-account relationships. Twenty CRM is a general-purpose CRM with standard People, Companies, Opportunities, Notes, and Tasks objects plus a custom-object model. The two data models diverge significantly: Smokeball's matter-centric architecture has no direct Twenty equivalent, and legal-specific fields like practice area, billing method, and trust-account balances require custom fields in Twenty. FlitStack AI migrates Smokeball data by first auditing contacts, matters, staff, activities, and documents. We build a field-level mapping document that handles the structural translation: Smokeball contacts become Twenty People, matters become Opportunities with custom fields for legal context, activities become Tasks, and documents are re-uploaded as file attachments. Time entries and trust-account relationships are preserved as notes or custom fields since they have no native Twenty equivalent. We sequence the migration so Companies load first (the 'one' side of relationships), then People, then Opportunities — respecting Twenty's foreign-key import order. A sample migration with field-level diff runs first; the full cutover captures in-flight changes via a delta window; and an audit log documents every record migrated.
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 Twenty CRM, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Smokeball
Contact
Twenty CRM
People
1:1Smokeball contacts map directly to Twenty People via a one-to-one field correspondence. Each contact's primary matter association is stored as a custom field (Primary_Matter_Number__c) that links the People record to the corresponding Opportunity in Twenty. For multi-contact households or legal parties represented as a single contact in Smokeball, we expand these into individual People records to maintain accurate contact granularity in the general CRM model.
Smokeball
Staff
Twenty CRM
WorkspaceMember
1:1Smokeball staff records containing first name, surname, email, employment status, and salutation map directly to Twenty WorkspaceMembers. The email address serves as the unique identifier for matching staff across systems. Staff records lacking email addresses cannot auto-resolve to Twenty WorkspaceMembers — these are flagged during the audit phase for manual assignment before the migration commits.
Smokeball
Matter
Twenty CRM
Opportunity + Custom Fields
1:1Smokeball matters have no native Twenty equivalent — the closest object is Opportunity. We map matter description to Opportunity name, open-debtor balance to a custom monetary field, and matter type to a custom pick-list field (Practice_Area__c). The matter number is preserved as a custom text field for traceability.
Smokeball
Other Side / Opposing Party
Twenty CRM
People (secondary)
1:1Smokeball captures opposing parties or 'other side' contacts associated with a matter as separate contact records. These map to Twenty People with a custom role field (Party_Role__c) set to 'Opposing Party' or 'Other Side' depending on the Smokeball classification. This preserves the adversarial context specific to legal matters while maintaining a standard People record in Twenty's general CRM model.
Smokeball
Document Container
Twenty CRM
No equivalent
1:1Smokeball Document Containers (letterhead/header templates) have no Twenty CRM equivalent. Document containers cannot be migrated — we export the container configuration as a JSON reference file so your team can rebuild letterhead templates in Word mail-merge or a third-party document tool post-migration.
Smokeball
Document / File Attachment
Twenty CRM
File Attachment on related record
1:1Smokeball documents attached to matters map to Twenty file attachments on the corresponding Opportunity record. Files are re-uploaded via Twenty's attachment API using the original filename and any document-type label preserved as custom metadata on the attachment record. This maintains the document-to-matter relationship without requiring manual re-association after migration.
Smokeball
Note
Twenty CRM
Note
1:1Smokeball notes attached to matters map to Twenty Notes linked to the corresponding Opportunity record. Original create timestamps are preserved to maintain historical context. Rich-text formatting is converted to plain text where the Twenty field type does not support HTML markup, ensuring the note content remains readable without formatting dependencies.
Smokeball
Time Entry / AutoTime
Twenty CRM
Note + Custom Fields
1:1Smokeball time entries (AutoTime records linked to matter activities) have no native Twenty equivalent. We preserve them as Notes on the Opportunity with custom fields capturing the billing details: Time_Entry_Hours__c records the hours worked, Billing_Rate__c stores the applicable rate, and Billing_Method__c captures the fee arrangement from the originating matter record.
Smokeball
Activity (call, email, task)
Twenty CRM
Task
1:1Smokeball activities — including logged calls, emails, and administrative tasks from the Activity feed — map to Twenty Tasks attached to the relevant Opportunity or People record. Original timestamps are preserved to maintain the activity chronology. Assigned staff members are resolved via email match to Twenty WorkspaceMember records, ensuring accountability carries forward without manual reassignment.
Smokeball
Custom Field (Smokeball)
Twenty CRM
Custom Field (Twenty)
1:1Smokeball custom fields defined on contacts and matters are identified during the audit phase when the full data model is extracted. Each custom field is created as a Twenty custom field on the corresponding target object before migration begins, then populated with Smokeball source values during the data load to preserve all firm-specific data captured in the legacy system.
Smokeball
Matter Type / Practice Area
Twenty CRM
Custom Field (Practice_Area__c)
1:1Smokeball matter types (personal injury, family law, real estate, civil litigation, business law, and 200+ others) are captured as a custom pick-list field on the Opportunity object. Each Smokeball matter type value is created as a pick-list option in Twenty.
Smokeball
Trust Account / Office Account
Twenty CRM
Custom Fields on Opportunity
1:1Smokeball trust-account balances and office-account tracking have no native Twenty equivalent for active fund management. Open trust balances and account identifiers are migrated as read-only custom monetary fields on the Opportunity for historical reference. Firms needing full trust-accounting functionality should maintain a separate legal accounting tool; these custom fields provide CRM-level visibility without replicating accounting logic.
Smokeball
Workflow / Automation
Twenty CRM
None
1:1Smokeball matter-stage workflows and automated task sequences are legal-practice-specific constructs with no Twenty CRM equivalent. These cannot be migrated. We export the workflow definitions as a JSON reference document so your Twenty admin can rebuild them using Twenty's workflow builder or a third-party automation tool.
Smokeball
TemplateLab Templates
Twenty CRM
None
1:1Smokeball automated document templates built in TemplateLab — including field mappings to matter data and conditional logic — have no Twenty CRM equivalent and cannot be transferred. We extract all template field names and mapping configurations into a structured JSON reference file. Your team can use this to rebuild equivalent templates in Microsoft Word mail-merge or a comparable document-automation platform after migration.
| Smokeball | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact | People1:1 | Fully supported | |
| Staff | WorkspaceMember1:1 | Fully supported | |
| Matter | Opportunity + Custom Fields1:1 | Fully supported | |
| Other Side / Opposing Party | People (secondary)1:1 | Fully supported | |
| Document Container | No equivalent1:1 | Fully supported | |
| Document / File Attachment | File Attachment on related record1:1 | Fully supported | |
| Note | Note1:1 | Fully supported | |
| Time Entry / AutoTime | Note + Custom Fields1:1 | Fully supported | |
| Activity (call, email, task) | Task1:1 | Fully supported | |
| Custom Field (Smokeball) | Custom Field (Twenty)1:1 | Fully supported | |
| Matter Type / Practice Area | Custom Field (Practice_Area__c)1:1 | Fully supported | |
| Trust Account / Office Account | Custom Fields on Opportunity1:1 | Fully supported | |
| Workflow / Automation | None1:1 | Fully supported | |
| TemplateLab Templates | None1: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.
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
Twenty CRM gotchas
Import order is enforced and critical
Export limited to 20,000 records and visible columns only
Soft-deleted records count toward uniqueness and trigger restores
API rate limits cap at 200 req/min on Organization tier
No native email sequences — follow-up cadences require external tools
Pair-specific challenges
Migration approach
Audit Smokeball data and build the migration plan
We extract the full Smokeball data inventory: contacts, matters, staff, activities, documents, and custom fields. We assess data quality (duplicate rates, blank required fields, outdated records) and flag contacts without email addresses — those cannot auto-resolve to Twenty WorkspaceMembers. We deliver a data audit report that sets the migration scope, record counts, and a recommended cleanup pass before migration. This phase typically runs 3–5 business days depending on database size.
Design the field-level mapping and create Twenty custom fields
We map every Smokeball field to a Twenty field or custom field. For legal-specific data without a native Twenty equivalent (practice area, billing method, responsible attorney, court details, trust-account identifiers), we define custom fields on the Opportunity object before migration. The mapping document is reviewed and approved before any data moves. Twenty's custom field creation runs in Settings → Data Model — we deliver the field schema so your admin can pre-create it, or we create it via the Twenty API.
Extract, transform, and sequence the data load
We pull Smokeball data via API or structured CSV export. Data is transformed per the approved mapping: time entries become Notes with custom hour/rate fields, matter-stage activities become Tasks, document containers are exported as a JSON reference (not migrated). The load follows Twenty's import order: Companies first, then People (linked to Companies), then Opportunities (linked to People and Companies), then Tasks and Notes. Document files are staged for re-upload after the records land in Twenty. Each batch respects Twenty's 20,000-record export limit for large datasets.
Run a sample migration with field-level diff
A representative sample — typically 200–500 records spanning contacts, matters, activities, and documents — migrates first. We generate a field-level diff report showing every source field, its destination value, and any transformation applied. You verify that practice-area custom fields, matter numbers, billing-method values, and activity timestamps map correctly before the full run commits. Any mapping corrections are applied before proceeding.
Execute full migration with delta pickup and post-migration reconciliation
The full dataset migrates to Twenty. A delta-pickup window (24–48 hours) captures any records created or modified in Smokeball during the cutover period. After migration, we run a reconciliation report comparing record counts by object type between Smokeball and Twenty. Document files are re-uploaded as attachments to the corresponding Opportunity records. We deliver a full migration audit log and a rollback snapshot. If reconciliation fails, one-click rollback reverts the Twenty workspace to its pre-migration state.
Platform deep dives
Smokeball
Source
Strengths
Weaknesses
Twenty CRM
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 Twenty CRM.
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 Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Smokeball to Twenty CRM 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 Twenty CRM
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.