CRM migration
Field-level mapping, validation, and rollback between Paradym and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Paradym
Source
Twenty CRM
Destination
Compatibility
12 of 13
objects map 1:1 between Paradym and Twenty CRM.
Complexity
BStandard
Timeline
48–72 hours
Overview
Paradigm stores identity data as credential objects with holders, issuers, schemas, and verification events — a fundamentally different shape from Twenty CRM's People/Companies/Opportunities model. FlitStack AI restructures that credential graph into Twenty's relational schema: Paradigm holders migrate as Twenty People with name, email, and phone preserved from credential subject attributes; Paradigm issuers migrate as Twenty Companies with domain and type fields; credential metadata (type, schema, status) maps to custom fields on both objects. Verification events that tracked credential presentations become Notes or Tasks with original timestamps. Custom objects and nested attribute arrays that don't fit standard Twenty fields land as custom fields with serialized JSON or multi-value text. Workflows, presentation templates, and credential templates do not have Twenty equivalents — we export those definitions as JSON so your team can rebuild them. Migration uses Paradigm's REST API (200 req/10s per desk limit) with FlitStack's staged load: companies first, then people with companyId lookups, then verification events. A 24–48 hour delta window catches any in-flight credential issuance during cutover.
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 Paradym 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.
Paradym
Holder
Twenty CRM
People
1:1Paradigm holders — the individuals who hold credentials — map directly to Twenty People. Name, email, phone, and job title from the credential subject attributes migrate as standard People fields. Each holder gets one People record with original create timestamps preserved in custom datetime fields.
Paradym
Holder.identifier
Twenty CRM
People (custom field)
1:1Paradigm's holder identifier is a UUID assigned to each credential holder in the system. Since Twenty People has no native field to store this external reference, we create a custom text field named Paradigm_Holder_ID__c to preserve the identifier. This enables full traceability back to the original Paradigm record and supports de-duplication logic across multiple migration runs or delta synchronizations.
Paradym
Issuer
Twenty CRM
Company
1:1Paradigm credential issuers — the organizations that issue credentials — map to Twenty Companies. Issuer name, domain, and type map to Company.name, Company.domain, and a custom type field. Multiple credentials issued by the same issuer collapse to one Company record with a credential count custom field.
Paradym
Issuer.identifier
Twenty CRM
Company (custom field)
1:1The Paradigm issuer UUID is the unique identifier assigned to each issuing organization. Twenty Company records have no native field for storing external system identifiers, so we create Paradigm_Issuer_ID__c as a custom text field on the Company object. This field enables cross-system reference, traceability during reconciliation, and delta-sync matching between Paradigm issuer data and Twenty Company records.
Paradym
Credential
Twenty CRM
Custom Object: Credential
1:1Paradigm credentials have no native CRM equivalent in Twenty. We create a custom Credential object in Twenty (on Organization tier or above) with fields for credentialId, type, status, issueDate, expiryDate, holderId (lookup to People), and issuerId (lookup to Company). This is the core structural addition for this migration.
Paradym
Credential type
Twenty CRM
Credential.name / Credential.type
1:1The credential type designation (such as 'VerifiedEmail' or 'ProofOfEmployment') from Paradigm maps to either the name field or a custom type pick-list on the Twenty Credential custom object. Exact type values are preserved exactly as they appear in Paradigm and are fully configurable within Twenty's field settings post-migration.
Paradym
Credential schema
Twenty CRM
Credential (custom field)
1:1Paradigm SD-JWT VC schemas define the structural layout of attributes within a credential. The schema identifier URL is migrated as a text field called Credential_Schema__c on the Credential custom object. This preserves the original schema reference so your team can audit the original attribute definitions and validate credential contents against the source schema.
Paradym
Verification Event
Twenty CRM
Task
1:1Paradigm tracks credential presentations as verification events — when a holder presented a credential to a verifier. Each verification event becomes a Twenty Task linked to the corresponding Credential record and holder People record. Task subject carries the verification outcome (verified/rejected), and original timestamps are preserved.
Paradym
Nested attribute (array)
Twenty CRM
Custom field (serialized) or individual fields
1:1Paradigm nested attributes (such as person.name combined with person.address under a 'person' key, or multiple nationalities under a 'nationalities' array) require transformation for Twenty's flat field model. We offer two approaches: individual custom fields for each sub-attribute (recommended when there are up to 10 attributes for clean reporting), or serialized JSON in a Nested_Attributes_JSON__c text field for complex or larger attribute sets.
Paradym
Credential Template
Twenty CRM
No equivalent
1:1Paradigm SD-JWT VC credential templates define attribute schemas, validity rules, and revocation settings for issued credentials. Twenty CRM contains no credential template concept — there is no object, field, or configuration in Twenty that models credential issuance templates. We export all Paradigm template definitions as JSON, including nested attribute configurations, template identifiers, and revocation rules, so your identity engineering team can reconstruct them in a dedicated credential issuance platform.
Paradym
Presentation Template
Twenty CRM
No equivalent
1:1Paradigm presentation templates control which credential attributes are shared during verification and how disclosure formatting is handled. Twenty CRM has no equivalent feature to model selective attribute presentation. These must be rebuilt entirely within a dedicated identity or verification platform, or potentially through Twenty's workflow builder if selective disclosure capabilities are required in your target environment.
Paradym
Credential status (active/revoked)
Twenty CRM
Credential.status (custom pick-list)
1:1Paradigm credential revocation status requires mapping to a custom pick-list field on the Credential custom object with values for Active, Revoked, and Expired. For audit continuity, we also add datetime fields such as Revoked_At__c to capture the exact timestamp when any credential status changed. This preserves the complete revocation timeline from Paradigm in your Twenty workspace.
Paradym
Holder-Issuer relationship
Twenty CRM
People (lookup) + Credential (junction)
many:1A Paradigm holder can receive credentials from multiple issuers and an issuer can issue to multiple holders, creating a many-to-many relationship that Twenty's flat object model does not natively support. We model this by creating a People record for each holder, a Company record for each issuer, and a Credential custom object with lookups to both. The Credential object serves as the junction record that connects holders to issuers through their respective credentials.
| Paradym | Twenty CRM | Compatibility | |
|---|---|---|---|
| Holder | People1:1 | Fully supported | |
| Holder.identifier | People (custom field)1:1 | Fully supported | |
| Issuer | Company1:1 | Fully supported | |
| Issuer.identifier | Company (custom field)1:1 | Fully supported | |
| Credential | Custom Object: Credential1:1 | Fully supported | |
| Credential type | Credential.name / Credential.type1:1 | Fully supported | |
| Credential schema | Credential (custom field)1:1 | Fully supported | |
| Verification Event | Task1:1 | Fully supported | |
| Nested attribute (array) | Custom field (serialized) or individual fields1:1 | Fully supported | |
| Credential Template | No equivalent1:1 | Fully supported | |
| Presentation Template | No equivalent1:1 | Fully supported | |
| Credential status (active/revoked) | Credential.status (custom pick-list)1:1 | Fully supported | |
| Holder-Issuer relationship | People (lookup) + Credential (junction)many: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.
Paradym gotchas
Social integration drops after extended use
Sparse API documentation limits programmatic export
Marketing assets have template dependencies
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 Paradigm credential graph and map to Twenty schema
We extract a full inventory of Paradigm holders, issuers, credentials, and verification events via the REST API. During this phase we identify nested attributes that need flattening, count issuer-holder relationships to understand the junction complexity, and check credential status distribution (active/revoked/expired). We also export credential templates and presentation templates as JSON for your rebuild reference. The output is a field-level mapping document — not a black box — so your team can review every decision before data moves.
Set up Twenty workspace and create Credential custom object
We create the Credential custom object in your Twenty workspace with all required fields (credentialId, type, status, issuedAt, expiresAt, schemaUrl, holderId lookup, issuerId lookup) and custom fields for paradigm IDs. We also add custom fields to People and Company for Paradigm_Holder_ID__c and Paradigm_Issuer_ID__c. If your Twenty workspace is on the Free or Starter tier, we flag the custom-object limitation before creating the schema and propose an alternative mapping strategy.
Load Companies first, then People with companyId lookups
Twenty requires Companies to exist before People can reference them via companyId. We migrate issuers into Companies first, preserving name, domain, type, and the Paradigm_Issuer_ID__c field. Then we migrate holders into People, resolving each holder's companyId by matching the issuer UUID from the credential data to the Paradigm_Issuer_ID__c on Company records. Any holders with unmatched issuer references are flagged for manual resolution before the credential step proceeds.
Migrate credentials and verification events with relationship resolution
With People and Companies in place, we migrate Credential records. Each Credential record gets its holderId resolved by matching holder UUID to Paradigm_Holder_ID__c on People, and issuerId resolved by matching issuer UUID to Paradigm_Issuer_ID__c on Companies. Verification events then migrate as Tasks linked to the correct People and Credential records. Any orphaned records (missing holder or credential) are held with a clear flag rather than created without links. FlitStack respects Paradigm's 200 req/10s rate limit using adaptive pacing.
Run sample migration with field-level diff and delta window
A representative slice — typically 200–500 records spanning multiple issuers, holder types, credential statuses, and verification events — migrates first. We generate a field-level diff showing source values against Twenty destination values for every mapped field. Your team reviews the diff and confirms credential attribute handling (individual fields vs. JSON serialization) before the full run commits. After the full migration, a 24–48 hour delta window captures any new holders, credentials, or verification events created in Paradigm during the cutover. Audit log and one-click rollback are available if reconciliation reveals unexpected gaps.
Platform deep dives
Paradym
Source
Strengths
Weaknesses
Twenty CRM
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 2 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 Paradym and Twenty CRM.
Object compatibility
2 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
Paradym: Not publicly documented for paradym.com CRM; Constellation1 backend may impose undisclosed limits.
Data volume sensitivity
Paradym 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 Paradym to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Paradym 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 Paradym
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.