CRM migration
Field-level mapping, validation, and rollback between Agent Legend and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Agent Legend
Source
Twenty CRM
Destination
Compatibility
12 of 12
objects map 1:1 between Agent Legend and Twenty CRM.
Complexity
BStandard
Timeline
24–72 hours of active migration time
Overview
Agent Legend organizes its real estate CRM around Contacts, Companies, Deals, and Campaigns with an AI-powered lead scoring engine (Lily) that ranks prospects against 1,600+ third-party data points and 270 million U.S. adult profiles. The platform tracks outreach across email, SMS, and voice through campaign members, and integrates with 500+ tools including Zillow, Follow Up Boss, and Zapier. Twenty CRM uses a simpler object model: People for contacts, Companies for organizations, Opportunities for deals, plus Notes and Tasks for activity tracking. Custom objects are supported (up to 10 on Pro, unlimited on Organization). This migration carries everything Agent Legend stores natively — contacts, companies, deals, campaign membership, Lily lead scores, activities, and custom fields — into Twenty's object graph. The primary translation challenges are mapping Agent Legend's campaign and outreach data to Twenty's Activity model, preserving Lily lead scores as custom Number fields, and handling Agent Legend's N:N contact-to-company relationships within Twenty's relational structure. FlitStack sequences the migration so Companies load before People (required by the companyId foreign key), then Opportunities last, and surfaces your Agent Legend automation logic for manual rebuild in Twenty's no-code workflow builder. File attachments require separate re-upload since Agent Legend's CSV export does not include binary files.
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 Agent Legend 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.
Agent Legend
Contact
Twenty CRM
People
1:1Agent Legend Contact maps 1:1 to Twenty People. All standard contact fields (name, email, phone, address, job title) transfer directly. Owner assignment resolves by email match to a Twenty workspace member — unmatched owners are flagged before migration so the team can invite them or assign a fallback owner before records land.
Agent Legend
Company
Twenty CRM
Company
1:1Agent Legend Company maps to Twenty Company. Company name, domain, industry, employee count, and revenue fields transfer directly. Agent Legend parent-company hierarchies map to the Twenty Company relation field where available. Multiple company associations per contact are surfaced post-migration for manual linking.
Agent Legend
Deal
Twenty CRM
Opportunity
1:1Agent Legend Deals map to Twenty Opportunities. Deal name, amount, stage, and expected close date map to Opportunity fields. Deal stage values are mapped via value-mapping since Twenty's Opportunity stage pick-list is configurable. Deal owner resolves via email match to Twenty workspace member.
Agent Legend
Campaign
Twenty CRM
Custom Object (Campaign)
1:1Agent Legend Campaign has no native equivalent in Twenty's standard object model. We create a Campaign custom object in Twenty during schema setup with fields for name, type, status, start date, and end date. Campaign metadata migrates as records in this custom object. This is the foundation for campaign-level reporting in Twenty.
Agent Legend
Campaign Member
Twenty CRM
Custom Junction Object (CampaignMember)
1:1Campaign membership links a Contact to a Campaign with a status field. Twenty has no built-in membership tracking. We create a CampaignMember junction object that links People records to Campaign custom object records using email as the unique identifier. This preserves the many-to-many relationship from Agent Legend.
Agent Legend
Lily Lead Score
Twenty CRM
Custom Number field (Lead_Score__c) on People
1:1Agent Legend's Lily AI lead score (integer 0–100) has no native equivalent in Twenty. We create a custom Number field called Lead_Score__c on the People object during schema setup. Lily scores populate during migration, and teams can use this field in Twenty's filter views, kanban grouping, and API exports. This preserves the prioritization signal built in Agent Legend.
Agent Legend
Activity (Email, SMS, Call log)
Twenty CRM
Task
1:1Agent Legend logs outreach activities (email, SMS, call) on contact records with original timestamps and owners. We map these to Twenty Tasks with Task Type pick-list values (Email, Call, SMS) so the outreach history is searchable in Twenty. Each Task is linked to the People record via the relation field. Note that Twenty's activity tracking is manual by default — new outreach must be logged by users or via API.
Agent Legend
Note / Attachment
Twenty CRM
Note
1:1Agent Legend notes on contacts and companies migrate to Twenty's Note object. We map the note body directly. File attachments are not included in Agent Legend's CSV export — we document which records had attachments so the team can re-upload them post-migration. Large attachment volumes may require a separate file transfer step via API.
Agent Legend
Custom Field (any object)
Twenty CRM
Custom Field on corresponding object
1:1Agent Legend custom fields on Contacts, Companies, Deals, or any custom object map to Twenty custom fields. We create matching custom fields in Twenty's data model before migration, matching field types (text, number, date, select, multi-select). Select and multi-select fields preserve the value list from Agent Legend. Teams should review custom field usage during scoping to decide which fields are worth migrating.
Agent Legend
User / Owner
Twenty CRM
Workspace Member
1:1Agent Legend users and owners are matched to Twenty workspace members by email address. We run an email lookup against the Twenty workspace during migration. Unmatched owners are flagged in the migration report — the team either invites them to Twenty first or assigns their records to a fallback owner. No record lands without a valid Twenty owner assignment.
Agent Legend
Tag / Label
Twenty CRM
Custom select field on People
1:1Agent Legend tags on contacts (e.g., 'Hot Lead', 'Investor', 'Past Client') have no native equivalent in Twenty. We map these to a custom select field (Contact_Tags__c) on the People object. Teams can consolidate overlapping tags or rename them during migration planning to reduce the pick-list size in Twenty.
Agent Legend
Pipeline (Deal Group)
Twenty CRM
Twenty pipeline view / Opportunity stage grouping
1:1Agent Legend pipelines group deals by stage. Twenty uses Opportunity stage values and kanban grouping to represent pipeline views. We map each Agent Legend pipeline to a set of Opportunity stage values in Twenty. Stage probability and order are preserved as custom fields if the team uses them for forecasting. Pipeline configuration is rebuilt in Twenty's kanban UI post-migration.
| Agent Legend | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact | People1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Campaign | Custom Object (Campaign)1:1 | Fully supported | |
| Campaign Member | Custom Junction Object (CampaignMember)1:1 | Fully supported | |
| Lily Lead Score | Custom Number field (Lead_Score__c) on People1:1 | Fully supported | |
| Activity (Email, SMS, Call log) | Task1:1 | Fully supported | |
| Note / Attachment | Note1:1 | Fully supported | |
| Custom Field (any object) | Custom Field on corresponding object1:1 | Fully supported | |
| User / Owner | Workspace Member1:1 | Fully supported | |
| Tag / Label | Custom select field on People1:1 | Fully supported | |
| Pipeline (Deal Group) | Twenty pipeline view / Opportunity stage grouping1:1 | 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.
Agent Legend gotchas
Lily AI scores do not export from Agent Legend
CRM integration tokens and OAuth connections do not transfer
Contact-level per-message pricing creates billing risk on high-volume imports
Custom fields are not fully documented in the public API
Letter templates use proprietary merge tag syntax
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
Audit Agent Legend data and build Twenty schema plan
We export a full data snapshot from Agent Legend covering Contacts, Companies, Deals, Campaigns, Campaign Members, Activities, Notes, and custom fields. We audit record counts, identify custom field usage, and map Agent Legend's campaign types to Twenty custom object schemas. The output is a Twenty schema setup plan: which custom objects to create (Campaign, CampaignMember), which custom fields to add (Lead_Score__c, Lifecycle_Stage__c, Original_Create_Date__c), and the field types for each. Your Twenty admin creates the schema before migration runs.
Resolve owners and invite users to Twenty
Agent Legend owner IDs are matched to Twenty workspace members by email. We run an email lookup against the Twenty workspace and flag any owner without a matching user account. Your team either invites those users to Twenty first or designates a fallback owner. No record migrates without a valid Twenty owner — this prevents orphaned records in the target system.
Migrate in dependency order: Companies → People → Opportunities → Campaigns → Activities
Twenty's foreign key model requires Companies to exist before People can link via companyId, and People to exist before Opportunities can reference them. We sequence the migration so the relational graph resolves correctly: Companies first, then People with companyId lookups resolved, then Opportunities with contact and company links, then Campaign and CampaignMember custom object records, then Tasks for activity history. This prevents import errors and broken relationship links in Twenty.
Run sample migration with field-level diff before full run
A representative slice migrates first — typically 100–500 records spanning contacts across multiple companies, a few deals, campaign members, and activity logs. We generate a field-level diff between source and destination so you can verify Lily score mapping, campaign type mapping, company resolution, and owner assignment before the full run commits. Any field mapping errors are corrected in the transformation logic before the production migration runs.
Execute full migration with delta-pickup and audit log
The full migration loads all records into Twenty using the validated field mapping. A delta-pickup window (typically 24–48 hours) captures any records created or modified in Agent Legend during the cutover window — your team keeps working in Agent Legend while the migration runs. An audit log records every operation (created, updated, linked, skipped) so the team can reconcile record counts after go-live. If reconciliation reveals gaps, one-click rollback reverts the Twenty workspace to its pre-migration state so the team can re-run cleanly.
Platform deep dives
Agent Legend
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 Agent Legend and Twenty CRM.
Object compatibility
1 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
Agent Legend: Not publicly documented.
Data volume sensitivity
Agent Legend 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 Agent Legend to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Agent Legend 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 Agent Legend
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.