CRM migration

Migrate from Basecamp Scout to Twenty CRM

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

Basecamp Scout logo

Basecamp Scout

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

92%

11 of 12

objects map 1:1 between Basecamp Scout and Twenty CRM.

Complexity

BStandard

Timeline

48–72 hours

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Basecamp Scout and Twenty CRM occupy different positions in the sales tech stack. Basecamp Scout is a field-force management tool built around geo-tagged attendance, real-time alerts, and mobile-first lead tracking for outside sales teams. Twenty CRM is a full-featured open-source CRM built on PostgreSQL with a REST and GraphQL API, custom objects, and a workflow automation layer. The migration challenge is translating Basecamp Scout's field-activity model — which centers on Leads, Follow-ups, Meeting Status, and Sales Rep assignments — into Twenty's relational schema of People, Companies, Opportunities, Tasks, and Notes. We map Basecamp Scout's leads to Twenty People records, preserving lifecycle-stage equivalents as custom pick-list fields. Follow-up activities become Twenty Tasks linked to the relevant People record. Meeting statuses migrate as Notes or Tasks depending on whether they contain narrative content. Geo-tagged attendance logs and real-time alert configurations present the most complex translation — these Basecamp Scout constructs have no native equivalent in Twenty, so we preserve them as custom fields and custom objects for reference while flagging that geo-fencing logic must be rebuilt in Twenty's workflow builder. Sales rep assignments map by email match to Twenty Workspace Members. The migration runs via Twenty's CSV import API (or direct GraphQL for larger datasets), sequencing Companies first, then People, then Opportunities and Tasks to honor Twenty's relationship-integrity requirements. A 24–48 hour delta-pickup window captures any records modified in Basecamp Scout during cutover. Workflows, alert rules, and geo-fencing configurations do not migrate — they must be rebuilt in Twenty's workflow builder or exported as rebuild reference documentation. Reports and dashboards in Basecamp Scout are destination-side constructs and do not transfer.

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

Basecamp Scout logo

Basecamp Scout

What's pushing teams away

  • Pricing shifted from a flat $99/month unlimited-users model to $299/month Pro Unlimited, making it significantly more expensive for growing teams that previously benefited from the lower cost tier.
  • The platform lacks advanced automation — dependency tracking, workflow triggers across projects, and cross-project automation are minimal compared to tools like Monday.com or ClickUp.
  • Teams needing deeper analytics or custom reporting find Basecamp Scout's native reports insufficient — the tool prioritizes operational visibility over executive-level insights.
  • As teams scale beyond 50 users, the flat organizational model becomes harder to manage without more granular permission controls or workspaces.

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

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

Basecamp Scout

Lead

maps to

Twenty CRM

People

1:1
Fully supported

Basecamp Scout's Lead records map 1:1 to Twenty CRM People records. The primary name, phone, email, and address fields translate directly. Lead status (Active, Qualified, Converted) maps to a custom pick-list field (Lead_Status__c) on the People record since Twenty does not have a native lead-status concept.

Basecamp Scout

Lead.assigned_rep

maps to

Twenty CRM

WorkspaceMember

1:1
Fully supported

Basecamp Scout assigns one Sales Rep per lead. In Twenty, owner assignment uses the WorkspaceMember relation on People. We resolve Basecamp Scout's assigned_rep by email match against Twenty Workspace Members. Unmatched reps are flagged before migration — teams either invite them to Twenty first or assign records to a fallback Workspace Member.

Basecamp Scout

Company (if tracked)

maps to

Twenty CRM

Companies

1:1
Fully supported

Basecamp Scout optionally tracks company associations per lead. These map to Twenty Companies records. The Basecamp Scout company name, industry, and size fields translate to Twenty's displayName, industry, and size fields. Multi-company associations per lead (if used) need to be resolved to a primary company in Twenty with additional company links stored as relation notes.

Basecamp Scout

Follow-up

maps to

