CRM migration

Migrate from Inmovilla to Twenty CRM

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

Inmovilla logo

Inmovilla

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

12 of 12

objects map 1:1 between Inmovilla and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Inmovilla is a property-centric CRM built for Spanish real estate agencies, storing contacts, companies, properties, and deals in a schema optimized for real estate workflows. Twenty CRM is an open-source general CRM that stores data as People, Companies, and Opportunities, requiring real estate fields to be recreated as custom fields. The migration carries all contacts, companies, open and closed deals, notes, and tasks into Twenty, with Inmovilla property records translated into Opportunities using custom fields for property-type, price, surface area, and location data. Property-photo attachments re-upload to Twenty's file storage. Workflows, automation rules, and portal configurations do not transfer and must be rebuilt manually in Twenty's Settings → Data Model. We sequence the migration so parent records (Companies) land before child records (People), preventing orphaned contact-to-company links. Owner resolution happens by email match against Twenty workspace members — unmatched owners flagged before data commits. A 24–48 hour delta pickup window captures any records modified during cutover, and an audit log plus rollback is available if reconciliation reveals unexpected gaps.

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

Inmovilla logo

Inmovilla

What's pushing teams away

  • Billing disputes and account blocking — customers report being charged for inactive periods and having accounts suspended over disputed invoices, with support described as unhelpful in resolving billing conflicts.
  • Visual design feels dated — a G2 reviewer noted that the UI has not kept pace with modern standards, and while a global redesign is reportedly in progress, the current interface feels behind the times.
  • Limited flexibility for non-standard workflows — agencies with unusual commission structures or multi-office setups report friction when trying to configure the system outside its default assumptions.
  • Lack of transparent public pricing — no publicly documented pricing tiers makes it difficult to compare cost against alternatives before committing to a sales conversation.

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

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

Inmovilla

Contact

maps to

Twenty CRM

People

1:1
Fully supported

Inmovilla contacts map 1:1 to Twenty People records. The contact's primary email, phone, job title, and address fields map to their corresponding Twenty People fields. Owner resolution uses email match against Twenty workspace members — any unmatched owner gets flagged before migration commits.

Inmovilla

Company

maps to

Twenty CRM

Companies

1:1
Fully supported

Inmovilla companies map to Twenty Companies. Company name, industry, employee count, annual revenue, and website URL map directly. Inmovilla parent-child company hierarchies translate to the Twenty Companies ParentId field. Multi-contact companies in Inmovilla collapse to a single Company record with multiple linked People records in Twenty.

Inmovilla

Property

maps to

Twenty CRM

Opportunity (custom fields)

1:1
Fully supported

Inmovilla properties do not have a direct Twenty equivalent — they become Opportunities with custom fields for property-type, price, surface area in m², number of bedrooms/bathrooms, energy certificate rating, and garage flag. Each property linked to its owner Contact and the agency Company record. Photos attached to properties re-upload to Twenty's file storage and linked to the Opportunity.

Inmovilla

Deal

maps to

Twenty CRM

Opportunity

1:1
Fully supported

Inmovilla deal records map to Twenty Opportunities. Deal name, amount, stage, expected close date, and owner map directly. Deal stage values are mapped value-by-value to Twenty Opportunity Stage pick-list values. Stage-entered timestamps preserved as custom datetime fields on each Opportunity record.

Inmovilla

Deal Stage

maps to

Twenty CRM

Opportunity Stage

1:1
Fully supported

Inmovilla deal stage names (e.g., 'Primera Visita', 'Negociación', 'Cerrada Ganada') are mapped to Twenty Opportunity Stage pick-list values. Custom stages require value-mapping setup in Twenty's Settings → Data Model before the migration runs. Stage probability is re-applied from source or set to Twenty defaults.

Inmovilla

Note (Contact/Company/Property)

maps to

Twenty CRM

Note

1:1
Fully supported

Inmovilla notes attached to contacts, companies, or properties migrate as Twenty Notes linked to the corresponding People, Companies, or Opportunity record. Original timestamps and note author preserved. Rich-text formatting in Inmovilla notes is flattened to plain text in Twenty Notes.

Inmovilla

Task (call, email, meeting)

maps to

Twenty CRM

Task

1:1
Fully supported

