CRM migration

Migrate from Smokeball to Twenty CRM

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

Smokeball logo

Smokeball

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

14 of 14

objects map 1:1 between Smokeball and Twenty CRM.

Complexity

BStandard

Timeline

48–96 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

Smokeball logo

Smokeball

What's pushing teams away

  • Billing issues appear in 22+ G2 reviews, with users reporting disorganization in invoicing, problems with payment routing, and hard/soft cost misalignments between Smokeball and integrated accounting software like Xero or MYOB.
  • Missing features frustrate users, particularly poor search functionality across documents and the absence of auto-save, which leads to lost work and wasted time re-entering data.
  • Software bugs cause real operational pain—duplicate documents appearing in containers, slow performance under load, and files failing to load after upload, each cited 14+ times on review platforms.
  • Collaboration limitations and cumbersome document import processes are cited as missing features, making it difficult for multi-attorney firms to share and organize files efficiently.
  • Integration issues with third-party software, particularly after major updates, cause connectivity failures with Outlook, LawPay, and accounting tools that disrupt billing workflows.

Choosing

Twenty CRM logo

Twenty CRM

What's pulling them in

  • Top open-source CRM on GitHub with 40.6K stars, giving teams full source code access and infrastructure ownership without per-feature licensing surprises.
  • Free self-hosting under AGPL-3.0 means unlimited users and custom objects for the cost of cloud infrastructure alone, typically $20–100/month.
  • Pricing page explicitly mocks competitors for charging add-on fees for API access, webhooks, and workflows — transparency that resonates with RevOps teams burned by Salesforce.
  • Unlimited custom objects and fields with no price impact, letting teams shape the data model to their business rather than forcing business into rigid schemas.
  • Modern TypeScript/React/PostgreSQL stack means developer-led teams can extend, self-host, or integrate without fighting legacy architecture.

Object mapping

How Smokeball objects map to Twenty CRM

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

maps to

Twenty CRM

People

1:1
Fully supported

Smokeball 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

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

Smokeball 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

maps to

Twenty CRM

Opportunity + Custom Fields

1:1
Fully supported

Smokeball 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

maps to

Twenty CRM

People (secondary)

1:1
Fully supported

Smokeball 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

maps to

Twenty CRM

No equivalent

1:1
Fully supported

Smokeball 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

maps to

Twenty CRM

File Attachment on related record

1:1
Fully supported

Smokeball 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

maps to

Twenty CRM

Note

1:1
Fully supported

Smokeball 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

maps to

Twenty CRM

Note + Custom Fields

1:1
Fully supported

Smokeball 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)

maps to

Twenty CRM

Task

1:1
Fully supported

Smokeball 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)

maps to

Twenty CRM

Custom Field (Twenty)

1:1
Fully supported

Smokeball 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

maps to

Twenty CRM

Custom Field (Practice_Area__c)

1:1
Fully supported

Smokeball 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

maps to

Twenty CRM

Custom Fields on Opportunity

1:1
Fully supported

Smokeball 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

maps to

Twenty CRM

None

1:1
Fully supported

Smokeball 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

maps to

Twenty CRM

None

1:1
Fully supported

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

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.

Smokeball logo

Smokeball gotchas

High

Document upload may not finish before Go Live

High

Data entry must halt during final LIVE migration cutover

Medium

Duplicate contacts are not detected during import

Medium

Closed and archived matters migrate after Go Live

Medium

Lower pricing tiers strip PDF functionality and auto time

Twenty CRM logo

Twenty CRM gotchas

High

Import order is enforced and critical

High

Export limited to 20,000 records and visible columns only

Medium

Soft-deleted records count toward uniqueness and trigger restores

Medium

API rate limits cap at 200 req/min on Organization tier

Low

No native email sequences — follow-up cadences require external tools