Twenty CRM

Tasks

1:1
Fully supported

Basecamp Scout follow-up records map to Twenty Tasks. The follow-up title becomes the Task subject, due date maps to dueDate, and completion status maps to Task status. Each Task is linked to the corresponding People record (the lead it belongs to) via Twenty's relation field. Follow-up notes content becomes the Task body.

Basecamp Scout

Meeting Status

maps to

Twenty CRM

Notes or Tasks

many:1
Fully supported

Basecamp Scout meeting-status records capture whether a meeting was scheduled, attended, or resulted in a next step. Meetings with narrative content (notes, outcomes) migrate as Twenty Notes linked to the relevant People record. Meetings without narrative content migrate as Tasks with the meeting status as the Task description. The original status value (Scheduled, Completed, No-Show) is preserved in a custom pick-list field (Meeting_Status__c).

Basecamp Scout

Geo-Tagged Attendance Log

maps to

Twenty CRM

Custom Object: Attendance_Log__c

1:1
Fully supported

Basecamp Scout's geo-tagged attendance records have no equivalent in Twenty's standard objects. We create a custom object (Attendance_Log__c) with fields for location coordinates (latitude, longitude), timestamp, geo-fence name, and the related People record. This preserves the full attendance history but requires custom field creation in Twenty before import runs — the migration plan documents the required schema.

Basecamp Scout

Real-Time Alert Configuration

maps to

Twenty CRM

Custom Object: Alert_Config__c

1:1
Fully supported

Basecamp Scout alert rules (SMS on geo-fence breach, push on status change) have no native equivalent in Twenty's workflow builder. We preserve the alert configuration as a reference custom object with fields for trigger_type, notification_channel, and recipient list. Rebuilding equivalent logic in Twenty requires workflow rule creation post-migration — we provide an export of the alert configuration as a rebuild reference.

Basecamp Scout

Lead Score / Priority

maps to

Twenty CRM

Custom field on People

1:1
Fully supported

Basecamp Scout's lead priority and scoring fields map to a custom Number field (Lead_Score__c) on the People object. If multiple priority levels exist, we preserve the raw numeric or categorical value and document the value mapping so your team can configure a matching pick-list in Twenty.

Basecamp Scout

Inbox Custom Fields

maps to

Twenty CRM

Custom fields on People

1:1
Fully supported

Basecamp Scout supports up to 10 custom fields per inbox (dropdown, single-line text, multi-line text, number, date). Each inbox's custom field set requires individual mapping to Twenty custom fields on the People object. Dropdown fields need value-by-value mapping to Twenty pick-lists. We create the target custom fields in Twenty before import and validate that pick-list values match before the full run.

Basecamp Scout

Attachment / File

maps to

Twenty CRM

Notes

1:1
Fully supported

Basecamp Scout file attachments on leads or follow-ups migrate as Twenty Notes with the file content stored as note body or as a linked attachment. File size limits in Twenty's PostgreSQL-backed storage accommodate typical document sizes. We flag any files exceeding reasonable size thresholds before import so your team can decide whether to host externally or compress.

Basecamp Scout

Lead.CreateDate

maps to

Twenty CRM

People.original_create_date__c

1:1
Fully supported

Twenty's People.createdAt is set at migration time. Original Basecamp Scout create dates are preserved in a custom datetime field (original_create_date__c) for reporting continuity. This ensures pipeline reports reflect when leads were originally created rather than when they landed in Twenty.

Basecamp Scout

Lead.hs_object_id

maps to

Twenty CRM

People.source_system_id__c

1:1
Fully supported

Basecamp Scout's internal record ID is stored on the migrated People record as source_system_id__c. This field enables delta-run de-duplication (preventing record duplication if the migration is re-run) and provides traceability between the source and destination records. When future synchronizations run, we reference this field to match incoming Basecamp Scout records against already-migrated Twenty People records, ensuring each lead is updated rather than duplicated. The source_system_id__c also supports audit trails and reconciliation reporting by linking every Twenty record back to its original Basecamp Scout identifier.

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.