Inmovilla task records (call logs, email logs, meeting records) map to Twenty Tasks. Task subject, due date, completion status, and owner map directly. Task type (call, email, meeting) preserved as a custom select field on the Task record since Twenty Tasks do not natively distinguish activity type.

Inmovilla

Attachment (property photo, PDF)

maps to

Twenty CRM

File (on Opportunity)

1:1
Fully supported

Inmovilla file attachments on properties and contacts are downloaded and re-uploaded to Twenty's file storage, then linked to the corresponding Opportunity (for property attachments) or People record (for contact attachments). File size limits apply — Twenty's upload handles files up to the storage configuration limit.

Inmovilla

User / Owner

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

Inmovilla owner IDs are resolved by email match against Twenty Workspace Members. Agencies must invite all team members to Twenty before migration so the email lookup succeeds. Inmovilla agents without matching Twenty accounts are assigned to a fallback owner and flagged for manual reconciliation.

Inmovilla

Custom field (real estate)

maps to

Twenty CRM

Custom field (on Opportunity)

1:1
Fully supported

Inmovilla custom fields on properties (energy certificate rating, property type, orientation, floor number, elevator flag) have no native Twenty equivalent. We create corresponding custom fields on the Opportunity object in Twenty's Settings → Data Model before importing, then map values during the data load.

Inmovilla

Workflow / Automation rule

maps to

Twenty CRM

N/A

1:1
Fully supported

Inmovilla automated email sequences, lead-distribution rules, and task triggers are platform-native constructs with no Twenty equivalent. These must be rebuilt manually in Twenty's workflow builder (available on Organization tier) or via third-party automation tools. FlitStack exports workflow definitions as a rebuild reference document.

Inmovilla

Portal configuration

maps to

Twenty CRM

N/A

1:1
Fully supported

Inmovilla's client-facing property portal with virtual tour links and biometric signature integration does not translate to Twenty. The portal configuration must be replaced with a custom-built front-end connected to Twenty's API, or an alternative portal tool. This falls outside FlitStack's data-migration scope.

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.

Inmovilla logo

Inmovilla gotchas

High

Auto-renewing subscription causes unexpected charges

Medium

Pipeline stage names are agency-configured

High

No publicly documented API

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

  • Property data has no native Twenty CRM equivalent — custom fields must pre-exist

    Inmovilla stores property records with real estate-specific fields (tipo_inmueble, certificado_energetico, superficie, habitaciones, banos) that have no corresponding native field in Twenty CRM. Twenty's Opportunities object has no property-type or surface-area fields by default. All property-specific fields must be created as custom fields in Twenty's Settings → Data Model before the migration runs — the CSV import creates records, not fields. We deliver a field-creation checklist as part of the migration plan so the schema is ready before data lands. Failing to pre-create these fields means property data either drops or lands with blank values.

  • Inmovilla billing-model records have no Twenty equivalent

    Inmovilla's per-feature and per-agency billing configuration — including which Inmovilla plan tier each agency subscribes to, the per-user seat count, and any add-on module activations — is a platform-native billing construct stored in Inmovilla's internal subscription object. Twenty CRM has no billing configuration object; pricing is handled outside the CRM in Twenty Cloud billing or in your own self-hosted infrastructure management. We preserve the source billing tier as a read-only reference field on migrated records but the billing model cannot be replicated in Twenty and must be re-established with Twenty's pricing structure.

  • Owner resolution by email requires workspace members to exist in Twenty first

    Inmovilla owner IDs reference agency agents assigned to contacts, companies, properties, and deals. Twenty CRM ties record ownership to Workspace Members — users must have accepted a Twenty workspace invitation before migration. If an Inmovilla owner has no matching email in Twenty, their records land under a fallback owner and get flagged in the pre-migration audit report. We require agencies to invite all active agents to Twenty before the migration window opens, and we validate member counts against Inmovilla owner counts during the discovery phase.

  • Inmovilla portal configuration and virtual tour links do not migrate

    Inmovilla's client-facing property portal — including virtual tour URLs, biometric signature session links, and portal login credentials for property buyers — is a platform-native web application configuration. Twenty CRM has no built-in property portal; virtual tour links cannot be embedded in Opportunities without custom development. Any virtual tour URLs or external portal links stored in Inmovilla property notes are preserved as plain text in the Opportunity note, but the interactive portal experience must be rebuilt as a separate front-end connected to Twenty's API, which is outside FlitStack's data-migration scope.

  • Inmovilla attachment file hosting differs from Twenty's storage model

    Inmovilla stores property photos, floor plan PDFs, and document attachments on its own file storage infrastructure. When these files are downloaded and re-uploaded to Twenty's file storage, they receive new file IDs and URLs — any Inmovilla URLs hardcoded in property descriptions or notes become broken links. We strip Inmovilla-hosted URLs from note content and re-attach the files to the corresponding Twenty records, but any external tools or websites referencing Inmovilla file URLs will need those references updated post-migration.

