CRM migration

Migrate from Sunbase Data to Twenty CRM

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

Sunbase Data logo

Sunbase Data

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

64%

7 of 11

objects map 1:1 between Sunbase Data and Twenty CRM.

Complexity

CModerate

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Sunbase Data to Twenty CRM is a multi-module extraction exercise followed by a data model redesign. Sunbase organizes records across separate CRM, Project, HR, and Financial modules with no unified export and no documented REST API, so data extraction relies on direct database access for enterprise deployments or manual CSV exports per module. Twenty CRM uses a simpler schema centered on Companies, People, Opportunities, Tasks, and Notes, with custom objects and fields configured in Settings before any import. We build a cross-module relationship map during discovery that connects Sunbase Contact IDs to Deal IDs, Project IDs to Work Order IDs, and Client IDs to the originating Contact, then import into Twenty's unified model. Automation workflows, pipeline boards, and stage-triggered actions do not migrate from Sunbase; we deliver a written automation inventory so your admin rebuilds triggers in Twenty. File attachments are not transferable via CSV and require a separate handling plan.

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

Sunbase Data logo

Sunbase Data

What's pushing teams away

  • Admin setup requires technical knowledge; non-programmers report significant difficulty configuring the platform without developer support.
  • Custom module configurations are not portable, making it difficult to evaluate alternatives or switch platforms without rebuilding workflows from scratch.
  • Pricing is opaque and negotiated per-customer, creating uncertainty during renewal and making cost comparison with alternatives difficult.
  • As the business scales, the platform's flexibility becomes a liability; complex setups are harder to maintain and audit without dedicated technical staff.
  • No publicly documented REST API limits integration options, pushing technically sophisticated teams toward platforms with better developer ecosystems.

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 Sunbase Data objects map to Twenty CRM

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

Sunbase Data

Contact

maps to

Twenty CRM

People

1:1
Fully supported

Sunbase Contact records (name, email, phone, address, plus industry-specific fields) map to Twenty People. Standard fields migrate directly. Sunbase custom fields on Contact require a pre-shared field manifest because the field definition metadata (name, type, validation) does not export alongside data. We validate that all custom field names in the manifest exist as configured fields in Twenty Settings → Data Model before the import phase begins.

Sunbase Data

Lead

maps to

Twenty CRM

People or Opportunity (classification required)

lossy
Fully supported

Sunbase captures leads through door-to-door sales forms, web capture, and manual entry. We classify Sunbase Leads by status: unqualified leads (no associated Deal, no follow-up scheduled) map to Twenty People as a standalone record; leads with an active deal or scheduled appointment map to Twenty People with a linked Opportunity. The customer defines the classification threshold during scoping based on their sales process.

Sunbase Data

Client

maps to

Twenty CRM

People or Company (based on type)

lossy
Fully supported

Sunbase Client records represent either individuals (homeowners) or organizations (property owners, general contractors). We inspect the client_type field during extraction and route individual clients to Twenty People and organizational clients to Twenty Company. The customer confirms the client type taxonomy during scoping because Sunbase does not enforce a strict type distinction.

Sunbase Data

Company (Sunbase CRM module)

maps to

Twenty CRM

Company

1:1
Fully supported

Sunbase CRM module Company records (distinct from organizational Client records) map directly to Twenty Company. The company domain or website becomes the lookup anchor. If both Sunbase Company and Sunbase Client (org type) exist for the same organization, we deduplicate during the transform phase by company name match and consolidate into a single Twenty Company record.

Sunbase Data

Deal

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Sunbase Deals (with pipeline stages, deal values, proposals, quotes, and stage history) map to Twenty Opportunity. The pipeline stage name maps to Opportunity stage. Sunbase pipeline configuration (visual sales boards, stage definitions) is non-exportable; we document the current stage names and probabilities from Sunbase during scoping and the customer configures the corresponding Opportunity stages in Twenty before migration. Closed-Won and Closed-Lost reasons migrate as custom fields.

Sunbase Data

Project

maps to

Twenty CRM

Custom Object (Project)

1:1
Fully supported

Sunbase Projects (installation or job-site operations with metadata, status, budget tracking, and linked Work Orders) have no direct Twenty standard object equivalent. We pre-create a Twenty custom object named Project via Settings → Data Model, define custom fields matching Sunbase project metadata, and import Projects as custom object records. Projects with multiple associated Work Orders maintain a lookup relationship that we resolve by Project ID during import.

Sunbase Data

Work Order

maps to

Twenty CRM

Custom Object (Work Order)

1:1
Fully supported

Sunbase Work Orders (permit info, task details, attachments, system specifications, employee assignments, and scheduling data) migrate to a Twenty custom object named Work Order. We pre-create the custom object schema including fields for permit number, system specifications, assigned crew, and status. Work Order links to Project via a lookup relationship resolved at import time. Attachments require separate handling (see gotchas).

Sunbase Data

Invoice

maps to

