CRM migration
Field-level mapping, validation, and rollback between Smart CRM Online and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Smart CRM Online
Source
Twenty CRM
Destination
Compatibility
8 of 11
objects map 1:1 between Smart CRM Online and Twenty CRM.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Moving from Smart CRM Online to Twenty CRM is a structural migration that trades a minimal, entry-level CRM for an open-source platform with full data ownership, custom object support, and a TypeScript SDK for extensibility. Smart CRM Online has no documented API, so we extract via native CSV export and handle the relational flattening that CSV produces: Deal records reference a Company ID or Contact name rather than a structured parent-child link. We reconstruct those associations during import by matching identifiers. Twenty requires custom fields and custom objects to be created in Settings before import, so we audit the Smart CRM Online schema during discovery and pre-provision the destination fields before any data loads. We do not migrate workflows, automations, or custom configurations; we deliver a written inventory of these for the customer to rebuild in Twenty's workflow builder. Activity logs (calls, emails, meetings) attach to Contact or Deal records in Smart CRM Online and migrate to Twenty Task and Event records linked to the reconstructed Person and Opportunity records.
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 Smart CRM Online 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.
Smart CRM Online
Contact
Twenty CRM
Person
1:1Smart CRM Online Contact records map to Twenty Person. We extract name, email, phone, and company association from the CSV. Since the CSV flattens Company references to an ID or name string, we import Companies first and resolve the Company ID to the Twenty Company record ID before inserting each Person. Any Contact without a matching Company receives a placeholder Company record to avoid orphaned Person entries. Tags attached to a Contact in Smart CRM Online migrate as comma-separated text to the Person's standard tags field or a custom multi-select field pre-created during schema setup.
Smart CRM Online
Company
Twenty CRM
Company
1:1Smart CRM Online Company records map to Twenty Company. We import Companies before Persons to satisfy the foreign-key dependency. Domain, industry, employee count, address, and account owner fields map to their Twenty equivalents. Companies with no associated Contacts are retained as standalone Company records. If Smart CRM Online exports a Company record without a primary contact, we flag it for the customer to confirm whether to create a placeholder Person or leave the Company unattached.
Smart CRM Online
Deal
Twenty CRM
Opportunity
1:1Smart CRM Online Deals map to Twenty Opportunity. The deal name, value, close date, stage, and owner map to Opportunity.name, amount, closeDate, stage, and accountOwner respectively. The stage value is mapped using the stage rename table defined during discovery. Deals without a linked Company in the CSV are assigned to the most recently created Company record matching the Contact name, or held in a reconciliation queue if no match is found.
Smart CRM Online
Pipeline Stage
Twenty CRM
Opportunity Stage
lossySmart CRM Online pipeline stages are configurable and export with the Deal record. We extract the full ordered list of stages during discovery, map each to a Twenty Opportunity stage with matching order, and configure the stage probability if Smart CRM Online stores it. Custom stage names are preserved verbatim unless they exceed Twenty's field length, in which case we truncate and flag the change.
Smart CRM Online
Activity: Call
Twenty CRM
Task (TaskSubtype = Call)
1:1Smart CRM Online call logs associate with Contact or Deal records. We migrate them as Twenty Task records with the call subtype set, preserving the call disposition, duration, and timestamp. The Task is linked to the migrated Person or Opportunity record using the reconstructed association. If the original Contact or Deal cannot be resolved, the Task is linked to the closest matching Company record.
Smart CRM Online
Activity: Email
Twenty CRM
Task (note type)
1:1Smart CRM Online email engagement records migrate as Twenty Task records with the email body preserved in the task body field. Subject, timestamp, and direction (sent or received) are stored as separate task fields. The task is linked to the Person record when the email is Contact-scoped. Email attachments are not included in the standard migration scope; they require a separate file-handling engagement.
Smart CRM Online
Activity: Meeting
Twenty CRM
Event
1:1Smart CRM Online meeting records map to Twenty Event with start time, end time, location, and description preserved. The meeting is linked to the Person record for Contact-scoped meetings or to the Opportunity for Deal-scoped meetings. Attendee names are stored in the event description field rather than as EventRelation records, since the CSV does not include structured attendee references.
Smart CRM Online
Note
Twenty CRM
Note
1:1Smart CRM Online Notes attached to Contact or Deal records migrate as Twenty Note records. We preserve the note body, author (mapped to the owner by email match), and creation timestamp. Notes are linked to the parent Person or Opportunity using the identifier resolution built during the Contact and Deal import phases. Notes without a resolvable parent are attached to the closest matching Company record.
Smart CRM Online
Custom Properties
Twenty CRM
Custom Fields
lossySmart CRM Online permits custom fields per object, but no public schema documentation exists. During discovery we request a full data export, compare field names against the standard object schema, and identify which fields are custom. We pre-create every custom field in Twenty's Settings → Data Model before the import run. Unmapped custom fields are presented to the customer for explicit mapping decisions. Fields with picklist values in Smart CRM Online are created as select fields in Twenty with the same options.
Smart CRM Online
Owner
Twenty CRM
User
1:1Smart CRM Online Owners referenced on Contact, Company, and Deal records are resolved by email match against the Twenty workspace User table. The customer must invite all team members to Twenty and confirm their acceptance before we run the migration, because Twenty requires users to exist before record imports can reference them as accountOwner. Owners without a matching Twenty User are held in a reconciliation queue for manual provisioning.
Smart CRM Online
Tag
Twenty CRM
Multi-Select Picklist
lossyTags on Contact or Company records in Smart CRM Online are extracted as a list and stored in a pre-created multi-select picklist field on the Person or Company object in Twenty. The customer chooses during scoping whether to preserve all tags or consolidate to a core set. Tags used for classification rather than CRM association are migrated as Topic records with TopicAssignment linking.
| Smart CRM Online | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact | Person1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Pipeline Stage | Opportunity Stagelossy | Fully supported | |
| Activity: Call | Task (TaskSubtype = Call)1:1 | Fully supported | |
| Activity: Email | Task (note type)1:1 | Fully supported | |
| Activity: Meeting | Event1:1 | Fully supported | |
| Note | Note1:1 | Fully supported | |
| Custom Properties | Custom Fieldslossy | Mapping required | |
| Owner | User1:1 | Fully supported | |
| Tag | Multi-Select Picklistlossy | 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.
Smart CRM Online gotchas
No documented API endpoint for programmatic migration
Relational flattening in CSV export breaks object associations
Custom field schema not published, requiring discovery-phase manual audit
No published pricing page creates billing-model ambiguity
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
Discovery and export validation
We audit the Smart CRM Online account by requesting a full data export covering Contacts, Companies, Deals, Pipeline Stages, Activities (calls, emails, meetings, notes), Tags, and any custom fields. We validate the CSV completeness: column headers, row counts per object, and whether relational fields (Company ID, Contact reference) are present. We request a second export to confirm no data changed between discovery and the migration snapshot. Any objects or fields missing from the export are flagged for manual data retrieval or customer confirmation that the data does not need migration.
Schema audit and Twenty field pre-creation
We compare every column in the Smart CRM Online export against the standard object schema to identify custom fields. We present the custom field list to the customer with a naming and typing recommendation for Twenty. We create all confirmed custom fields and any custom objects in Twenty's Settings → Data Model before any import runs. We also configure the pipeline stages and stage order in Twenty during this phase so the stage dropdown is ready when Opportunities are imported.
User provisioning and Owner reconciliation
The customer invites all team members to Twenty and confirms acceptance. We extract every distinct Owner email from the Smart CRM Online export and match against the Twenty User list. Owners without a matching Twenty User are placed in a reconciliation queue. The customer's admin provisions missing users or confirms that records should be assigned to a placeholder owner. Migration does not proceed past this step until Owner resolution is complete.
Multi-phase import in dependency order
We run the import in this order: Companies (first, to establish the ID lookup table), Persons (with Company ID resolved from the lookup), Opportunities (with Person and Company lookups resolved), and Activity history (Tasks, Events, Notes linked to the migrated records). Each phase emits a row-count reconciliation report. Tags are imported as the final step per object, attached to the existing records. Custom field data is loaded in the same pass as the parent object, populating the pre-created fields.
Cutover and validation
We freeze writes in Smart CRM Online during the final cutover window, run a delta export for any records modified since the initial snapshot, apply the delta to Twenty, and confirm record counts match. The customer spot-checks 25 to 50 records across Contacts, Companies, and Deals for data accuracy. We deliver a written migration summary with record counts per object, any unmigrated records, and a list of fields that were truncated or transformed. We do not migrate workflows or automations; we deliver a written inventory of these for the customer's admin to rebuild in Twenty's workflow builder.
Platform deep dives
Smart CRM Online
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 Smart CRM Online 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
Smart CRM Online: Not publicly documented.
Data volume sensitivity
Smart CRM Online 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 Smart CRM Online to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Smart CRM Online 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 Smart CRM Online
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.