CRM migration

Migrate from solve 360 to Twenty CRM

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

solve 360 logo

solve 360

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

73%

8 of 11

objects map 1:1 between solve 360 and Twenty CRM.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Solve 360 to Twenty CRM is a schema restructuring migration. Solve 360 uses a single unified record model where people, companies, and work live on one entity; Twenty uses the standard Person and Company split with related Opportunities, Tasks, and Events. We resolve that structural difference during scoping, decompose each Solve 360 record into its Twenty constituents, and preserve the relationship links (who owns what, which person belongs to which company, which task is linked to which record). Solve 360 has no self-serve bulk export, so we read from the REST API using customer credentials or request assisted export from Norada client engineers. Workflow automations are exported as structured configuration JSON and do not migrate to Twenty's Workflow engine; we deliver a written inventory for the customer to rebuild manually. Attachments are downloaded and re-uploaded to Twenty with parent-record resolution so that the file association survives the move.

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

solve 360 logo

solve 360

What's pushing teams away

  • The feature set lags behind HubSpot, Zoho, and Salesforce as teams scale, prompting upgrades to platforms with broader ecosystem integrations and app marketplaces.
  • Mobile apps are limited to web-responsive or basic native wrappers; users expecting a full-featured native mobile experience outgrow the offering and move to better-supported alternatives.
  • Only 17 verified G2 reviews indicate a small and potentially declining user base, which raises concerns about long-term product investment and support responsiveness.
  • Custom field limits and a comparatively basic API mean growing teams with complex data models eventually migrate to CRMs with more flexible schema design.

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 solve 360 objects map to Twenty CRM

Each row shows how a solve 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.

solve 360

Contact

maps to

Twenty CRM

Person

1:1
Fully supported

Solve 360 Contacts map directly to Twenty Person records. Standard fields (name, email, phone, address) migrate with type preservation. Custom fields on the Contact record migrate as Twenty Person custom fields, which we pre-create via the /metadata GraphQL API before import. The Contact's linked Company becomes a Company record with the relationship preserved via the Person's companyLink field.

solve 360

Company

maps to

Twenty CRM

Company

1:1
Fully supported

Solve 360 Companies map to Twenty Company records. Company name, domain, and address fields migrate directly. Custom fields on the Company record pre-create as Twenty Company custom fields via the /metadata API. If the same company domain appears across multiple Contact records in Solve 360, we deduplicate by domain and attach all Persons to the single Company record in Twenty.

solve 360

Task

maps to

Twenty CRM

Task

1:1
Fully supported

Solve 360 Tasks map to Twenty Task records with Status, Priority, due date, and assignee preserved. The Task's linked Contact or Company becomes the Task's TaskTargetable record (Person or Company) via the Twenty activity model. Time tracking data from Solve 360 Task entries migrates as Twenty Task custom fields capturing duration, billing flag, and time-entry date.

solve 360

Follow-up

maps to

Twenty CRM

Task or Event

1:1
Fully supported

Solve 360 Follow-ups are time-stamped activity entries tied to a Contact or Company. If the Follow-up has a scheduled date without a duration, we migrate it as a Twenty Event with StartDateTime and EndDateTime set to the Follow-up timestamp. If it has a duration, we migrate it as a Task with the completion date preserved. The original Follow-up type and notes migrate as Task description.

solve 360

Support Request

maps to

Twenty CRM

Task or Custom Object (Case)

lossy
Fully supported

Solve 360 Support Requests track issues end-to-end against a Contact or Company. We migrate Support Requests as Twenty Tasks linked to the Person or Company record, with status transitions preserved in Task custom fields. If the customer uses a dedicated support workflow, we can create a Case custom object in Twenty matching the Support Request schema, which requires pre-creating the custom object via the /metadata API before import.

solve 360

Time Record

maps to

Twenty CRM

Task (custom fields)

1:1
Fully supported

Solve 360 Time Records attach to Tasks, Site Notes, Calls, and Meetings with duration, date, billing flag, and parent object. We flatten time records into the parent Task record as custom fields (time_duration_minutes, time_billing_flag, time_entry_date). The association to the parent object is preserved via the TaskTargetable relationship on the Twenty Task.

solve 360

Pipeline Stage

maps to

Twenty CRM

Opportunity Stage

lossy
Fully supported

