CRM migration
Field-level mapping, validation, and rollback between improveit 360 and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
improveit 360
Source
Twenty CRM
Destination
Compatibility
11 of 11
objects map 1:1 between improveit 360 and Twenty CRM.
Complexity
BStandard
Timeline
48-72 hours
Overview
improveit 360 is built on Salesforce Lightning, which means it inherits Salesforce's full object model: Accounts, Contacts, Leads, Opportunities, Cases, Tasks, Events, and custom objects with the __c suffix. Twenty CRM ships with four standard objects — People, Companies, Opportunities, and Tasks — plus custom objects on Pro and Organization plans. The migration must translate Salesforce's relational structure (Contacts require AccountId, Opportunities require AccountId and may use Contact Roles) into Twenty's simpler model where Opportunities link directly to Companies and People. We extract improveit 360 data via Salesforce's Bulk API or REST API (depending on volume), transform field names and pick-list values, and load into Twenty via CSV import or GraphQL API. Project management data (jobs, schedules, payments) has no Twenty equivalent — we surface this as a migration decision point and can build custom objects in Twenty to preserve the data if needed. Workflows, automations, approval processes, and Salesforce Flow logic do not migrate and must be rebuilt in Twenty's workflow builder or documented for manual recreation. Reports and dashboards cannot migrate — the underlying data does transfer, but visualization configuration requires rebuild in Twenty's reporting interface.
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 improveit 360 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.
improveit 360
Contact
Twenty CRM
People
1:1Salesforce Contact maps to Twenty People. All standard fields (name, email, phone, job title, address) transfer directly. The AccountId lookup in Salesforce becomes companyId in Twenty — the parent Company record must import first so the foreign key resolves correctly.
improveit 360
Account
Twenty CRM
Company
1:1Salesforce Account maps to Twenty Company. Standard fields (name, website, industry, employee count, annual revenue) transfer directly. ParentId hierarchy in Salesforce — where an Account can have a parent Account — has no native equivalent in Twenty; we flatten to a single company per record and preserve parent linkage in a custom text field.
improveit 360
Lead
Twenty CRM
People
1:1Twenty has no native Lead object. All Salesforce Leads migrate to Twenty People with a custom lead_status field capturing the original Lead Status value. The original isConverted flag and convertedDate are preserved as custom fields if the Lead was previously converted to a Contact in improveit 360.
improveit 360
Opportunity
Twenty CRM
Opportunity
1:1Salesforce Opportunity maps to Twenty Opportunity on a 1:1 basis. Deal name becomes Opportunity name, amount transfers as amount, close date maps to closeDate, and stage maps to stage. Stage probability and forecast category do not transfer — Twenty's Opportunity object does not have native probability fields.
improveit 360
Task
Twenty CRM
Task
1:1Salesforce Tasks (calls, to-dos, follow-up items) migrate to Twenty Tasks. Subject, status, priority, due date, and description transfer directly as standard fields. The WhoId (Contact or Lead reference) resolves to the migrated People record via the source system ID stored in Source_System_ID__c, maintaining the original activity attribution across both systems.
improveit 360
Event
Twenty CRM
Task
1:1Salesforce Events (meetings, appointments) convert to Twenty Tasks because Twenty has no native calendar Event object. The meeting subject becomes the Task subject, start time becomes due date, and the original duration is preserved in the description field. Activity history remains searchable in Twenty.
improveit 360
Note
Twenty CRM
Note
1:1Salesforce Notes migrate to Twenty Notes with the same body text. Rich-text formatting is preserved where Salesforce NoteBody supports it. Notes attached to Contacts, Accounts, or Opportunities link to the migrated People, Company, or Opportunity record via the stored source system ID.
improveit 360
Attachment
Twenty CRM
Attachment (via file re-upload)
1:1Salesforce Attachment records (files attached to records) have no direct Twenty equivalent. During migration, we download all attachment files to local storage, then re-upload them to Twenty's file storage system. After upload completes, we recreate the original attachment links on the corresponding People, Company, or Opportunity record using the stored source system ID cross-reference to ensure proper association.
improveit 360
Custom Object __c
Twenty CRM
Custom Object
1:1improveit 360 custom objects (configured in Salesforce) migrate to Twenty custom objects. Custom object names are preserved. Custom field creation must happen in Twenty Settings → Data Model before the migration runs — we deliver a schema setup checklist as part of the migration plan.
improveit 360
Project (improveit 360 specific)
Twenty CRM
Custom Object
1:1improveit 360's project management objects (jobs, schedules, cost tracking, payments) are not native Salesforce objects — they are improveit 360-specific configurations. We audit which project objects exist in your instance and surface them as custom object candidates for Twenty. If your team uses these heavily, we recommend building them as Twenty custom objects post-migration.
improveit 360
User (Owner)
Twenty CRM
Workspace Member
1:1Salesforce Users who own records resolve to Twenty Workspace Members by email match. The Twenty workspace must have users invited and active before migration so owner assignments can link correctly. Unmatched owners are flagged and assigned to a fallback user on your instruction.
| improveit 360 | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact | People1:1 | Fully supported | |
| Account | Company1:1 | Fully supported | |
| Lead | People1:1 | Fully supported | |
| Opportunity | Opportunity1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Event | Task1:1 | Fully supported | |
| Note | Note1:1 | Fully supported | |
| Attachment | Attachment (via file re-upload)1:1 | Fully supported | |
| Custom Object __c | Custom Object1:1 | Fully supported | |
| Project (improveit 360 specific) | Custom Object1:1 | Fully supported | |
| User (Owner) | Workspace Member1: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.
improveit 360 gotchas
No public REST API documented for data export or import
Minimum user requirement of 15 full-time seats
Duplicate prevention rules silently block imported records
Custom reports and dashboards do not transfer via standard export
Pipeline stage names are per-customer configurable
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 improveit 360 Salesforce instance and scope custom fields
FlitStack connects to your improveit 360 Salesforce instance via Bulk API or REST API (chosen by record volume) and exports the full object inventory: Contacts, Accounts, Leads, Opportunities, Tasks, Events, Notes, Attachments, and all custom objects with __c suffix. We generate a custom field manifest listing every custom field, its type, pick-list values, and whether it is required. This manifest becomes the pre-migration checklist for setting up Twenty's data model before import begins.
Create Twenty workspace and set up custom fields
Using the custom field manifest from Step 1, your team creates all required custom fields in Twenty Settings → Data Model before data lands. FlitStack delivers a field creation guide with exact names, types, and pick-list options. If your Twenty plan is Pro or Organization, we also map custom object names and create the object definitions. Workspace members must be invited and active so owner resolution can match improveit 360 Users to Twenty members by email.
Migrate Companies first, then People, then Opportunities
Twenty requires the 'one' side of relationships to exist before the 'many' side imports. We sequence the migration: Companies (Accounts) first because People require companyId and Opportunities require companyId. Leads and Contacts migrate as People records in a single pass with a was_lead__c flag on former Leads. Opportunities link to the migrated Company records via the stored Source_System_ID__c cross-reference table. Attachments are downloaded during this phase and staged for re-upload.
Run sample migration with field-level diff
A representative slice of 100-500 records — spanning Contacts, Accounts, Opportunities, and a sample of activity history — migrates first. We generate a field-level diff showing every source field, its Twenty destination, the transferred value, and any fields that were skipped or transformed. You verify stage mapping, owner resolution, companyId linkage, and custom field population before the full run commits. This is the validation gate before any bulk operation.
Execute full migration with delta-pickup window
The full record set migrates in sequence. During the cutover window (typically 24-48 hours), your team continues working in improveit 360. FlitStack captures a delta export of all records modified or created after the initial migration snapshot and applies those changes to Twenty. Attachments re-upload to Twenty's file storage. An audit log records every operation. If reconciliation fails, one-click rollback reverts the Twenty workspace to its pre-migration state so you can remap and retry.
Platform deep dives
improveit 360
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 improveit 360 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
improveit 360: Not publicly documented.
Data volume sensitivity
improveit 360 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 improveit 360 to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your improveit 360 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 improveit 360
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.