Basecamp Scout logo

Basecamp Scout gotchas

Medium

API pagination caps at 15 records per page

Medium

Geo-attendance and check-in history grows unbounded

High

Custom form schemas differ per account

High

Role hierarchy maps to Salesforce profiles

Low

Attachment file URLs expire after 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

  • Basecamp Scout's geo-tagged attendance logs have no native equivalent in Twenty

    Basecamp Scout captures geo-tagged attendance with latitude, longitude, geo-fence name, and timestamp per record. Twenty CRM has no native geo-spatial fields or geo-fence concept. We create a custom object (Attendance_Log__c) with latitude, longitude, and geo-fence name fields to preserve this data, but the geo-triggered alert logic that Basecamp Scout fires on geo-fence events cannot transfer. Your team needs to rebuild geo-fence alert rules in a third-party tool or through custom development on Twenty's API after migration. The custom object preserves the historical record but not the real-time triggering behavior that field teams rely on.

  • Twenty requires Companies to exist before People can reference them

    Twenty's CSV import enforces referential integrity: a Company record must exist before a People record with a companyId can be imported. Basecamp Scout stores company associations per lead but exports them alongside lead records. We sequence the migration so all Companies load first (even if they have no people), then People resolve their companyId against the existing Company set. If your Basecamp Scout data has leads with company names that do not yet exist as Company records in Twenty, those leads will fail import until the company is created. We flag any unresolved company references before the full migration run so your team can decide whether to create placeholder companies or exclude those associations.

  • Basecamp Scout's inbox custom fields require per-inbox schema mapping

    Basecamp Scout allows up to 10 custom fields per inbox, with field types including dropdown, single-line text, multi-line text, number, and date. A team using three inboxes may have three separate custom field schemas with no guarantee of naming consistency across inboxes. Twenty requires custom fields to be pre-created in Settings → Data Model before import. We map each inbox's custom field set individually, create the corresponding custom fields in Twenty before import, and apply value mapping for any dropdown fields. If two inboxes use a custom field with the same name but different pick-list values, they become separate custom fields in Twenty. This schema-creation step adds planning time proportional to the number of inboxes in use.

  • Real-time alert configurations do not migrate and require workflow rebuilding

    Basecamp Scout's real-time alert system — SMS and push notifications triggered by geo-fence breach, status changes, or meeting no-shows — is a configuration construct with no equivalent in Twenty CRM's workflow builder. The alert rules (trigger conditions, notification channels, recipient lists) are preserved as reference data in a custom Alert_Config__c object, but the active alerting behavior does not transfer. Twenty's workflow builder (available on Pro plan and above) can replicate some logic — for example, task-creation rules based on People field changes — but geo-triggered alerts require a third-party integration (such as a location API hooked to Twenty's webhook system) or custom development. We provide an exported JSON snapshot of the alert configuration as a rebuild reference for your development team.

  • Basecamp Scout's API rate limit of 500 requests per 10-second window affects migration throughput

    Basecamp Classic API enforces a rate limit of 100 requests per minute, while Basecamp 3 API allows 500 requests per 10-second window from the same IP address per account. During migration, we paginate exports and throttle API calls to stay within these limits. For large datasets (50,000+ records), the export phase extends proportionally because we cannot parallelize requests beyond the rate ceiling. We monitor X-RateLimit headers and respect the Retry-After response when throttled. This is not a data-loss risk but does extend timeline estimates for high-volume exports. We communicate expected export duration based on your record count before the migration begins.

Migration approach

