CRM migration
Field-level mapping, validation, and rollback between Combit CRM and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Combit CRM
Source
Salesforce Sales Cloud
Destination
Compatibility
11 of 14
objects map 1:1 between Combit CRM and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
4-8 weeks
Overview
Moving from Combit CRM to Salesforce Sales Cloud requires navigating a platform that has no public REST API and a German-language-only administrative surface. We extract via direct database access when the on-premise version is in use, or via structured CSV/Excel exports from the cloud instance, then transform and load through the Salesforce Bulk API 2.0. Combit stores contacts in a two-table model (Kontakte linked to Anschriften) that maps to the Salesforce Contact-Address relationship; Deals (Verkäufe/Geschäfte) in configurable pipelines map to Salesforce Opportunity with the stage structure rebuilt as Record Types and Sales Processes. Activities (Aktivitäten) including calls, meetings, tasks, and notes migrate as Task and Event records with parent-record lookups resolved at load time. Projects (Projekte) require a custom object or Opportunity-line mapping depending on project structure. We do not migrate workflows, automations, or custom export templates; we deliver a written inventory of every Combit workflow requiring rebuild in Salesforce Flow.
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 Combit CRM object lands in Salesforce Sales Cloud, including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
Combit CRM
Anschriften (Addresses)
Salesforce Sales Cloud
Contact Address ( MailingAddress / ShippingAddress )
1:1Combit CRM's address model stores physical locations as Anschriften records that link to one or more Kontakte (Contacts) via a relational key. We extract the address table (including fields for street, city, postal code, country, and any custom address fields), then write the address values directly into Salesforce's standard MailingAddress and ShippingAddress compound fields on the Contact object. For accounts with multiple billing or shipping addresses, we create a custom Address__c object with a Contact__c lookup to preserve the multi-address structure, with IsPrimaryAddress__c as a boolean flag for default resolution.
Combit CRM
Kontakte (Contacts)
Salesforce Sales Cloud
Contact
1:1Contacts are the core object in Combit CRM. We migrate contact records with their standard fields (first name, last name, email, phone, job title) and resolve the parent Address (Anschriften) reference at Contact insert time. Combit stores the contact-address relationship as a separate link table; we denormalize that link into the Contact's address fields during the transform phase. Any Combit contact without an associated address gets a blank mailing address in Salesforce, flagged in the reconciliation report.
Combit CRM
Firmen (Companies/Accounts)
Salesforce Sales Cloud
Account
1:1Combit CRM's firm records hold organizational data and serve as the parent entity for related contacts. We map these to Salesforce Account, using the firm name as the Account Name and the firm's industry and website fields where populated. The Combit firm-contact relationship (which contacts belong to which firm) becomes a Contact.AccountId lookup that we resolve at migration time. If Combit does not enforce a firm-contact hierarchy, we allow Account-less Contacts in Salesforce and flag them for the customer's admin to assign during post-migration cleanup.
Combit CRM
Verkäufe/Geschäfte (Deals)
Salesforce Sales Cloud
Opportunity
1:1Deals in Combit CRM map directly to Salesforce Opportunity. We map the deal value to Amount, expected close date to CloseDate, owner to OwnerId (via email reconciliation), and deal stage to StageName. Combit's custom pipeline stages become Salesforce Opportunity Stage values, and we configure a Sales Process in Salesforce that whitelists only the relevant stages per pipeline before migration begins.
Combit CRM
Deal Stage (Pipeline Stage)
Salesforce Sales Cloud
Opportunity Stage + Sales Process
lossyEach Combit deal pipeline becomes a Salesforce Record Type on Opportunity with a corresponding Sales Process that limits the StageName picklist to that pipeline's stage values. We map probability percentages from Combit to StageProbability on each StageName entry, rounding to Salesforce's allowed integer range. Closed-Won and Closed-Lost stages carry a probability of 100 and 0 respectively.
Combit CRM
Projekte (Projects)
Salesforce Sales Cloud
Opportunity (or Custom Object Project__c)
1:manyCombit Projects can span multiple contacts, activities, and deal associations. If the project represents a pre-sale engagement (discovery, scoping), we map it to a Salesforce custom object Project__c with lookups to Account and Contact. If the project represents a post-sale delivery, we map it to Opportunity, using the Combit project budget as Amount and project dates as CloseDate and a custom ProjectStartDate__c. The customer selects the strategy during scoping. We flag any Combit project that has a linked Deal and recommend Opportunity mapping to preserve the revenue reporting relationship.
Combit CRM
Aktivitäten: Calls (Telefonate)
Salesforce Sales Cloud
Task ( TaskSubtype = Call )
1:1Combit activity records of type call map to Salesforce Task with TaskSubtype set to Call. Call duration, disposition notes, and timestamp migrate to CallDurationInSeconds, Description, and ActivityDate respectively. The parent contact or project reference resolves to a WhoId (Contact or Lead) or WhatId (Opportunity, Account, or custom Project__c) at migration time.
Combit CRM
Aktivitäten: Meetings (Termine)
Salesforce Sales Cloud
Event
1:1Combit meeting activities map to Salesforce Event with StartDateTime, EndDateTime, Location, and Description preserved. Attendee lists from Combit migrate as EventRelation records linking the Event to the relevant Contact, Lead, or User records. We preserve the chronological order of meetings by setting the Event StartDateTime to the original Combit timestamp.
Combit CRM
Aktivitäten: Tasks (Aufgaben)
Salesforce Sales Cloud
Task
1:1Combit task activities (Aufgaben) map to Salesforce Task with Status, Priority, Subject, and ActivityDate preserved. The assigned user resolves via email match to Salesforce OwnerId. Tasks without a resolved owner are imported with CreatedById set to the migration service user and flagged in the reconciliation report for manual assignment.
Combit CRM
Aktivitäten: Notes (Notizen)
Salesforce Sales Cloud
Note
1:1Combit notes attached to contacts, companies, or projects migrate to Salesforce Note records linked via ContentDocumentLink to the parent Contact, Account, Opportunity, or Project__c. Rich text formatting from Combit converts to Salesforce's rich-text Note body. Standalone notes without a parent record migrate to the importing user's personal notes folder and are flagged for reassignment.
Combit CRM
Benutzerdefinierte Felder (Custom Fields)
Salesforce Sales Cloud
Custom Fields ( __c )
1:1Combit CRM allows extensive user-defined fields across all standard objects. We identify every custom field definition during discovery (field name in German, data type, picklist values), translate the labels to English equivalents for Salesforce, and map the Combit data type to the closest Salesforce field type (text to Text, number to Number, date to Date, picklist to Picklist, multi-select to Multi-Select Picklist). We pre-create all custom fields in the destination Salesforce org before any data import, using the Combit field name as the field label and a sanitized API name (no umlauts, spaces replaced with underscores). Validation rules that existed on Combit custom fields are documented and recommended for reimplementation as Salesforce validation rules post-migration.
Combit CRM
Benutzer/Vertriebspartner (Users and Owners)
Salesforce Sales Cloud
User
1:1Combit user records define ownership of contacts, deals, and activities. We extract all distinct owner email addresses referenced on migrating records and match them against the destination Salesforce org's User table by email. Users without a matching Salesforce User go to a reconciliation queue for the customer's admin to provision before record import resumes. We preserve the original Combit owner name as a custom field combit_owner_name__c on the migrated record for audit trails. Inactive Combit users map to inactive Salesforce Users if the customer wants to retain historical assignment.
Combit CRM
Attachments and Documents (Dateianhänge)
Salesforce Sales Cloud
ContentDocument + ContentVersion
1:1Combit CRM file attachments migrate to Salesforce ContentDocument linked via ContentDocumentLink to the parent Contact, Account, Opportunity, or Project__c. We extract attachments to a file store, preserve the original filename and MIME type, create a ContentVersion record (Title, VersionData, ContentLocation = 'E'), and then link it with a ContentDocumentLink record pointing to the target Salesforce record. Large attachments (over 25 MB) exceed Salesforce's single-file upload limit and require chunked upload via the API.
Combit CRM
Kategorien (Tags / Categories)
Salesforce Sales Cloud
Multi-Select Picklist or Topic
lossyCombit CRM categorical tags on records migrate to Salesforce either as a custom multi-select picklist field on the relevant object or as Salesforce Topics with TopicAssignment records, depending on how the customer intends to use tagging in Salesforce. We extract the distinct tag values per object during discovery, present both options to the customer, and implement their chosen strategy during the transform phase. Multi-value Combit category fields become comma-delimited multi-select picklist values in Salesforce.
| Combit CRM | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Anschriften (Addresses) | Contact Address ( MailingAddress / ShippingAddress )1:1 | Fully supported | |
| Kontakte (Contacts) | Contact1:1 | Fully supported | |
| Firmen (Companies/Accounts) | Account1:1 | Fully supported | |
| Verkäufe/Geschäfte (Deals) | Opportunity1:1 | Fully supported | |
| Deal Stage (Pipeline Stage) | Opportunity Stage + Sales Processlossy | Fully supported | |
| Projekte (Projects) | Opportunity (or Custom Object Project__c)1:many | Fully supported | |
| Aktivitäten: Calls (Telefonate) | Task ( TaskSubtype = Call )1:1 | Fully supported | |
| Aktivitäten: Meetings (Termine) | Event1:1 | Fully supported | |
| Aktivitäten: Tasks (Aufgaben) | Task1:1 | Fully supported | |
| Aktivitäten: Notes (Notizen) | Note1:1 | Fully supported | |
| Benutzerdefinierte Felder (Custom Fields) | Custom Fields ( __c )1:1 | Fully supported | |
| Benutzer/Vertriebspartner (Users and Owners) | User1:1 | Fully supported | |
| Attachments and Documents (Dateianhänge) | ContentDocument + ContentVersion1:1 | Fully supported | |
| Kategorien (Tags / Categories) | Multi-Select Picklist or Topiclossy | 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.
Combit CRM gotchas
No documented REST API for automated migration
German-language interface complicates discovery
On-premise deployments require database-level extraction
Salesforce Sales Cloud gotchas
Workflow Rules and Process Builder are retired
Bulk API batch quota exhaustion during large imports
Storage overage billing is non-obvious
Account-Contact many-to-many relationship mapping
Territory and team member import ordering dependencies
Pair-specific challenges
Migration approach
Discovery and extraction method confirmation
We audit the Combit CRM instance across deployment type (on-premise database or cloud CSV export), object inventory (addresses, contacts, firms, projects, activities, deals, custom fields), record volume estimates, and owner/user count. If the on-premise version is in use, we negotiate read-only database credentials and document the schema (tables, primary keys, foreign keys) during this phase. If the cloud version is in use, we confirm the export capability and any field or record throttling limits. We also identify every German-language field label, picklist value, and pipeline stage name for translation during the mapping phase. The discovery output is a written scope document specifying extraction method, object inventory, record volume, and translation requirements.
Schema design and Salesforce destination setup
We design the destination schema in Salesforce. This includes provisioning any custom objects required (Project__c, Address__c), custom fields on standard objects (combit_owner_name__c, hs_original_lifecycle__c equivalents for cross-platform audit), Record Types per Combit deal pipeline, Sales Processes to whitelist stage values per Record Type, and Page Layouts per Record Type. All custom field API names are sanitized (no umlauts, no spaces). Schema is deployed via metadata API or change set into a Salesforce Sandbox first for validation before any production migration begins. We also configure the Lead-Contact split rule: Combit contacts without a firm association and with a lifecycle status of prospect map to Salesforce Lead; contacts with a firm association map to Salesforce Contact attached to an Account.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox (Full Copy or Partial Copy) using production-like data volume. The customer's RevOps lead or CRM admin reconciles record counts per object against Combit's reported totals, spot-checks 25-50 records per object for field-level accuracy (correct names, correct addresses, correct dates, correct picklist values), and validates that German-language field values have been correctly translated to English equivalents in Salesforce. The customer signs off the mapping and schema before production migration begins. All mapping corrections and translation adjustments happen in this phase.
Owner reconciliation and User provisioning
We extract every distinct Combit owner email address referenced on Contacts, Firms, Deals, Projects, and Activities and match by email against the Salesforce destination org's User table. Owners without a matching Salesforce User go to a reconciliation queue. The customer's Salesforce admin provisions missing Users (active or inactive based on whether the original Combit user is still employed and using Salesforce). Migration cannot proceed past this step because OwnerId references are required on most standard objects and lookup resolution for Activities depends on a valid parent User record.
Production migration in dependency order
We run production migration in record-dependency order: custom objects (Project__c, Address__c) and their fields first; Accounts (from Combit Firms); Contacts (with AccountId resolved and address denormalized); Leads (for unassigned or prospect-status contacts); Opportunities (with AccountId, OwnerId, and RecordTypeId resolved); Activity history (Tasks, Events, Notes via Bulk API 2.0); Attachments via ContentVersion upload; Tags migrated to multi-select picklist or Topics. Each phase emits a row-count reconciliation report before the next phase begins. We use the Bulk API 2.0 with batch chunking and exponential backoff on API limit responses to handle large activity histories without timeout or silent data loss.
Cutover, validation, and workflow handoff
We freeze Combit CRM writes during cutover, run a final delta migration of any records created or modified during the migration window, then enable Salesforce as the system of record. We deliver the Combit workflow inventory document to the customer's admin team with recommended Salesforce Flow equivalents for each automation. We support a one-week hypercare window where we resolve reconciliation issues raised by the sales team. We do not rebuild Combit workflows as Salesforce Flow inside the migration scope; that is a separate engagement or an internal admin task.
Platform deep dives
Combit CRM
Source
Strengths
Weaknesses
Salesforce Sales Cloud
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 Combit CRM and Salesforce Sales Cloud.
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
Combit CRM: Not publicly documented.
Data volume sensitivity
Combit CRM 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 Combit CRM to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Combit CRM to Salesforce Sales Cloud migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave Combit CRM
Other ways to arrive at Salesforce Sales Cloud
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.