CRM migration
Field-level mapping, validation, and rollback between Lucep and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Lucep
Source
Twenty CRM
Destination
Compatibility
9 of 10
objects map 1:1 between Lucep and Twenty CRM.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Lucep is a lead-response platform built around a 60-second click-to-call loop and an AI voice layer that orchestrates qualification across phone, WhatsApp, and SMS. It is not a full CRM — teams that need pipeline management, deal tracking, or custom objects quickly find Lucep is an intelligence overlay rather than a system of record. Twenty CRM is an open-source TypeScript CRM built by a Y Combinator-backed Paris team with 40,000+ GitHub stars; it is self-hostable free forever or run on Twenty's managed cloud. The migration moves Lucep's lead and callback data into Twenty's Contact and Person objects, preserves timing chains as activity records, and documents every active routing rule in a specification the customer's admin can reimplement in Twenty's workspace settings. We do not migrate routing algorithms, AI qualification logic, or Lucep webhook configurations as code; these require manual rebuild at the destination.
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 Lucep 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.
Lucep
Lead
Twenty CRM
Contact
1:1Lucep Lead records map to Twenty CRM Contact. The Lucep lead capture timestamp, source channel (website, Facebook, form), routing assignment, and response timestamps migrate as Contact fields and activity log entries. We use email address as the deduplication key. If the customer uses a primary CRM alongside Lucep, we de-duplicate against existing Contact records before insert to avoid creating duplicates when migrating from both sources simultaneously.
Lucep
Callback Request
Twenty CRM
Task (Call)
1:1Lucep Callback records (the click-to-call interaction) map to Twenty CRM Task records with a call-log structure. The callback timestamp, originating channel, assigned agent, and outcome (answered, missed, voicemailed) transfer as task fields. The timing chain from first touch to first conversation is preserved as a chronological activity entry against the Contact record. Disposition notes from the callback migrate as Task body text.
Lucep
Lead Qualification Score
Twenty CRM
Custom Number Field
lossyLucep qualifies leads automatically via AI voice, WhatsApp, and SMS channels, producing a qualification score and status stored per lead in Lucep's field model. These map to a custom number field on Twenty CRM's Contact object. The customer's admin names and thresholds the field during workspace setup. We document the source field names from Lucep during discovery so the admin knows exactly which Lucep property maps to which Twenty field.
Lucep
Routing Rule
Twenty CRM
Workspace Assignment (manual rebuild)
1:1Lucep's routing rules assign leads to team members or queues based on custom algorithms — this is configuration, not data, and cannot be exported as structured records. We extract the current routing configuration during discovery, document every active rule (trigger conditions, target agent or queue, priority order) in a routing-rebuild specification, and hand it to the customer's admin for manual reimplementation in Twenty CRM's workspace settings. Routing is not migrated.
Lucep
AI Voice Agent Interaction
Twenty CRM
Task (Call) + Note
1:1Lucep AI Voice Agent call transcripts and disposition data may not be fully accessible via the public API. During scoping we test API access to transcript endpoints. Where transcripts are available via API, they migrate as Note records linked to the Contact. Where transcripts are gated, we advise the customer to export manually from the Lucep dashboard before cutover and we handle the file import as a supplemental data load. Call duration and disposition migrate as Task fields in both cases.
Lucep
Facebook Lead Ads Data
Twenty CRM
Contact (custom fields)
1:1Lucep ingests leads from Facebook Lead Ads via integration guides, mapping Facebook form field names to Lucep's internal field names. When migrating, we trace the field chain from Facebook form → Lucep → Twenty CRM and flag any Lucep fields that have no Twenty equivalent. Custom Facebook form fields that have no standard Lucep field to map into become custom fields on Twenty Contact, named to preserve their Facebook-origin meaning. The customer approves the field naming during scoping.
Lucep
Webhook Configuration
Twenty CRM
Webhook (manual rebuild)
1:1Lucep supports webhook-based lead distribution to external systems. These are platform settings, not data records, and cannot be migrated as active connections. We document every active webhook endpoint, payload structure, and trigger condition during discovery so the customer's admin can reconfigure them in Twenty CRM's workspace settings or via a developer tool that supports inbound webhooks. The handoff document includes the full webhook payload schema observed in Lucep.
Lucep
User / Team Assignment
Twenty CRM
Workspace Member
1:1Lucep assigns leads to users or teams. We export the user-to-lead assignment relationship and map it to Twenty CRM's workspace member model by email address. Lucep user records may not carry full profile data (role, department, phone); we flag any missing fields and map the available fields. If the customer's Twenty workspace is new, we provide a user provisioning list with the Lucep assignments so the admin can create matching workspace members before record import begins.
Lucep
Tag / Lead Segment
Twenty CRM
Tag (Contact)
1:1Lucep allows tagging and segmentation of leads. We extract tags as flat label strings and map them to Twenty CRM's Contact tag fields. If Twenty's tag model differs from Lucep's (for example, if Twenty uses a different character limit or delimiter convention), we document the transformation rule. Tags used for lead segmentation migrate as string arrays that the customer's admin can reassign in Twenty's tag management view.
Lucep
Integration Record (Salesforce, Dynamics, Zoho, LeadSquared)
Twenty CRM
Contact (deduplication reference)
1:1Lucep syncs lead data bidirectionally with connected CRMs. When migrating out of Lucep, we account for which records may already exist in the customer's primary CRM and de-duplicate based on email address and external ID before writing to Twenty CRM. For teams running Lucep alongside a CRM already, we use the CRM's existing Contact records as the dedupe source rather than the Lucep record, preventing duplicate creation at migration time.
| Lucep | Twenty CRM | Compatibility | |
|---|---|---|---|
| Lead | Contact1:1 | Fully supported | |
| Callback Request | Task (Call)1:1 | Fully supported | |
| Lead Qualification Score | Custom Number Fieldlossy | Fully supported | |
| Routing Rule | Workspace Assignment (manual rebuild)1:1 | Fully supported | |
| AI Voice Agent Interaction | Task (Call) + Note1:1 | Fully supported | |
| Facebook Lead Ads Data | Contact (custom fields)1:1 | Mapping required | |
| Webhook Configuration | Webhook (manual rebuild)1:1 | Fully supported | |
| User / Team Assignment | Workspace Member1:1 | Fully supported | |
| Tag / Lead Segment | Tag (Contact)1:1 | Fully supported | |
| Integration Record (Salesforce, Dynamics, Zoho, LeadSquared) | Contact (deduplication reference)1: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.
Lucep gotchas
Lucep API documentation lacks bulk export endpoint
Routing logic is configuration, not data — it does not migrate
Facebook Lead Ads forms may use non-standard field names
AI Voice Agent transcripts not always accessible via API
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
Discovery and Lucep data audit
We audit the customer's Lucep account to inventory all Lead records, Callback records, routing rules, AI Voice Agent interactions, webhook configurations, user assignments, tags, and any connected CRM integrations. We request a full data export from Lucep support and test API access to transcript and bulk endpoints. The discovery output is a written scope document listing every object to migrate, every routing rule to document, and every configuration item requiring manual rebuild at the destination.
Twenty CRM workspace setup
We provision the Twenty CRM workspace (self-hosted or cloud) or connect to the customer's existing instance. We create custom fields on Contact to receive Lucep qualification scores, callback timestamps, and Facebook Lead Ads custom fields. We document the workspace user list against Lucep's user assignments so the admin can provision matching workspace members. We set up the Opportunity pipeline and stage model if the customer intends to track deal progress in Twenty.
Routing-rule and webhook documentation
We extract every active Lucep routing rule and webhook configuration, document the trigger conditions and target assignments, and produce a routing-rebuild specification and webhook-rebuild specification for the customer's admin. This is a written deliverable, not a data migration task. Routing logic and webhook connections require manual reimplementation in Twenty's workspace settings after cutover.
Contact and callback migration with deduplication
We migrate Lucep Leads to Twenty CRM Contacts in dependency order: contacts first (with deduplication against any existing CRM records), then callbacks as Task records linked to the resolved Contact. We use email address as the dedupe key and flag any duplicate candidates for the customer's admin to resolve before the next phase. We preserve the original Lucep lead capture timestamp, source channel, and response timing chain as Contact fields and activity records.
Activity history and transcript supplemental load
AI Voice Agent call records migrate as Task (call) entries with disposition and duration preserved. Where API access to transcripts is confirmed, we load them as Note records linked to the Contact. Where transcripts are unavailable via API, we load the manually exported files as a supplemental data load after cutover. We flag any gaps in the transcript timeline and note them in the migration report.
Cutover, validation, and handoff
We freeze Lucep writes during cutover, run a final delta migration of records modified during the migration window, then enable Twenty CRM as the system of record. We deliver the routing-rebuild specification and webhook-rebuild specification to the customer's admin. We run a row-count reconciliation report against the Lucep source and a spot-check of 25-50 records against the source. We support a one-week hypercare window for reconciliation issues. We do not rebuild Lucep routing rules in Twenty; that work belongs to the customer's admin using the specification we deliver.
Platform deep dives
Lucep
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 Lucep 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
Lucep: Not publicly documented.
Data volume sensitivity
Lucep 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 Lucep to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Lucep 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 Lucep
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.