CRM migration

Migrate from HomeSpotter Spacio to Twenty CRM

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

HomeSpotter Spacio logo

HomeSpotter Spacio

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

100%

12 of 12

objects map 1:1 between HomeSpotter Spacio and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

HomeSpotter Spacio is an open house lead capture tool, not a full CRM. Its data model centers on visitors, properties, and open house events with custom check-in forms — not the People, Companies, and Opportunities structure that Twenty CRM uses. FlitStack AI bridges this gap by translating Spacio's flat visitor records into Twenty's relational model: visitor contact details become People records linked to the open house property as a Company, while the event itself becomes either an Opportunity or a custom Event object. We preserve Spacio's custom check-in field answers as custom fields on the People record, store social profile links as custom URL fields, and resolve agent emails to Twenty workspace members so ownership maps correctly. Spacio's automatic email follow-up sequences, CRM integrations, and Lone Wolf/MLS connections do not migrate — they must be rebuilt in Twenty's workflow builder or an external automation tool. The migration runs via Spacio's API (12,000 calls/hour rate limit, chunked for large datasets) and Twenty's CSV bulk import, with a sample migration + field-level diff before the full run. A 24–48 hour delta pickup window captures any open house data created or modified during cutover.

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

HomeSpotter Spacio logo

HomeSpotter Spacio

What's pushing teams away

  • Agents report poor offline resilience — if cellular signal drops at the property, the sign-in app becomes unusable mid-event, risking lead loss.
  • The automated email templates are generic and not easily customized without workarounds, leading agents to manage follow-up manually anyway.
  • As a standalone open house tool, Spacio does not serve broader CRM needs; teams eventually consolidate into platforms that cover the full agent pipeline end-to-end.
  • Post-Lone Wolf acquisition, support pathways and product roadmap have shifted, creating uncertainty about long-term platform direction for existing customers.

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

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

HomeSpotter Spacio

Visitor

maps to

Twenty CRM

People

1:1
Fully supported

Each Spacio visitor becomes a Twenty People record. Name splits into firstName / lastName using the source fullname field. Email, phone, address components, LinkedIn URL, and social links map directly. The Spacio visitor record's eventId foreign key links the person to the corresponding open house event in Twenty.

HomeSpotter Spacio

Visitor (check-in answers)

maps to

Twenty CRM

People (custom fields)

1:1
Fully supported

Spacio's custom sign-in form questions and answers per visitor have no native equivalent in Twenty's standard People fields. We create a custom field for each active check-in question in Settings → Data Model before import. The answer value is stored as the field value on the People record at migration time.

HomeSpotter Spacio

Visitor (social profile links)

maps to

Twenty CRM

People (custom URL fields)

1:1
Fully supported

Spacio auto-captures social profile links on verified contacts. Twenty has no native multi-social-field on People, so we store the most-used profile (LinkedIn) as a custom URL field (Social_LinkedIn__c) and remaining links as a custom text field (Social_Other__c) with comma-separated URLs. This preserves the full social context for agents to reference during follow-up without losing any captured data.

HomeSpotter Spacio

Property

maps to

Twenty CRM

Company

1:1
Fully supported

Spacio Property maps to Twenty Company. The property title becomes Company.name, full address composes into address fields, price becomes annualRevenue (approximate), and beds/baths stored as custom number fields (Bedrooms__c, Bathrooms__c) if the team uses them in follow-up. The Spacio Agent UKEY links to the managing agent.

HomeSpotter Spacio

Open House Event

maps to

Twenty CRM

Opportunity / Task

1:1
Fully supported

Spacio open house events translate to Twenty Opportunities using event title as opportunity name, event date as expectedCloseDate, visitor count as amount (approximated or stored as custom field), and event status (scheduled / completed / cancelled) mapped via value_mapping to Opportunity Stage. A Task record is also created for the event date with the linked People records as attendees.

HomeSpotter Spacio

Open House Event (custom questions)

maps to

Twenty CRM

Opportunity (custom fields)

1:1
Fully supported

Event-level custom questions such as property feedback, buyer timeline, and financing status that are not already mapped to visitor answers become custom fields on the Opportunity record in Twenty. These fields are created in Settings → Data Model before the Opportunity CSV is imported, ensuring that the data is available for reporting and workflow triggers from the moment the records land.

HomeSpotter Spacio

Agent

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

Spacio Agent records map to Twenty WorkspaceMember records. Email is the unique identifier in Twenty (must exist before visitor and opportunity records that reference it are imported). We resolve agent email from the Spacio Agent object to the corresponding Twenty user and flag any agents not yet invited to the workspace before migration runs.

HomeSpotter Spacio

Agent Team

maps to

Twenty CRM