Solve 360 Pipelines and their stages are configurable. We export the full pipeline structure (stage names, order, probabilities) and create matching Opportunity stages in Twenty via the /metadata API before Opportunity import. Each stage maps as a Stage field on the Twenty Opportunity object with the original probability preserved as a custom field.

solve 360

User

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

Solve 360 Users are both system actors and assignment targets. We export the user list and map owner IDs to Twenty WorkspaceMember records by email match. Any Solve 360 owner without a matching Twenty WorkspaceMember goes to a reconciliation queue for the customer to provision before record import resumes. Inactive Solve 360 users are mapped as inactive WorkspaceMembers in Twenty.

solve 360

Custom Field

maps to

Twenty CRM

Custom Field

lossy
Fully supported

Solve 360 supports user-defined custom fields on Contacts and Companies with types including text, number, date, and selection. We export field definitions and values, then create matching custom fields on the Twenty Person or Company object via the /metadata API with the correct field type (text, number, date, select). Selection fields with multiple options migrate as Twenty select fields with the original option values preserved.

solve 360

Tag

maps to

Twenty CRM

Tag

1:1
Fully supported

Solve 360 Tags label Contacts, Companies, and other records. We export all tag values and re-apply them as Twenty native tags on the Person, Company, or Task record. The tagging association per record is preserved using Twenty's tag API.

solve 360

Attachment

maps to

Twenty CRM

Attachment

1:1
Fully supported

Attachments on Contacts, Companies, Tasks, and Support Requests are downloaded as files and re-uploaded to Twenty via the GraphQL API, re-linked to the parent record (Person, Company, or Task) using the attachment's name, type, size, and upload date metadata. Files over 50 MB require chunked upload handling.

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.

solve 360 logo

solve 360 gotchas

Medium

Minimum 4-user billing floor applies to the CRM plan

Medium

No self-serve bulk export; API access is assisted

High

Two separate products: Solve CRM vs. Solve Client Manager

Low

Workflow automations are not portable between platforms

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

  • Single-record to Person-Company split requires relationship reconciliation

    Solve 360's core data model unifies people, companies, and work on a single record. Twenty uses the standard Person and Company split where each record type is separate. We decompose each Solve 360 record into its Person and Company constituents during the transform phase, preserving the relationship links that bind them. If a Contact in Solve 360 has no explicit Company link, we attempt to match by email domain and flag unmatched records for manual review. Migrations that skip this reconciliation step end up with orphaned Person records in Twenty that have no Company association.

  • No self-serve bulk export from Solve 360

    Solve 360 does not expose a documented bulk-export endpoint in a public developer portal. For small datasets we use the REST API with the customer's credentials. For accounts over 10,000 records we request an assisted export from Norada client engineers, which typically adds three to five business days to the project timeline. If the customer cannot obtain API credentials or Norada support is slow to respond, we fall back to the web UI export for smaller datasets only.

  • Solve CRM versus Solve Client Manager product distinction affects storage and schema

    Norada ships two products under the Solve 360 brand with different storage allocations and minimum user requirements. Solve CRM provides 150 GB pooled storage with a 4-user minimum; Solve Client Manager provides 25 GB per user with no minimum. Customers migrating from Client Manager to Twenty must reconcile the per-user storage model. Additionally, if the customer used both products and wants to consolidate both datasets into Twenty, the migration scope doubles and the storage implications differ between the two source products.

  • Workflow automations do not port between platforms

    Solve 360 Workflows encode automation logic specific to its engine (multi-step task sequences with intelligent scheduling and assignee notification). Twenty's Workflow engine uses triggers, conditions, and actions that are not structurally equivalent. We export workflow definitions as structured JSON configuration for reference and advise customers to treat automation migration as a redesign exercise. We allocate separate scoping time for the automation inventory document but do not rebuild workflows in Twenty as part of the migration scope.

  • Solve 360 has no native mobile app for CRM on iOS and Android

    Solve CRM (the $25/user plan) offers only a mobile web app. Native iPhone, iPad, and Android apps are available only on the Solve Client Manager plan. Teams migrating from Solve Client Manager to Twenty gain full-featured native iOS and Android apps at no additional cost. This is a post-migration benefit rather than a migration risk, but it is worth noting if user adoption depends on mobile access.

Migration approach