Migration approach

Six steps for a successful Inmovilla to Twenty CRM data migration

  1. Audit Inmovilla data and deliver field-creation checklist for Twenty

    We extract a full inventory of Inmovilla objects — contacts, companies, properties, deals, tasks, notes, and attachments — using Inmovilla's REST API. We identify all custom fields on each object and categorize them as direct maps, value-mapping candidates, or custom-field-required fields. We deliver a Twenty field-creation checklist specifying every custom field that must be pre-created in Settings → Data Model before the migration runs. We also inventory attachment file counts and flag any records exceeding storage size limits.

  2. Validate workspace members and resolve owner IDs

    We export all Inmovilla owner IDs and email addresses and cross-reference them against Twenty workspace members. Any owner with no matching Twenty account is flagged with a fallback owner recommendation. We require agencies to invite all active Inmovilla agents to Twenty before the migration window opens. Owner resolution by email match ensures every migrated record lands with a valid Twenty owner — no orphaned records.

  3. Migrate Companies before People; Properties and Deals after

    Twenty's data model requires referential integrity — Companies must exist before People can link to them via companyId, and Opportunities must exist before activity records can link to them. We sequence the migration in dependency order: Companies first (the one side of relationships), then People linked to Companies, then Opportunities derived from both Inmovilla Properties and Deals, then Notes and Tasks linked to the parent records. This load order prevents orphaned foreign keys and ensures Twenty's relationship graph is intact at go-live.

  4. Run sample migration with field-level diff

    A representative slice of 100–500 records — spanning contacts, companies, property-Opportunities, and activity records — migrates first. We generate a field-level diff comparing source values against destination values so the agency can verify property-type value mapping, surface area preservation, owner resolution, and attachment re-linking before the full run commits. Any mapping gaps identified in the sample run are corrected before the production migration proceeds.

  5. Execute full migration with delta-pickup and rollback readiness

    The full migration runs against Twenty CRM, processing all contacts, companies, properties translated to Opportunities, deals, notes, and tasks. A 24–48 hour delta-pickup window captures any records created or modified in Inmovilla during the cutover period. An audit log records every record operation. One-click rollback is available for 72 hours post-migration — if reconciliation reveals unexpected gaps in field mapping or relationship integrity, FlitStack can revert and re-run with corrected mapping.

Platform deep dives

Context on both ends of the pair

Inmovilla logo

Inmovilla

Source

Strengths

  • Integrated multi-portal syndication to Spanish real estate websites without manual re-entry
  • Comprehensive property management covering the full listing lifecycle from inquiry to close
  • Dedicated mobile app enabling agents to work from any location on any device
  • Commission tracking tied directly to transactions and agent assignments
  • Established user base of over 4,500 Spanish real estate agencies

Weaknesses

  • Billing model uses auto-renewing monthly licenses with disputed enforcement practices
  • UI and visual design reported as outdated with a redesign still in progress
  • No publicly documented pricing or tier structure for pre-purchase evaluation
  • Limited flexibility for non-standard Spanish real estate workflows
  • Support responsiveness criticized in billing dispute scenarios
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 Inmovilla 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

    Inmovilla: Not publicly documented..

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Inmovilla-to-Twenty migrations complete in 48–72 hours of clock time for setups under 50,000 records. Larger agencies with 200,000+ records or complex custom-property schemas extend to 5–10 days. The longest planning step is pre-creating Twenty custom fields for real estate data (surface area, energy rating, property type) — this must happen before any data loads. We include the field-creation checklist in the discovery phase so Twenty is schema-ready when migration begins.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Inmovilla.
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