WorkspaceMember (custom field)

1:1
Fully supported

Spacio Teams (used in the Teams plan tier) have no direct Twenty equivalent. We create a custom select field (Team__c) on WorkspaceMember and map each agent's team assignment. The brokerage-level admin and reporting roles that exist in Spacio Teams do not translate — those organizational views must be rebuilt as Twenty workspace views.

HomeSpotter Spacio

Spacio Agent UKEY

maps to

Twenty CRM

People / Opportunity (custom field)

1:1
Fully supported

Spacio's internal Agent UKEY is stored as a custom field (Spacio_Agent_Ukey__c) on Twenty WorkspaceMember records for traceability. Visitors and Opportunities created by a specific agent carry this ID as a read-only reference field, allowing managers to audit agent activity, track performance, and maintain a clear link back to the original Spacio agent identity across all migrated records.

HomeSpotter Spacio

Visitor (primary company link)

maps to

Twenty CRM

People (companyId relation)

1:1
Fully supported

Spacio visitor records link to a primary Property. We translate this as People.companyId pointing to the migrated Company record. Visitors who checked in but whose property is not yet migrated are flagged and assigned to a placeholder 'Unmapped Property' Company record.

HomeSpotter Spacio

CRM sync integration (outbound)

maps to

Twenty CRM

No equivalent

1:1
Fully supported

Spacio pushes visitor records to third-party CRMs via built-in integrations. Twenty has no native integration with Spacio's sync mechanism. Teams using Spacio's CRM push must reconfigure those integrations from scratch in Twenty or via a middleware such as Zapier or Make.

HomeSpotter Spacio

Automatic email follow-up

maps to

Twenty CRM

No equivalent

1:1
Fully supported

Spacio sends an automated email to each visitor after the open house. Twenty has no native email sequencing or auto-follow-up trigger. This workflow must be rebuilt in Twenty's workflow builder or in an external automation tool (n8n, Zapier) using Twenty's GraphQL API as the trigger source.

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.

HomeSpotter Spacio logo

HomeSpotter Spacio gotchas

Medium

12,000 hourly rate limit on API key creation calls

High

No public bulk export endpoint

Low

Social profile enrichment does not persist through CRM push

Medium

Custom sign-in form fields vary per account and per event

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

  • Spacio's flat visitor model requires decomposition into three Twenty objects

    A Spacio visitor record bundles contact info, event context, property context, and custom check-in answers into one object. Twenty CRM enforces a relational model: People (contacts), Company (property), and Opportunity (open house event) are separate records linked by foreign keys. Migrating a visitor requires resolving the property_sid to a Company.id and the eventId to an Opportunity.id before the People record can reference them correctly. FlitStack sequences the load order (Company → Opportunity → People) so foreign keys resolve at import time. If the property or event has not been migrated first, the visitor lands without a companyId link and must be patched in a second pass.

  • Spacio API rate limit of 12,000 calls/hour requires batched extraction

    Spacio's API enforces a default rate limit of 12,000 calls per hour. The /getProperties endpoint returns one property per call; a brokerage with 500 properties consumes 500 API calls in a single batch. Visitor and event endpoints also count toward this cap. FlitStack throttles extraction to stay within the 12,000/hour window, chunks large datasets into multiple batches, and resumes from the last cursor position if a batch fails. For accounts with more than ~500 properties plus events, extraction alone can span multiple hours and must be coordinated with the cutover delta window. We flag accounts approaching the rate limit ceiling during scoping.

  • Custom sign-in questions must be created in Twenty before import

    Spacio's custom check-in forms let agents create per-event questions (buyer timeline, financing status, property feedback) with Yes/No, multiple choice, or free-text answer types. Twenty's CSV import creates records, not fields — all fields must exist in Settings → Data Model before the import CSV is uploaded. If a Spacio account uses 10 different check-in question sets across 50 events, that can mean 30–50 custom fields to pre-create in Twenty before any visitor records can land with those values populated. FlitStack audits the full set of active custom questions during scoping and delivers a field-creation checklist before the migration run.

  • Automatic email follow-up and CRM sync integrations do not migrate

    Spacio's automatic post-open-house email to visitors is a platform-built feature, not a user-configured workflow. Twenty CRM has no native email sequencing or auto-follow-up trigger in its workflow builder — the Reddit community has flagged this as a known limitation. Similarly, Spacio's built-in CRM integrations (pushing visitors to Lone Wolf, Follow Up Boss, or other platforms) are Spacio-specific connections that terminate when the account closes. These must be rebuilt from scratch in Twenty using the GraphQL API, webhooks, or an external automation tool. FlitStack exports the active integration configuration as a rebuild reference, but the connections themselves require re-authorization in the target platform.

  • Twenty's 20,000-record export cap may split large Spacio datasets

    Twenty's export function (Command Menu → Export view) is limited to 20,000 records per export operation. Brokerages with large historical databases — years of open house visitors across many agents — can exceed this cap. FlitStack handles this by exporting in multiple chunks using date-range filters or cursor pagination, then merging the chunks into a unified dataset before loading into Twenty. This adds processing time but does not affect data integrity. We identify accounts exceeding the 20,000-record threshold during scoping and plan the chunking strategy before the migration run begins.