Pair-specific challenges

  • No native matter object in Twenty requires custom field reconstruction for legal context

    Smokeball's entire data model orbits the Matter — a practice-area work unit holding contacts, activities, documents, time entries, and trust-account data. Twenty CRM has no native matter equivalent; the closest standard object is Opportunity. We map Smokeball matters to Twenty Opportunities and reconstruct legal context (practice area, billing method, responsible attorney, court details) as custom fields on the Opportunity. Fields that have no clean equivalent (AutoTime detail, trust-account structure) are stored as custom fields or preserved as Note records with structured text. The mapping plan must be agreed before migration to ensure the custom field schema is created in Twenty first.

  • Trust-account and office-account balances have no native Twenty equivalent

    Smokeball separates client funds into trust accounts (held for clients) and office accounts (operational firm funds) with separate tracking of receipts, disbursements, and reconcile flows. Twenty CRM is a general CRM — it has no trust-accounting model. We migrate open trust balances and account identifiers as read-only custom monetary fields on the Opportunity for historical reference, but firms requiring active trust-account management need a dedicated legal accounting tool (Iolta, CosmoLex, or similar) alongside Twenty. The migration plan must clarify whether trust-account history (transaction-level) is needed or whether current balances only are sufficient for the firm's CRM use case.

  • Document containers (letterhead/templates) and TemplateLab automation do not transfer

    Smokeball's Document Containers define letterhead, headers, and footers used across all firm templates. TemplateLab automates document generation by inserting matter data fields into these containers. Neither Document Containers nor TemplateLab template definitions have any Twenty CRM equivalent. Document files themselves can be re-uploaded as file attachments on the migrated Opportunity records, but the template automation logic cannot be migrated. We export the TemplateLab field names and container configurations as a JSON reference file so your team can rebuild document templates in Microsoft Word mail-merge or a comparable tool after go-live. This is a manual step that should be scoped in the project plan.

  • Twenty CSV export caps at 20,000 records per file — large Smokeball databases require batched exports

    Twenty's built-in CSV export limits each file to 20,000 records. Smokeball databases for mid-size to large law firms commonly hold tens of thousands of contacts, activities, and matter-history records. For migrations exceeding this threshold, we run multiple exports split by object type (Contacts, Matters, Activities) and validate each batch independently before merging into the final Twenty workspace. The migration plan accounts for batch sequencing to maintain referential integrity across the object graph when records are imported in multiple passes.

  • Import order is enforced — companies must load before people, people before opportunities

    Twenty's CSV import requires that the 'one' side of every relational link exists before the dependent record is imported. This means Companies must be migrated and assigned Twenty IDs before People can be linked via companyId, and People must exist before Opportunities can reference them via personId. Smokeball's matter-centric model does not enforce this sequence natively, so the migration plan must order the data extraction accordingly. We extract Smokeball company data first, then person data, then matter and activity data, and validate that all foreign keys resolve correctly in Twenty before committing the full migration. Failing to respect this sequence results in orphaned records or import errors.

Migration approach

Six steps for a successful Smokeball to Twenty CRM data migration

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

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

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

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

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

Context on both ends of the pair

Smokeball logo

Smokeball

Source

Strengths

  • Automatic time tracking via AutoTime captures billable activity without manual entry, directly improving firm collection rates.
  • Comprehensive document automation with Smokeball Toolbar in Microsoft Word enables rapid generation of standardized legal precedents and letters.
  • Built-in trust accounting and reporting satisfy law firm regulatory requirements out of the box.
  • Exceptional customer support with dedicated Client Success Managers and UK-based telephone support keeps small firms operational.
  • AI assistant Archie and Outlook integration reduce context switching for attorneys managing client communications.

Weaknesses

  • Billing issues appear frequently in reviews, with payment routing and cost allocation problems requiring manual intervention.
  • Search functionality across documents and matters is a known pain point, making it difficult to locate historical files efficiently.
  • Auto-save is not available, risking data loss if attorneys forget to save manually during document work.
  • Collaboration features are limited, making Smokeball less suitable for large multi-office or multi-attorney firms requiring real-time co-authoring.
  • Price increases have been reported by existing customers, and lower tiers strip critical features like PDF functionality and automatic time tracking.
Twenty CRM logo

Twenty CRM

Destination

Strengths

  • AGPL-3.0 open-source license with full source code on GitHub — no vendor lock-in, no sunset risk.
  • Unlimited users and unlimited custom objects on self-hosted, with no feature gating based on headcount.
  • REST and GraphQL APIs available on all paid tiers, not locked behind an enterprise add-on fee.
  • MCP server and webhooks shipped as standard features, not premium upgrades.
  • Modern PostgreSQL-backed data model that developer teams can query, extend, and self-host.

Weaknesses

  • Recent v1.0 release means limited production hardening compared to CRMs with multi-year operational track records.
  • No native email sequencing or sales engagement tools — follow-up cadences require a separate platform.
  • No native two-way email sync or inbox integration, requiring third-party connectors for full activity logging.
  • Self-hosting 'free' pricing hides real infrastructure and DevOps costs that stack up over time.
  • Workflow automation is functional but lacks the complexity needed for sophisticated multi-step sales motions.

Complexity grading

How hard is this migration?

Standard CRM migration. 3 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 Smokeball and Twenty CRM.

  • Object compatibility

    B

    3 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

    Smokeball: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Smokeball to Twenty CRM 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 Smokeball to Twenty CRM data migrations

Answers to the questions buyers ask most during Smokeball to Twenty CRM migration scoping. Not seeing yours? Book a call.

Can't find your answer?

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 consultation

Most Smokeball-to-Twenty migrations complete in 48–96 hours of clock time for under 5,000 records. Small firms with fewer custom fields and minimal document history can see a full run in 24–48 hours. Larger firms with 20,000+ records, multiple matter types, or large document attachments extend to 4–7 days. The planning and audit phase adds another 3–5 business days before migration starts.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Smokeball.
Land in Twenty CRM, 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