Twenty CRM

Custom Object (Invoice)

1:1
Fully supported

Sunbase Invoices (line items, payment status, and linkage to Project or Client) migrate to a Twenty custom object named Invoice. We preserve invoice number, issue date, due date, line item descriptions, amounts, and payment status. Invoices link to the originating Project or Client record via lookups resolved at migration time. Historical paid invoices migrate as records with a Paid status flag.

Sunbase Data

Employee

maps to

Twenty CRM

People (role-filtered)

1:many
Fully supported

Sunbase Employee records include HR data, crew assignments, and GPS location history. We split Employee into two migration targets: (1) people records for employees who are also sales contacts or client-facing (migrated to Twenty People with a role tag), and (2) a user provisioning list for employees who need Twenty user accounts. GPS trail data is bulk-exported where available and provided as a CSV attachment to the customer for manual use in Twenty; it does not map to a standard Twenty field.

Sunbase Data

Appointment

maps to

Twenty CRM

Task or Note

1:1
Fully supported

Sunbase Appointments (with dates, times, assigned contacts, and status) map to Twenty Task records with the scheduled date preserved in the due date field. The appointment description migrates as the Task body. Google Calendar linkage is not transferable; appointments land as Twenty records without a calendar sync. We flag calendar reconnection as a post-migration configuration step.

Sunbase Data

Document

maps to

Twenty CRM

Note (with manual re-upload plan)

lossy
Fully supported

Sunbase Documents (contracts, financing applications, permits) are binary files stored in the module. CSV import does not include file attachments. We extract file metadata (file name, upload date, associations to Contact, Deal, Project) as structured records and provide the customer with a document re-upload plan: either manual re-upload via Twenty's UI or API-based migration of the binary files. The customer chooses the approach during scoping.

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.

Sunbase Data logo

Sunbase Data gotchas

High

No publicly documented REST API or export endpoints

Medium

Module-level data isolation complicates bulk exports

High

Automation workflows and pipeline configurations are non-exportable

Medium