Six steps for a successful Basecamp Scout to Twenty CRM data migration

  1. Audit Basecamp Scout data and build the migration schema plan

    We export a full data snapshot from Basecamp Scout via the REST API (respecting the 500 requests per 10-second rate limit), capturing all Leads, Follow-ups, Meeting Status records, Company associations, and custom field definitions per inbox. We analyze the data for duplicates, missing required fields, and orphaned records (leads with no assigned rep or no company association). We then build the Twenty migration schema: creating the custom object (Attendance_Log__c) for geo-tagged data, creating Alert_Config__c for alert reference, adding all custom fields to People and Tasks, and documenting the value-mapping tables for pick-list fields. The schema plan is reviewed with your team before any data moves.

  2. Invite and resolve Twenty Workspace Members by email

    Twenty requires Workspace Members to exist before records can be assigned to them. We extract all assigned_rep email addresses from Basecamp Scout leads and tasks, then cross-reference against your Twenty Workspace Members list. Unmatched reps are flagged — your team either invites them to Twenty first or designates a fallback assignee. We never allow records to land in Twenty without a valid owner link. This step runs in parallel with schema setup so Twenty is ready for ownership assignment when import begins.

  3. Sequence and run the migration in Twenty's required import order

    Twenty enforces referential integrity during CSV import: Companies first (the one side of relationships), then People (linked to Companies via companyId), then Opportunities and Tasks (linked to People). We follow this sequence precisely. Companies load first even if they have no associated people. People load second, resolving their companyId against the now-existing Company records. Tasks load third, resolving their linked People by email or source_system_id lookup. The custom Attendance_Log__c and Alert_Config__c objects load last, after their parent People records exist. Each batch is validated before the next begins.

  4. Run a sample migration with field-level diff before the full run

    A representative slice — typically 100–500 records spanning leads, follow-ups, meetings, and company associations — migrates first. We generate a field-level diff between the Basecamp Scout source values and the Twenty destination values so you can verify that email addresses, phone numbers, geo-coordinates, pick-list values, and owner assignments transferred correctly. This validation catches value-mapping errors, pick-list mismatches, and truncated text fields before the full run commits. You approve the sample before we proceed to the full migration.

  5. Execute full migration with delta-pickup for in-flight records during cutover

    The full migration runs against Twenty using the validated mapping. A delta-pickup window of 24–48 hours captures any records created or modified in Basecamp Scout during the cutover period so Twenty reflects the final state at go-live. Every operation is captured in an audit log, and one-click rollback is available if reconciliation reveals unexpected gaps. After migration, we run a final record-count validation against the source snapshot and surface any records that failed import with the reason (missing required field, duplicate, rate-limit gap) so your team can remediate manually if needed.

Platform deep dives

Context on both ends of the pair

Basecamp Scout logo

Basecamp Scout

Source

Strengths

  • Real-time geo-tracking with push, SMS, and desktop notification alerts for field activity
  • Mobile-first interface that works on desktop and mobile devices simultaneously
  • Geo-tagged proof collection via camera with timestamp and GPS metadata
  • Role-based hierarchy with per-user task assignment and progress monitoring
  • Salesforce-backed data model providing standard CRM object reliability

Weaknesses

  • Limited automation and dependency tracking compared to modern project management platforms
  • Report functionality is operational rather than analytical — lacks executive dashboard depth
  • Custom forms and fields require manual schema mapping per account in every migration
  • Geo-fence and attendance data can accumulate large historical datasets needing date-range filtering
  • Pricing has increased significantly from original flat-rate model
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 Basecamp Scout 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

    Basecamp Scout: Not publicly documented — no published API surface, so external rate limits cannot be confirmed without vendor engagement..

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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

Book a free 30 minute consultation

Most Basecamp Scout to Twenty CRM migrations complete within 48–72 hours of clock time for datasets under 25,000 total records. Larger setups with 200,000+ records or complex custom object schemas (geo-tagged attendance logs, multi-inbox custom fields) extend to 5–7 days. The longest planning step is creating the custom object schema for geo-tagged data and alert configurations in Twenty before import runs — typically 2–4 hours of setup work that must precede data migration.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Basecamp Scout.
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