CRM migration

Migrate from Lucep to Twenty CRM

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

Lucep logo

Lucep

Source

Twenty CRM

Destination

Twenty CRM logo

Compatibility

90%

9 of 10

objects map 1:1 between Lucep and Twenty CRM.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

Lucep logo

Lucep

What's pushing teams away

  • Limited CRM depth — Lucep focuses narrowly on lead capture and qualification; teams needing full pipeline management, forecasting, or custom objects outgrow it quickly and migrate to HubSpot or Salesforce.
  • Weak enterprise reporting — the analytics layer is basic compared to dedicated CRM platforms; power users complain about the lack of customizable dashboards and reporting flexibility.
  • API documentation gaps — developers report that Lucep's API docs lack detail on schema, field types, and pagination, making custom integrations and data exports harder to build.
  • Small team, limited support scale — with only ~14 employees, customers with urgent production issues report slower response times than they get from larger vendors.
  • Pricing opacity — the platform offers tiered pricing but does not publish rates publicly, which frustrates SMB buyers evaluating cost against competitors with transparent per-seat pricing.

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

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

maps to

Twenty CRM

Contact

1:1
Fully supported

Lucep 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

maps to

Twenty CRM

Task (Call)

1:1
Fully supported

Lucep 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

maps to

Twenty CRM

Custom Number Field

lossy
Fully supported

Lucep 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

maps to

Twenty CRM

Workspace Assignment (manual rebuild)

1:1
Fully supported

Lucep'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

maps to

Twenty CRM

Task (Call) + Note

1:1
Fully supported

Lucep 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

maps to

Twenty CRM

Contact (custom fields)

1:1
Mapping required

Lucep 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

maps to

Twenty CRM

Webhook (manual rebuild)

1:1
Fully supported

Lucep 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

maps to

Twenty CRM

Workspace Member

1:1
Fully supported

Lucep 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

maps to

Twenty CRM

Tag (Contact)

1:1
Fully supported

Lucep 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)

maps to

Twenty CRM

Contact (deduplication reference)

1:1
Fully supported

Lucep 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.

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.

Lucep logo

Lucep gotchas

High

Lucep API documentation lacks bulk export endpoint

Medium

Routing logic is configuration, not data — it does not migrate

Medium

Facebook Lead Ads forms may use non-standard field names

Low

AI Voice Agent transcripts not always accessible via 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

  • Lucep has no confirmed bulk export endpoint

    Lucep exposes API endpoints for lead and callback data, but the public documentation does not confirm a bulk or batch export endpoint. For accounts with significant lead volume, exporting via individual API requests risks hitting rate limits and extending the migration timeline. Before migration scoping, we request a full data export via Lucep support. If a bulk endpoint is not available, we paginate through the API with retry logic and exponential backoff, flag any truncated result sets upfront, and agree on a delta-reconciliation approach before cutover.

  • Routing rules and AI qualification logic do not migrate

    Lucep's core value is its routing algorithm and AI qualification layer, both of which are platform configuration rather than per-record data. These cannot be exported as structured records and must be manually reimplemented at the destination. We document every active routing rule and qualification threshold during discovery and produce a routing-rebuild specification for the customer's admin. AI qualification scores migrate as custom fields, but the qualification logic that produced them — including AI voice call dispositions — is not transferable.

  • Twenty CRM custom entity import has limited relationship support

    The Twenty CRM GitHub community (discussion #7326) notes that importing custom entities into a new instance has minor support, and there is no clear method to maintain relationships between custom entities during import. For migrations with multiple custom field types, we recommend importing primary objects (Contact) first, then custom objects second, with lookup resolution handled explicitly in the migration script rather than relying on Twenty's native relationship inference during CSV import. We test relationship integrity in a staging environment before production cutover.

  • AI voice transcripts may require manual export from Lucep

    Lucep's AI Voice Agent stores call transcripts and disposition data, but this data may not be fully accessible via the public API. During scoping, we test API access to transcript endpoints. If 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 load. We flag this in the discovery report so it does not surface as a surprise during migration execution.

  • Facebook Lead Ads field names may lose meaning in translation

    Lucep ingests leads from Facebook Lead Ads via integration guides, mapping Facebook form fields to Lucep's internal field names. Facebook form field names are not always intuitive and Lucep's intermediate mapping may obscure the original meaning. We trace the field chain from Facebook form → Lucep → Twenty CRM during discovery and flag any fields that lose meaning in translation, particularly custom Facebook form fields that have no Lucep equivalent. The customer approves field naming in Twenty before migration begins.

Migration approach

Six steps for a successful Lucep to Twenty CRM data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

Lucep logo

Lucep

Source

Strengths

  • Click-to-call widget delivers sub-60-second lead response with zero configuration overhead for sales teams.
  • AI Voice Agent handles inbound and outbound qualification calls at scale across voice, WhatsApp, and SMS.
  • Managed pre-sales execution layer means Lucep not only provides software but runs qualification campaigns on the customer's behalf.
  • Strong integration coverage with Salesforce, Microsoft Dynamics, Zoho, and LeadSquared, allowing it to slot into existing CRM stacks without replacing them.
  • Consulting-led approach to funnel diagnosis means customers get process redesign alongside the tool, targeting Ringing No Response and ownership gaps.

Weaknesses

  • Narrow scope — Lucep covers lead capture and qualification but lacks full CRM capabilities like opportunity management, deal tracking, and revenue forecasting.
  • Limited public API documentation — schema details, field types, pagination, and bulk export endpoints are not fully documented, complicating programmatic data extraction.
  • Small vendor footprint — 14 employees and $5M revenue raise concerns for enterprise buyers about long-term support capacity and product roadmap stability.
  • Pricing not publicly available — tier structures and per-seat or per-lead costs are opaque, making competitive evaluation difficult for buyers.
  • Review volume is very low — only 2 verified reviews on Capterra and GetApp combined, making peer validation difficult for new buyers.
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 Lucep 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

    Lucep: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

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

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

Can't find your answer?

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 consultation

Lucep-to-Twenty migrations are typically faster than full CRM replacements because Lucep holds narrower data volume — lead records, callbacks, and activity timestamps rather than large pipeline histories. Most migrations land between two and four weeks for accounts under 5,000 contacts and 50,000 activity records. Migrations with higher callback volumes, multiple integrations to a primary CRM requiring deduplication, or custom field configurations requiring schema creation in Twenty move to four to eight weeks. Discovery and scoping runs concurrently for one to two weeks before migration execution begins.

Adjacent paths

Related migrations to explore

Ready when you are

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