CRM migration
Field-level mapping, validation, and rollback between Swift Digital Suite and Twenty CRM. We move data and schema; workflows are rebuilt natively in Twenty CRM.
Swift Digital Suite
Source
Twenty CRM
Destination
Compatibility
7 of 10
objects map 1:1 between Swift Digital Suite and Twenty CRM.
Complexity
BStandard
Timeline
3-4 weeks
Overview
Moving from Swift Digital Suite to Twenty CRM is a marketing-automation-to-CRM migration where the core contact and engagement records transfer but the campaign execution layer does not. Swift Digital Suite has no publicly documented bulk export API, so we extract contact profiles, engagement scores, segment memberships, and activity history through the platform's dashboard reporting interface and paginated record retrieval. We collapse the source's separate email and SMS unsubscribe flags into Twenty's single opt-out field using the more restrictive state, preserving engagement scores as static numeric reference fields rather than expecting them to recalculate identically. Survey responses and event registrations move as structured rows linked to the People record. Automation workflows and survey conditional logic are documented but not migrated as code; we deliver a written inventory for the customer's admin to rebuild in Twenty or a connected automation tool. Twenty requires all custom fields to exist in Settings before import, so we provision the target schema first, then run the migration in dependency order: People first (with segment tags applied), then Companies, Opportunities, and Activity history as Tasks and Notes.
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 Swift Digital Suite 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.
Swift Digital Suite
Contact
Twenty CRM
People
1:1Swift Digital Suite Contacts map to Twenty CRM People records. We export the full contact profile including email address, first name, last name, phone, custom properties, engagement score, segment membership, and lifecycle stage. The contact's email address becomes the People email field and serves as the dedupe key during import. Engagement score migrates as a numeric custom field (e.g., swift_engagement_score__c) because Twenty has no native scoring algorithm. Segment memberships map as Tags applied to the People record in Twenty. Lifecycle stage maps to a text or select custom field for reference. The contact's SMS consent and email subscription flags collapse into Twenty's single opt-out field using the more restrictive state.
Swift Digital Suite
Company
Twenty CRM
Company
1:1Swift Digital Suite does not have a native Company or Account object, but enterprise contacts often store organisation name in a custom property or as a related record. We extract the organisation name from the contact's custom properties, deduplicate unique organisation values, and create Twenty Company records first, then link People records to the resolved Company via the ManyPeople relation. This ensures the People-to-Company relationship is satisfied at insert time rather than patched in a second pass.
Swift Digital Suite
Segment
Twenty CRM
Tag
lossySwift Digital Suite segments are named groups of contacts based on behavioural or demographic criteria. We export each segment as a distinct tag name and apply it to every People record that was a member. In Twenty, tags are a first-class concept on People. If the customer uses segments as dynamic audience lists rather than static tags, we document the segment definition as a written criteria map so the customer's admin can recreate the dynamic logic in Twenty's filter views or a connected automation tool.
Swift Digital Suite
Email Send / Email History
Twenty CRM
Task (emails type)
1:1Individual email sends from Swift Digital Suite campaigns are tied to contacts. We export the send timestamp, open timestamp, click events, and bounce or unsubscribe status for each contact-campaign pair. In Twenty, email engagement events become Tasks with a custom email type (e.g., taskType = email_sent, email_opened, email_clicked) and the campaign name stored in the body or a custom field. The ActivityDate preserves the original send or open timestamp for timeline ordering. Bounce and unsubscribe events update the People opt-out field accordingly.
Swift Digital Suite
SMS Record
Twenty CRM
Note
1:1SMS sends from Swift Digital Suite are tied to contacts and campaigns. We export the message content, direction (inbound or outbound), timestamp, and SMS consent flag. In Twenty, SMS records become Note records attached to the People record, with a custom field indicating direction and campaign association. The contact's SMS opt-out flag collapses into the single People opt-out field as described above. If the customer requires SMS history to be queryable as structured data rather than Notes, we recommend creating a custom SMS object in Twenty before migration.
Swift Digital Suite
Event Registration
Twenty CRM
Task
1:1Swift Digital Suite event registrations include registration date, ticket type, attendance status, and RSVP history. We export the full event roster as a contact-level log of event participation. In Twenty, each registration becomes a Task record linked to the People record, with the event name as the subject, ticket type in a custom field, and attendance status in another. Event-level custom fields (venue, speaker, capacity) are stored as custom fields on the Task.
Swift Digital Suite
Survey Response
Twenty CRM
Custom Fields or Note
lossySurvey responses in Swift Digital Suite are tied to contacts as structured answer data. We export all question-answer pairs as flat rows per contact. In Twenty, we map each survey question to a custom field on People (for single-response surveys) or create a Note with the full response block (for multi-question surveys). Survey conditional branching and skip logic are not exposed in the export and cannot be migrated; we document the survey structure as a written description so the customer's admin can evaluate whether rebuild is needed in a dedicated survey tool or as form logic in a connected tool.
Swift Digital Suite
Campaign
Twenty CRM
Custom Object or Tag
lossySwift Digital Suite campaigns are parent containers for email sends, survey triggers, and event invitations. Campaign metadata (name, type, created date, status) is exported as structured records. In Twenty, which has no native campaign object, we map campaigns to a custom Campaign object we pre-create with fields for name, type, start date, and status. Campaign membership (which contacts received which campaign communications) is preserved as Tags on People linked to the campaign record via a custom lookup field.
Swift Digital Suite
Automation Workflow
Twenty CRM
(documented only)
1:1Swift Digital Suite automation workflows define trigger conditions, time delays, and action steps. We document the workflow as a structured record showing the trigger, each step, and its conditions, including which contacts are enrolled and which actions fire. Because workflows are code-equivalent and depend on Twenty's own Workflow Automation feature (which requires custom fields to pre-exist), we do not migrate them as executable configuration. We deliver a written workflow inventory document for the customer's admin to review and rebuild in Twenty or a connected automation platform such as Zapier, Make, or n8n.
Swift Digital Suite
Custom Property
Twenty CRM
Custom Field
1:1Contacts and campaigns in Swift Digital Suite support custom properties. We extract all active custom property names and values, map them to identically named custom fields in Twenty's Data Model, and verify that the field type is compatible (text maps to text, number maps to number, date maps to date, select maps to select). Fields must be pre-created in Twenty Settings before the People import runs; we coordinate this with the customer during scoping and confirm all fields exist in the target workspace before production migration begins.
| Swift Digital Suite | Twenty CRM | Compatibility | |
|---|---|---|---|
| Contact | People1:1 | Fully supported | |
| Company | Company1:1 | Fully supported | |
| Segment | Taglossy | Fully supported | |
| Email Send / Email History | Task (emails type)1:1 | Fully supported | |
| SMS Record | Note1:1 | Fully supported | |
| Event Registration | Task1:1 | Fully supported | |
| Survey Response | Custom Fields or Notelossy | Fully supported | |
| Campaign | Custom Object or Taglossy | Fully supported | |
| Automation Workflow | (documented only)1:1 | Fully supported | |
| Custom Property | Custom Field1: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.
Swift Digital Suite gotchas
No publicly documented bulk API
Email and SMS opt-out flags are separate
Survey conditional logic is not exportable as-is
Engagement scores are platform-specific snapshots
Annual pricing model requires contract alignment
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 Swift Digital Suite export assessment
We audit the Swift Digital Suite workspace across contact volume, active segments, campaign history, survey definitions, event records, SMS history, custom properties, and automation workflow count. We assess the export feasibility: if the database exceeds 50,000 contacts, we agree on a scope-cut date with the customer to freeze new records and avoid migration-window growth. We produce a written migration scope document listing every record type, estimated row counts, and the export method (dashboard pull vs. paginated retrieval) for each object.
Twenty CRM workspace provisioning and custom field creation
We work with the customer's admin to provision the Twenty CRM workspace: inviting all team members (required for Owner lookups), creating any custom objects (Campaign, SMS Log), and creating all custom fields referenced in the Swift Digital Suite export. We confirm that every field type is correctly set (text, number, date, select options) and that the Advanced mode is enabled so we can reference API field names during import. This step completes before any export begins because Twenty's import requires the target schema to be fully defined.
Swift Digital Suite export and data validation
We run the Swift Digital Suite export using the platform's reporting dashboard for bulk contact records and paginated retrieval for activity history. We validate the export output against expected row counts, check for null values in required fields, and confirm that date formats are consistent. For contacts with missing organisation names, we flag them for the customer to review and supply before migration. We produce a data quality report showing duplicate email addresses, missing required fields, and any records that exceed the migration scope-cut date.
Opt-out flag collapsing and segment-to-tag mapping
We apply the opt-out collapsing logic: for each contact, we compare the email unsubscribe flag and the SMS unsubscribe flag from Swift Digital Suite, set Twenty's single opt-out field to true if either source flag is true, and populate channel-specific custom fields (email_opt_out__c, sms_opt_out__c) if the customer has opted to track them separately. We also transform segment memberships into Twenty Tags, mapping each segment name to a distinct tag label applied to the People record.
Production migration in dependency order
We run production migration in record-dependency order: Companies first (deduplicated from contact organisation data), then People (with Tags applied and opt-out flags set), then Tasks and Notes for email history, SMS history, and event participation, then Survey responses (as Notes or custom field values). Each phase emits a row-count reconciliation report showing records imported, records skipped, and records rejected with error reasons. We resolve rejects in a correction pass before proceeding to the next phase.
Cutover, validation, and workflow inventory handoff
We freeze Swift Digital Suite writes during cutover, run a final delta migration of any records modified during the migration window, then confirm Twenty CRM as the system of record. We validate a random sample of 25-50 records against the Swift Digital Suite source for field-level accuracy. We deliver the automation workflow inventory document, the survey structure document, and the data quality report to the customer's admin. We support a one-week hypercare window for reconciliation issues. We do not rebuild Swift Digital Suite workflows in Twenty as part of the migration scope; that is a separate engagement.
Platform deep dives
Swift Digital Suite
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 Swift Digital Suite 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
Swift Digital Suite: Not publicly documented in the v3 API reference.
Data volume sensitivity
Swift Digital Suite exposes a bulk API — large-volume migrations stream efficiently.
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 Swift Digital Suite to Twenty CRM migration scoping. Not seeing yours? Book a call.
Walk through your Swift Digital Suite 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 Swift Digital Suite
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.