CRM migration
Field-level mapping, validation, and rollback between Actionstep and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Actionstep
Source
Twenty CRM
Destination
Compatibility
10 of 10
objects map 1:1 between Actionstep and Twenty CRM.
Complexity
BStandard
Timeline
72–120 hours
Overview
Actionstep structures its data around legal concepts: Matters as case files, Participants as parties with roles (client, opposing counsel, witness), Data Collections as matter-typed custom fields, and built-in legal accounting (trust transactions, billing). Twenty CRM uses a standard CRM schema: People for contacts, Companies for organizations, Opportunities for deals, Notes and Tasks for activities, and custom objects for anything beyond the standard set. The migration maps Actionstep's Matter records to Twenty Opportunities, Participant records to People with role data stored in a custom field, Data Collections to Twenty custom objects, and Documents to Notes attachments. Legal accounting data (trust accounts, billing ledgers) has no equivalent in Twenty and cannot be migrated. Workflow definitions, step automations, and document templates are configuration artifacts — FlitStack exports them as JSON and HTML documentation for your Twenty admin to rebuild using Twenty's visual Workflow builder. The migration uses Actionstep's REST API (200 records per page) to extract data and Twenty's CSV import with relation-by-ID referencing to land records in the correct order: Companies first, then People linked by companyId, then Opportunities linked to both.
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 Actionstep 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.
Actionstep
Matter
Twenty CRM
Opportunity
1:1Actionstep Matters map to Twenty Opportunities. Matter name becomes Opportunity name; Matter status maps to Opportunity stage; amount and close date carry over. Matter metadata (created date, last activity) preserved as custom datetime fields. The matter type determines which Twenty custom fields apply based on Data Collection mapping.
Actionstep
Participant
Twenty CRM
People
1:1Actionstep Participants map to Twenty People records. The Participant role (Client, Witness, Opposing Counsel, etc.) is preserved in a custom pick-list field (Participant_Role__c) on the People object. Each Participant's linked Matter becomes a task or note association in Twenty. Participants without email are migrated with name and phone only.
Actionstep
Data Collection (matter-type fields)
Twenty CRM
Custom Fields on Opportunity
1:1Actionstep Data Collections are matter-typed custom field groups. We map each Data Collection to a set of custom fields on the Twenty Opportunity object, prefixed by matter type (e.g., Litigation_Court_Name__c). Field types converted: text→STRING, number→NUMBER, date→DATETIME, pick-list→SELECT. Must-create fields in Twenty before migration.
Actionstep
Document / Attachment
Twenty CRM
Notes (with attachment)
1:1Actionstep documents attached to Matters or Participants migrate as Twenty Notes with the file re-uploaded as an attachment. File size limit 25MB per file (Twenty's default). Inline images in Word documents are downloaded and re-hosted as Note attachments. Document tags from Actionstep become Note body text headers.
Actionstep
Step / Task
Twenty CRM
Tasks
1:1Actionstep Steps within a Matter map to Twenty Tasks linked to the corresponding Opportunity. Step name becomes Task subject; step due date maps to due date; assignee resolves by email match to Twenty workspace members. Completed steps preserve completion date. Steps without a due date create Tasks with no due date field.
Actionstep
Actionstep User / Staff
Twenty CRM
WorkspaceMember
1:1Actionstep staff members map to Twenty Workspace Members. Resolution happens by email match — if the email exists in Twenty, the OwnerId links; if not, records assign to a designated fallback member and the Actionstep user ID is stored in a custom field for later reconciliation. Invite Actionstep users to Twenty before migration.
Actionstep
Custom Object (Builder object variables)
Twenty CRM
Custom Object
1:1Actionstep Builder object variables (from object models like as:action_participant or custom Data Collections) map 1:1 to Twenty Custom Objects. N:N relationships between object variables require a junction object in Twenty — we surface this in the mapping plan. Custom object records migrate last after all parent records exist.
Actionstep
Trust Account / Ledger
Twenty CRM
No Equivalent
1:1Actionstep's IOLTA trust accounting, client ledgers, and bill totals have no Twenty CRM equivalent — Twenty has no billing or accounting module. We export trust data as CSV for your finance team to load into a dedicated accounting tool. This data cannot be stored meaningfully in Twenty's CRM schema.
Actionstep
Workflow / Automation (step triggers, email templates)
Twenty CRM
No Equivalent — Export for Rebuild
1:1Actionstep step-based workflows, email triggers, and document automation templates do not migrate. FlitStack exports workflow definitions as a structured JSON file plus HTML documentation describing each trigger, condition, and action. Your Twenty admin uses this as a rebuild reference for Twenty's Workflow builder and Settings → Data Model.
Actionstep
Billing / Invoice
Twenty CRM
No Equivalent
1:1Actionstep bills, invoices, and payment records map to no Twenty CRM object — Twenty lacks a billing module. We export invoice and payment history as CSV. Firms needing integrated billing should pair Twenty with a dedicated legal billing tool post-migration; the invoice export serves as opening balances.
| Actionstep | Twenty CRM | Compatibility | |
|---|---|---|---|
| Matter | Opportunity1:1 | Fully supported | |
| Participant | People1:1 | Fully supported | |
| Data Collection (matter-type fields) | Custom Fields on Opportunity1:1 | Fully supported | |
| Document / Attachment | Notes (with attachment)1:1 | Fully supported | |
| Step / Task | Tasks1:1 | Fully supported | |
| Actionstep User / Staff | WorkspaceMember1:1 | Fully supported | |
| Custom Object (Builder object variables) | Custom Object1:1 | Fully supported | |
| Trust Account / Ledger | No Equivalent1:1 | Fully supported | |
| Workflow / Automation (step triggers, email templates) | No Equivalent — Export for Rebuild1:1 | Fully supported | |
| Billing / Invoice | No Equivalent1: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.
Actionstep gotchas
API is case-sensitive and requires exact casing
No system account access — API is user-centric
Rate limiting introduced April 2024 limits bulk export speed
Trust accounting transactions require special migration handling
Workflow automations are not API-exportable
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
Extract Actionstep data via paginated API
We authenticate to Actionstep using OAuth2 with a non-System Administrator user account (Actionstep requires user-context API access). Data is extracted in paginated batches of 200 records per request, respecting rate limits introduced April 2024. We pull: Matters, Participants, Documents, Steps, and all custom Data Collections. The sandbox environment is used first to validate extraction logic and record counts. Any records that fail extraction are retried up to 3 times with exponential back-off before being flagged in the extraction report.
Set up Twenty workspace and create custom fields
Before any data lands, we create all required custom fields in Twenty's Settings → Data Model: Participant_Role__c on People, Original_Open_Date__c and Source_System_ID__c on Opportunity, and any custom fields mapped from Actionstep Data Collections. Custom objects are created for any Builder object variables in Actionstep. Workspace members must be invited and accepted before the migration — if a Matter owner email does not match a Twenty member, the record is assigned to a fallback member and the Actionstep user ID is stored in a custom field. We deliver a setup checklist so your Twenty admin creates the schema before data import runs.
Sequence migration: Companies → People → Opportunities → Custom Objects
We run the migration in the load order Twenty requires: Companies first (using domain as the unique identifier), then People with companyId links resolved by email domain match, then Opportunities with companyId and linked People (via Opportunity contact roles), then Custom Objects. Participant roles are populated from the extracted role values into Participant_Role__c. Documents are attached to the corresponding Notes on their parent record. Steps are converted to Tasks linked to the corresponding Opportunity. Unresolved references (Participant with no company link, orphan Tasks) are logged and land as valid Twenty records without the unresolved relation.
Run sample migration with field-level diff
A representative sample (typically 200–500 records spanning multiple matter types, Participants, and Documents) migrates first. We generate a field-level diff comparing source values against destination values — checking that custom field mappings resolve correctly, that Participant roles populate the custom pick-list, that Documents attach to the right parent Notes, and that Owner resolution by email is complete. You review the diff and approve before the full migration commits. Any field mapping errors are corrected and the sample re-runs.
Execute full migration with delta-pickup window
The full migration runs against Twenty's CSV import (or API for large datasets). A delta-pickup window of 24–48 hours captures any Matters, Participants, or Documents modified or created in Actionstep during the cutover period. Audit log records every import operation. After cutover, we run a reconciliation report comparing record counts and field totals between Actionstep and Twenty. If reconciliation fails, one-click rollback reverts the Twenty workspace to its pre-migration state. We deliver the export-for-rebuild package (workflow JSON, document template list, trust account CSV) as a separate deliverable alongside the migrated CRM data.
Platform deep dives
Actionstep
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 Actionstep and Twenty CRM.
Object compatibility
1 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
Actionstep: Rate limiting introduced April 2024 — limits not publicly documented per endpoint; page size capped at 200 records per request.
Data volume sensitivity
Actionstep 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 Actionstep to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Actionstep 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 Actionstep
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.