CRM migration
Field-level mapping, validation, and rollback between Gauss Box CRM & Sales and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Gauss Box CRM & Sales
Source
Twenty CRM
Destination
Compatibility
7 of 10
objects map 1:1 between Gauss Box CRM & Sales and Twenty CRM.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Gauss Box CRM & Sales and Twenty CRM share a similar object vocabulary but differ fundamentally in architecture and export capability. Gauss Box stores Persons, Organizations, Deals, Activities, and a Product catalog with account-specific custom attributes defined through its attribute-set system, while Twenty CRM uses Company and Person as its primary account and contact objects with a standard Opportunity pipeline, Task and Event activity model, and a Custom Objects capability for non-standard data. The critical migration difference is that Gauss Box does not publish a REST or GraphQL API for self-service export, requiring coordinated CSV extraction or assisted export through their support team before any data can move. We sequence the migration with Organizations as the first load (as parent records), then Products, then Persons and Leads, then Deals and Activities, then document attachments. Custom attribute sets from Gauss Box must be enumerated during discovery and pre-created as custom fields in Twenty before data import. Twenty's per-user pricing at approximately $9/month (self-hosted free or cloud from ~$9/seat) contrasts with Gauss Box's per-user model starting at €119/month for three users, making the switch financially significant for growing teams. Workflows, sequences, and notification automations do not migrate; we deliver a written inventory for the customer's admin to rebuild in Twenty's workflow engine.
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 Gauss Box CRM & Sales 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.
Gauss Box CRM & Sales
Organization
Twenty CRM
Company
1:1Gauss Box Organizations (company records) map directly to Twenty Company records. The Organization name, industry, size, D&B data fields (if the Gauss Box account had D&B enrichment active), and address fields map to the corresponding Twenty Company fields. Organization is loaded first because Persons and Deals carry foreign-key references to it. The Twenty Company API accepts name, domain, employees, industry, and address as typed fields. Any custom attributes defined on the Organization object in Gauss Box's attribute-set system are enumerated during discovery and pre-created as custom fields on the Twenty Company object before migration.
Gauss Box CRM & Sales
Product (Catalog)
Twenty CRM
Standard Object: Opportunity with line items
1:1Gauss Box Products (name, category, type, price, sale tax configuration) map to Twenty Products if the Twenty instance has the Products feature enabled, or to a custom Product object if the standard feature is not active. ProductCode from Gauss Box maps to the sku field. We reassign products to Deals at the destination using the stored deal-product associations. Tiered pricing and volume discount rules that were custom Gauss Box configurations become custom fields on the destination Product record.
Gauss Box CRM & Sales
Person (Contact)
Twenty CRM
Person
1:1Gauss Box Persons map directly to Twenty Person records. Name, email, phone, address, and any role or title field map to the corresponding Twenty Person fields. Persons carry a link to their parent Organization, which is resolved by matching the Organization's external ID (we assign a stable UUID during Organization migration) against the Organization field on the Person record during migration. All account-specific custom attributes on the Gauss Box Person object are pre-created as custom fields on Twenty Person before the Person batch load.
Gauss Box CRM & Sales
Lead
Twenty CRM
Person (unqualified) or Lead (if configured)
1:manyGauss Box Leads carry a work status, assigned team member, and a link to a corresponding Person. We map Leads to Twenty Person records with the work status preserved in a custom field (lead_work_status__c). If Twenty is configured with a dedicated Lead object (via custom object definition), unqualified Leads map to the Lead object and converted Leads map to Person. The lead-to-person link is preserved by recording the original Gauss Box lead_id in a custom field on the destination Person for audit and reconciliation.
Gauss Box CRM & Sales
Deal
Twenty CRM
Opportunity
1:1Gauss Box Deals map to Twenty Opportunity records. Deal fields (stage, owner, value, budget, product associations, close date) map to the corresponding Opportunity fields. Pipeline stage names are configurable per Gauss Box account, so we enumerate the active stage set during discovery and map it to Twenty's Opportunity stage field, creating any missing stage values in Twenty before migration. Deal-product associations are resolved by looking up the migrated Product UUIDs against the imported product records. Owner assignment uses the Gauss Box owner's email address, resolved against the Twenty user directory during migration.
Gauss Box CRM & Sales
Activity
Twenty CRM
Task and Event
1:1Gauss Box Activities (interactions linked to Deals and Persons) map to Twenty Task records for standard activities and Event records for meetings and calendar events. Activity type, timestamp, description, and parent object link (person or deal) migrate directly. Gauss Box ties automatic reminders to Activity records, but these system-generated reminders are often embedded in the parent record metadata rather than exported as independent rows. We extract what is present, flag records with active reminders that will not carry over as discrete activities, and recommend the customer document open reminder counts before migration so they can recreate priority reminders in Twenty.
Gauss Box CRM & Sales
Document
Twenty CRM
Attachment (on Company or Person)
1:1Gauss Box stores documents per record with access permissions in its document management module. We extract files with their filenames and any stored metadata, then re-attach them to the corresponding migrated Company or Person record in Twenty. File metadata (created date, modified date, access level) migrates as attachment metadata fields. Access permissions that existed in Gauss Box's document module do not transfer to Twenty's attachment model and must be reconfigured by the customer's admin post-migration if permission-scoped document access is required.
Gauss Box CRM & Sales
Custom Attributes (Attribute Sets)
Twenty CRM
Custom Fields on Person, Company, Opportunity, or Product
lossyGauss Box attribute sets allow each account to define custom fields on Persons, Organizations, Deals, and Products. These fields are not standardized across accounts. We run a mandatory discovery phase to enumerate every active attribute set before mapping begins. Each discovered custom field is pre-created in Twenty with a matching field type (text, number, date, picklist, checkbox, or email) before the corresponding data batch is loaded. Skipping this step results in data landing in wrong columns or being silently dropped if the destination field does not exist.
Gauss Box CRM & Sales
Owner (User Assignment)
Twenty CRM
User
1:1Gauss Box Deals, Leads, and Activities carry owner assignments tied to Gauss Box user accounts. We map owner email addresses to Twenty's user directory. Any Gauss Box owner without a matching Twenty User is held in a reconciliation queue for the customer's admin to provision before the record import resumes. Inactive Gauss Box user accounts that are still referenced in owner fields are flagged separately so the customer can decide whether to provision a corresponding inactive Twenty User or reassign the records.
Gauss Box CRM & Sales
Deal Stage (Pipeline Configuration)
Twenty CRM
Opportunity Stage
lossyGauss Box's configurable pipeline stages are enumerated per account and mapped to Twenty's Opportunity stage values. Stage names, probabilities, and order of presentation migrate as configured. If the Gauss Box account uses multiple pipelines (an advanced configuration), we map each Gauss Box pipeline to a separate Opportunity pipeline view in Twenty, or document the multi-pipeline requirement for the customer's admin to configure as separate Twenty pipeline filters post-migration.
| Gauss Box CRM & Sales | Twenty CRM | Compatibility | |
|---|---|---|---|
| Organization | Company1:1 | Fully supported | |
| Product (Catalog) | Standard Object: Opportunity with line items1:1 | Fully supported | |
| Person (Contact) | Person1:1 | Fully supported | |
| Lead | Person (unqualified) or Lead (if configured)1:many | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Activity | Task and Event1:1 | Fully supported | |
| Document | Attachment (on Company or Person)1:1 | Fully supported | |
| Custom Attributes (Attribute Sets) | Custom Fields on Person, Company, Opportunity, or Productlossy | Mapping required | |
| Owner (User Assignment) | User1:1 | Fully supported | |
| Deal Stage (Pipeline Configuration) | Opportunity Stagelossy | 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.
Gauss Box CRM & Sales gotchas
No documented public API export endpoint
Custom attribute sets are account-specific and require discovery
Per-user pricing creates billing surprises when migrating in
Activity reminders and notification data are not independently 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
Export coordination with Gauss Box
Since Gauss Box has no self-service API export, we work with the customer to request a CSV export package from Gauss Box support. We define the export template specifying which fields and objects are needed (Organizations, Persons, Leads, Deals, Activities, Products, Documents with file references). If Gauss Box support cannot produce a complete CSV export, we coordinate an assisted export session. The customer provides the export files within the agreed discovery window. We validate the export completeness (record counts per object, presence of required columns, presence of foreign-key columns for relationship resolution) before proceeding.
Discovery and attribute-set enumeration
We enumerate every active Gauss Box attribute set across Persons, Organizations, Deals, and Products. For each custom attribute, we record the field name, data type, and any picklist values or validation rules defined in Gauss Box. We cross-reference this list against the standard Twenty field model to identify which attributes map to standard Twenty fields and which must become custom fields. We present the customer with a custom field creation checklist and create the custom fields in Twenty (via the admin UI or API) before any data migration begins. This step is required and cannot be skipped or deferred.
Owner reconciliation and user provisioning
We extract every distinct Gauss Box owner referenced on Deal, Lead, and Activity records and list them by email address. We compare this list against the Twenty destination's user directory. Any Gauss Box owner without a matching Twenty User is added to a reconciliation queue. The customer's Twenty admin provisions the missing users (active or inactive depending on the original Gauss Box user's status). Migration cannot proceed past this step because OwnerId references are required on imported Opportunity and Task records in Twenty.
Schema preparation and custom field pre-creation
We create all required custom fields in Twenty for any Gauss Box custom attributes that do not map to standard Twenty fields. We configure Opportunity stages to match the Gauss Box pipeline stage set, creating any missing stage values. We verify that the Twenty instance has the Products feature enabled if the customer requires Product catalog migration. We validate the Twenty schema against the Gauss Box export field list to confirm every source field has a destination target before proceeding to data load.
Migration in dependency order with reconciliation reports
We load data into Twenty in strict dependency order: Companies (from Organizations) first, then Products, then Persons (with Company external ID resolved), then Leads (with Person external ID resolved), then Opportunities (with Person ID, Company ID, and Owner resolved), then Tasks and Events (with parent Person and Opportunity resolved), then Attachments (with parent Company or Person resolved). Each phase emits a row-count reconciliation report comparing the Gauss Box export count to the Twenty insert count. Any discrepancy triggers an investigation before the next phase begins. We use the Twenty REST API with rate-limit handling and exponential backoff for all inserts.
Cutover, delta migration, and workflow inventory handoff
We freeze Gauss Box writes during the cutover window, run a final delta migration of any records created or modified since the last load, then mark Twenty as the system of record. We deliver a written inventory of every Gauss Box automation, notification rule, and workflow that cannot migrate, with a recommended Twenty equivalent for each. We support a one-week post-cutover window for reconciliation issues raised by the sales team. We do not rebuild Gauss Box automations in Twenty as part of the migration scope; that is a separate engagement.
Platform deep dives
Gauss Box CRM & Sales
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 Gauss Box CRM & Sales 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
Gauss Box CRM & Sales: Not publicly documented.
Data volume sensitivity
Gauss Box CRM & Sales 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 Gauss Box CRM & Sales to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Gauss Box CRM & Sales 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 Gauss Box CRM & Sales
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.