Migration approach

Six steps for a successful HomeSpotter Spacio to Twenty CRM data migration

  1. Audit Spacio data volume and custom field inventory

    FlitStack connects to Spacio via API (GET /getProperties, visitor endpoints, event endpoints) and inventories all active records: visitor count, property count, open house event count, agent count, and team structure. We capture every active custom check-in question and its answer type so we can pre-create the corresponding custom fields in Twenty's Settings → Data Model. This step also identifies which visitor records are orphaned (no event link) or have missing primary company associations, so the team can resolve them before migration begins.

  2. Provision Twenty workspace and create custom fields

    FlitStack creates all required custom fields in Twenty before any data is imported — following Twenty's documented requirement that fields must exist before CSV import creates records. We create custom fields for check-in method, social profile URLs, Spacio internal IDs, original create dates, and any event-level custom questions. We also pre-create the Team__c select field on WorkspaceMember so agent team assignments can be set during the WorkspaceMember import. The Twenty workspace admin reviews and publishes the field configuration before the import step begins.

  3. Resolve agents and provision workspace members

    Spacio agent emails are matched to Twenty WorkspaceMember records by email. Agents without a matching Twenty user are flagged — the team either invites them to the Twenty workspace first or assigns a fallback owner for their records. No visitor or opportunity record migrates without a resolved owner. This step also captures the Spacio agent UKEY for storage as a custom field on each WorkspaceMember, preserving the Spacio identity for traceability.

  4. Run a sample migration with field-level diff

    A representative slice of Spacio records — typically 100–500 visitors spanning multiple events, properties, and agents — migrates into Twenty as a test run. FlitStack generates a field-level diff comparing the source Spacio JSON response against the imported Twenty CSV records, verifying that check-in answers landed in the correct custom fields, event links resolved to the right Opportunity, and agent assignments matched the correct WorkspaceMember. The team reviews the diff before committing to the full migration run.

  5. Execute full migration with delta-pickup cutover

    The full dataset migrates in the correct load order: Companies first (property records), then Opportunities (open house events linked to companies), then People (visitors linked to both company and opportunity), then WorkspaceMembers. Spacio API calls are batched and throttled to stay within the 12,000/hour rate limit. A delta-pickup window of 24–48 hours captures any open house visitors, new events, or agent changes made in Spacio during the cutover. The Spacio account remains fully operational throughout — FlitStack uses read-only API access. An audit log records every record created or modified, and one-click rollback is available if reconciliation identifies missing or misaligned records.

Platform deep dives

Context on both ends of the pair

HomeSpotter Spacio logo

HomeSpotter Spacio

Source

Strengths

  • Purpose-built for a single high-friction workflow: turning paper sign-in sheets into digital, actionable leads.
  • Built-in social profile enrichment on guest contacts adds relationship context without additional tooling.
  • Brokerage dashboard consolidates agent-level open house data across offices for portfolio-level reporting.
  • Native CRM push integrations exist for Follow Up Boss, Salesforce, HubSpot, and others, enabling a data-first workflow even without migration tooling.

Weaknesses

  • No bulk export or documented bulk import API — data portability relies on individual API calls or manual report downloads.
  • Automated follow-up emails are Spacio-native and do not carry forward as transferable automation rules.
  • The platform holds data scoped to individual events rather than a full CRM, creating data silos for teams managing ongoing client relationships.
  • No white-label option available, limiting branding control for brokerages wanting a fully custom client-facing experience.
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. 1 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 HomeSpotter Spacio and Twenty CRM.

  • Object compatibility

    B

    1 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

    HomeSpotter Spacio: 12,000 requests per hour per API key (default; increase available by request).

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Spacio-to-Twenty migrations complete in 48–72 hours for under 50,000 visitor records. Accounts with 200,000+ records or extensive custom check-in form sets extend to 5–7 days, primarily because Spacio's API rate limit (12,000 calls/hour) requires chunked extraction and because pre-creating 30–50 custom fields in Twenty's Settings → Data Model adds a planning step. The sample migration + field diff typically runs within the first 24 hours so the team can review before the full run commits.

Adjacent paths

Related migrations to explore

Ready when you are

Move from HomeSpotter Spacio.
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