Custom fields lack a schema definition export

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

  • Sunbase has no documented REST API for programmatic export

    Sunbase Data does not publish a developer API or documented export endpoints. Data extraction relies on direct database access (enterprise migrations coordinated with Sunbase's technical team) or manual CSV exports from each module interface. Neither method captures relationship metadata between records. We coordinate with Sunbase during discovery to establish an extraction method, and we warn customers upfront that custom objects, automation rules, and internal IDs are not programmatically accessible. If direct database access is unavailable, we plan for manual exports as a fallback and factor additional scoping time into the estimate.

  • Custom field definitions do not export alongside data

    Sunbase supports custom fields within most objects, but the field definition metadata (field name, type, validation rules, display order) is not exported alongside the data values. We extract field values but cannot construct the destination schema without a customer-provided custom field manifest. We recommend a field-mapping session during scoping where the customer provides a list of all active custom fields, their types, and their current values. We then pre-create these in Twenty Settings → Data Model before any import begins.

  • Automation workflows and pipeline configurations are non-exportable

    Sunbase workflow automation rules (email triggers, task assignments, stage-change actions) and visual pipeline board configurations are stored in Sunbase's internal workflow engine and are not exposed via any export mechanism. We cannot migrate these as functional rules. During scoping, we document the automation logic manually from the source system and deliver a written inventory of every active workflow and pipeline stage so the customer can rebuild triggers in Twenty. Pipeline stage names and deal statuses migrate as data only.

  • Twenty requires pre-existing fields and accepted user invitations before import

    Twenty's CSV import creates records but not fields. All custom fields must exist in Settings → Data Model before any import. Additionally, any Owner or Assignee references in the source data require a matching Twenty User with an accepted invitation; otherwise the relation cannot be mapped. We enforce a pre-flight checklist: (1) all custom objects and fields created in Twenty, (2) all team members invited and their invitations accepted, (3) all Owner emails matched to Twenty User records. Migration cannot proceed past record import without this checklist cleared.

  • File attachments do not migrate via CSV

    Twenty's CSV import does not include binary file attachments. Documents, permits, contracts, and financing applications stored in Sunbase cannot be transferred through the standard import mechanism. We extract file metadata (file name, upload date, parent record association) as structured records and provide the customer with a re-upload plan. Options include manual re-upload via Twenty's UI, API-based file migration using Twenty's REST API, or a hybrid approach where we provide a mapped file list with parent-record references for the customer's admin to reconnect after manual upload.

Migration approach

Six steps for a successful Sunbase Data to Twenty CRM data migration

  1. Discovery and extraction method selection

    We audit all active Sunbase modules (CRM, Project, HR, Financial) and the data volume within each. We confirm whether direct database access is available via Sunbase's technical team or whether manual CSV exports are the extraction path. We extract a preliminary record count per object, inspect the cross-module relationship structure (Contact-to-Deal, Project-to-Work-Order, Client-to-Invoice), and identify any custom field usage via the customer-provided manifest. The discovery output is a written migration scope, an extraction method recommendation, and a cross-module relationship map.

  2. Schema design and relationship resolution plan

    We design the Twenty destination schema. For Sunbase standard objects (Contact, Deal, Lead, Company), we map to Twenty People, Opportunity, and Company. For Sunbase objects without direct equivalents (Project, Work Order, Invoice), we pre-create custom objects in Twenty Settings → Data Model. We define all custom fields with correct types, configure lookup relationships (Work Order → Project, Invoice → Project, Opportunity → Company), and create the relationship resolution table that maps Sunbase internal IDs to the import order. Schema is validated in a Twenty test workspace before any production data moves.

  3. Data extraction and cross-module mapping

    We execute the extraction method confirmed in Step 1. For direct database access, we run read-only queries against the Sunbase database targeting each object table with JOINs on relationship keys (Contact ID, Deal ID, Project ID, Client ID). For manual export fallback, we coordinate the CSV export from each module interface and provide a relationship linkage template that the customer completes to document which Contact IDs link to which Deal IDs and which Project IDs link to which Work Order IDs. We then merge the per-module exports using the linkage template. We flag any records with missing required relationships for customer resolution.

  4. Data transformation and quality cleanup

    We transform the extracted records to match the Twenty schema. This includes field name mapping, type validation (date formats, phone number standardization, email format checking), and duplicate detection. Sunbase records frequently contain duplicates introduced by separate entry across modules (the same Contact entered as both a CRM Contact and a Project-linked Contact); we run a dedupe pass using email and company name as match keys and present the customer with a duplicate resolution report. We also apply the custom field mapping using the customer-provided manifest and flag any Sunbase custom fields that do not have a corresponding Twenty field configured.

  5. Sandbox validation and relationship reconciliation

    We run a full migration into a Twenty test workspace using production-equivalent data volume. The customer reviews the imported People, Companies, Opportunities, and custom object records, spot-checks 25-50 records against the Sunbase source for field accuracy and relationship integrity, and validates that all Owner assignments resolved to existing Twenty Users. Any mapping corrections (wrong field, missing relationship, custom field not created) are addressed here. We do not proceed to production migration until the customer signs off on the Sandbox reconciliation.

  6. Production migration and cutover

    We run production migration in dependency order: Companies (first, as the anchor for lookups), People (with CompanyId resolved), Opportunities (with CompanyId and OwnerId resolved), custom object records (Projects, Work Orders, Invoices with relationship lookups resolved), and Tasks. Each phase emits a row-count reconciliation report. We freeze Sunbase writes during the cutover window, run a final delta migration of any records created or modified during the migration window, then hand off to the customer for go-live. We deliver the automation inventory document for the customer's admin to rebuild in Twenty and support a one-week hypercare window for reconciliation issues.

Platform deep dives

Context on both ends of the pair

Sunbase Data logo

Sunbase Data

Source

Strengths

  • Vertical fit for solar, roofing, and construction contractors — Sunbase bundles CRM, proposals, project management, scheduling, solar design, financial management, inventory, HR/payroll integration, and reporting in one platform
  • Door-to-door canvassing tools with route optimization, performance monitoring, and lead tracking purpose-built for field sales teams
  • Native CRM captures leads from website forms, D2D canvassing, and partner referrals into a unified pipeline with automated follow-ups and AI predictive analytics
  • Replaces multiple tools (CRM + proposals + scheduling + job tracking + reporting), with vendor claiming 11.6+ hours saved per week and 83% automation of manual tasks
  • Strong customer retention — testimonials cite 5+ year usage and 4.4/5 Capterra rating across 2,843 reviews

Weaknesses

  • Initial setup requires technical knowledge or vendor support — admin configuration is not self-serve
  • Onboarding takes weeks, not days, especially for non-technical users
  • Support response quality is inconsistent — some users praise it, others report delays
  • For commercial EPCs needing electrical engineering, Sunbase lacks automated SLD generation and wire sizing, forcing supplementation with other tools
  • Pricing transparency is limited — advertises '$59/user/month' starting rate but full tier structure and feature gating not published
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?

Moderate CRM migration. 1 of 8 objects need a manual workaround.

C

Overall complexity

Moderate migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Sunbase Data and Twenty CRM.

  • Object compatibility

    C

    1 of 8 objects need a manual workaround.

  • 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

    Sunbase Data: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Migrations with direct database access and under 10,000 total records land in three to five weeks. Migrations requiring manual CSV exports from multiple Sunbase modules take five to eight weeks because of the per-module extraction coordination and relationship linkage work. Enterprise migrations with complex cross-module relationships, multiple custom object types, and large record volumes (over 50,000 records) extend to ten to fourteen weeks. The timeline assumes the customer provides the custom field manifest and clears the pre-flight checklist (all fields created, all users invited and accepted) within the first two weeks of engagement.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Sunbase Data.
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