Six steps for a successful solve 360 to Twenty CRM data migration

  1. Discovery and export method determination

    We audit the source Solve 360 account across product type (CRM vs Client Manager vs bundle), user count, record volumes for Contacts, Companies, Tasks, Follow-ups, Support Requests, and Time Records, custom field definitions, pipeline structures, and attachment file sizes. We determine the export method: REST API for accounts under 10,000 records with available API credentials, or assisted export from Norada client engineers for larger accounts. We also extract workflow definitions as structured JSON for the automation inventory document. The discovery output is a written migration scope with record counts, export method, and a Twenty edition recommendation (Pro at $9/user or Organization at $19/user).

  2. Twenty schema design and custom object creation

    We design the destination schema in Twenty. This includes creating custom fields on Person and Company (matched to Solve 360 custom fields via the /metadata GraphQL API), creating a Case custom object if Support Request migration is in scope, designing Opportunity stages matched to Solve 360 pipeline stages, and configuring any custom select field options. Twenty's metadata API computes the GraphQL schema automatically after we post the field definitions, which we validate before any data import begins.

  3. Sandbox migration and reconciliation

    We run a full migration into a Twenty sandbox or staging environment using production-like data volume. The customer's admin reconciles record counts (Persons in, Companies in, Tasks in, Activities in), spot-checks 20-30 random records against the Solve 360 source, and validates that relationship links (Person-Company, Task-Person) are intact. Any mapping corrections happen here before production migration begins. If the customer does not have a staging environment, we use a parallel workspace and validate before promoting to production.

  4. Owner reconciliation and WorkspaceMember provisioning

    We extract every distinct Solve 360 User referenced on Tasks, Follow-ups, and Support Requests and match by email against the Twenty workspace's WorkspaceMember list. Owners without a matching WorkspaceMember go to a reconciliation queue. The customer's admin provisions any missing WorkspaceMembers. Migration cannot proceed past this step because task assignments require a valid assignee reference in Twenty.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Companies (from Solve 360 Companies), Persons (from Solve 360 Contacts with Company link resolved), Opportunities (with stage and probability mapped), Tasks (with Person or Company TaskTargetable resolved), Follow-ups (as Task or Event), Support Requests (as Task or Case custom object), Time Records (as custom fields on parent Task), Tags (applied to each Person, Company, and Task via the tag API), and Attachments (downloaded from Solve 360 and uploaded to Twenty with parent record re-linked). Each phase emits a row-count reconciliation report before the next phase begins.

  6. Cutover, validation, and workflow inventory handoff

    We freeze writes to Solve 360 during cutover, run a final delta migration of any records modified during the migration window, then enable Twenty as the system of record. We deliver the workflow configuration JSON and automation inventory document to the customer's admin team. We support a three-day hypercare window where we resolve any reconciliation issues. We do not rebuild Solve 360 Workflows as Twenty Workflows inside the migration scope; that is a separate engagement or an internal admin task.

Platform deep dives

Context on both ends of the pair

solve 360 logo

solve 360

Source

Strengths

  • Per-user flat pricing with no usage-based surprises or hidden overage charges
  • Google Calendar and Gmail integration centralizes scheduling and communication context directly in the CRM record
  • Single-record data model eliminates duplicates by design, keeping people, companies, and work linked on one entity
  • Workflow automation handles multi-step task sequences with intelligent scheduling and assignment
  • Self-organizing dashboard surfaces team priorities in real time without manual status updates

Weaknesses

  • Only 17 verified G2 reviews suggests a small, niche user base with limited community resources and peer support
  • Feature set is narrower than HubSpot, Zoho, or Salesforce, limiting growth potential for teams that need advanced automation or marketplace integrations
  • API documentation is not prominently exposed; bulk data export may require assisted access rather than self-serve developer tooling
  • Minimum 4-user requirement locks out solo users and very small teams from the base plan
  • Native mobile apps are limited compared to competitors with full-featured iOS and Android clients
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. 2 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 solve 360 and Twenty CRM.

  • Object compatibility

    B

    2 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

    solve 360: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

Walk through your solve 360 to Twenty CRM migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between two and four weeks for accounts under 5,000 Contacts and 2,000 Tasks with no custom objects or large attachment sets. Migrations with complex relationship trees, Support Request histories, or large time record volumes (over 10,000 entries) move to four to six weeks because of file handling, parent-record resolution, and the assisted export timeline if Norada support is required. Solve 360 has no self-serve bulk export, so discovery and export method determination add two to five business days to the project start.

Adjacent paths

Related migrations to explore

Ready when you are

Move from solve 360.
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