CRM migration

Migrate from Combit CRM to Freshsales

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

Combit CRM logo

Combit CRM

Source

Freshsales

Destination

Freshsales logo

Compatibility

60%

6 of 10

objects map 1:1 between Combit CRM and Freshsales.

Complexity

BStandard

Timeline

4-6 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Combit CRM to Freshsales is a structural migration from a German-language, on-premise-oriented platform to a globally accessible SaaS CRM with a documented REST API. Combit CRM stores Addresses (Anschriften) as separate records linked to Contacts (Kontakte); Freshsales embeds address fields directly on Contacts, so we flatten that relationship during transform. Combit has no public REST API, so we extract via direct database access (on-premise deployments) or structured CSV exports generated from the application's built-in export function, then load through Freshsales' REST API with batch chunking and exponential backoff. Custom fields, picklist values, and field labels in Combit appear in German and must be translated and typed before mapping to Freshsales field definitions. Workflows, automations, and reporting configurations do not migrate; we deliver a written inventory of every automation requiring rebuild in Freshsales' workflow builder for the customer's admin to handle post-migration.

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

Combit CRM logo

Combit CRM

What's pushing teams away

  • Interface feels technical and sophisticated—multiple reviewers describe the UI as complex, with input masks that lack a modern design feel.
  • Difficulty mapping daily work processes—users report that intuitive process mapping is harder than expected despite the automation capabilities.
  • Feature gaps relative to modern CRMs—some reviewers noted the platform required more features than it provided during their evaluation period.
  • German-only language barrier—businesses outside German-speaking regions cannot use the platform, limiting international team adoption.

Choosing

Freshsales logo

Freshsales

What's pulling them in

  • Lowest barrier to entry among major CRMs — the free tier supports up to 3 users and includes core CRM functionality before committing to per-seat pricing.
  • Built-in chat, email, and phone reduce reliance on third-party integrations for basic sales communication and contact management.
  • Freddy AI contact scoring and deal insights are included on Pro plans at a lower price than comparable HubSpot tiers.
  • Kanban pipeline views across Contacts, Accounts, and Deals provide visual deal management without requiring custom configuration.
  • Integration with the broader Freshworks ecosystem (Freshdesk, Freshchat, Freshservice) reduces tool sprawl for teams already using Freshworks.

Object mapping

How Combit CRM objects map to Freshsales

Each row shows how a Combit CRM object lands in Freshsales, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

Combit CRM

Address (Anschrift)

maps to

Freshsales

Contact address fields

1:many
Fully supported

Combit CRM stores addresses as separate Anschrift records that link to multiple Kontakte (Contacts). Freshsales has no separate address object; address fields live directly on the Contact record. We flatten this relationship by extracting each Anschrift linked to a Kontakt, then embedding the primary address fields (street, city, postal code, country) into the corresponding Freshsales Contact. Secondary addresses from Combit (billing, shipping) map to Freshsales' additional address fields on Contact. The Combit Anschrift-to-Kontakt foreign key relationship is preserved during extraction and resolved at transform time by matching the contact reference ID.

Combit CRM

Contact (Kontakt)

maps to

Freshsales

Contact (or Lead)

1:1
Fully supported

Combit Contacts map directly to Freshsales Contacts. We map standard fields (name, email, phone, job title) and inherit the flattened address fields from the linked Anschrift. Combit Contacts with no associated Account map as standalone Freshsales Contacts; the customer's admin decides post-migration which should be converted to Leads in Freshsales' separate Lead model. We preserve Combit contact owner assignment in Freshsales OwnerId via email lookup.

Combit CRM

Company (Firma)

maps to

Freshsales

Account

1:1
Fully supported

Combit Firmen (Companies) map to Freshsales Accounts. The Combit company name becomes the Account name, domain information maps to Website, and industry or type fields map to Freshsales' custom fields or standard Industry picklist where applicable. We create Accounts before Contact import so that the Account lookup relationship resolves at the moment of Contact insert.

Combit CRM

Deal (Verkauf/Geschäft)

maps to

Freshsales

Deal

1:1
Fully supported

Combit Deals map to Freshsales Deals with their pipeline stages, deal value, owner, and expected close date. We reconstruct the pipeline structure by creating Freshsales pipeline stages that mirror the Combit stages during pre-migration configuration. Closed-Lost and Closed-Won statuses from Combit map to Freshsales Deal status values. Deal-contact associations migrate as Freshsales Deal contacts.

Combit CRM

Project (Projekt)

maps to

Freshsales

Custom Object or Deal

lossy
Fully supported

Combit Projects do not map cleanly to a single Freshsales standard object because Freshsales lacks a native project record type. We evaluate project usage patterns during discovery: projects with line items and budgets map to Freshsales Deals with custom fields for project metadata; multi-contact projects map to a Freshsales Custom Object with lookups to the relevant Contacts and Accounts. The customer chooses the approach during scoping, and we document the chosen model with its schema in the migration scope.

Combit CRM

Activity (Aktivität)

maps to

Freshsales

Activity

1:1
Fully supported

Combit Activities (calls, meetings, tasks, notes) map to Freshsales Activities, which is a unified module handling all engagement types. Activity type, date, duration, and description migrate directly. The link between an activity and its parent Contact or Project resolves to Freshsales Activity with the Contact or Deal reference preserved. Combit's separate activity type taxonomy (Anruf, Besprechung, Aufgabe, Notiz) maps to Freshsales Activity type values during transform.

Combit CRM

User (Benutzer)

maps to

Freshsales

User

1:1
Fully supported

Combit User records map to Freshsales Users by email address. We extract all distinct Benutzer email addresses from Combit records and match them against the destination Freshsales User table. Any Combit User without a matching Freshsales User enters a reconciliation queue for the customer's admin to provision before record import resumes. Owner assignments on Contacts, Deals, and Activities resolve to Freshsales OwnerId through this mapping.

Combit CRM

Custom Field (Benutzerdefiniertes Feld)

maps to

Freshsales

Custom Field

lossy
Fully supported

Combit custom fields across all objects require translation from German labels to English API-safe field names during mapping. We extract the full custom field schema (field name, data type, picklist values) during discovery, map data types to equivalent Freshsales field types (text, number, date, picklist, multi-select), and pre-create fields in Freshsales before data import. Any Combit custom fields with no Freshsales equivalent are flagged during scoping for the customer to decide whether to map to an existing standard field or create a new custom field.

Combit CRM

Attachment (Anhang)

maps to

Freshsales

Attachment via Freshsales Files

1:1
Fully supported

Combit stores file attachments on records. We extract attachments to a file store with original filenames preserved, then create Freshsales attachment links pointing to the stored files using Freshsales' file attachment API. The Combit attachment-to-record relationship is preserved by linking each file to the migrated parent record (Contact, Account, or Deal) by record ID. Binary file content migrates in full; linked URLs that point to external storage do not migrate.

Combit CRM

Tag/Category (Kategorie)

maps to

Freshsales

Tag

lossy
Fully supported

Combit supports categorical tagging of records. We extract tag values as a flat list per record, then map them to Freshsales Tags using the Freshsales Tags API. Multi-value tags from Combit (a contact can have multiple Kategorie values) map to Freshsales multi-tag format. We consolidate tags with identical names during deduplication to prevent tag proliferation at the destination.

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.

Combit CRM logo

Combit CRM gotchas

High

No documented REST API for automated migration

Medium

German-language interface complicates discovery

Medium

On-premise deployments require database-level extraction

Freshsales logo

Freshsales gotchas

Medium

Freddy AI is Pro-tier only despite heavy marketing

High

Post-migration emails and sequences are disabled

Medium

Bot session credits are a one-time 500-session allocation

Medium

Phone credits charged per minute with no cap

Low

File storage limits scale with plan tier

Pair-specific challenges

  • No API means database or CSV-only extraction

    Combit CRM has no publicly documented REST API. We cannot initiate automated migration jobs against it via API calls. For on-premise Combit deployments, we negotiate read-only database credentials during scoping and run extraction queries directly against the proprietary database schema. We document table structures, primary keys, and foreign key relationships before writing any transform logic, and we validate row counts against Combit's reported totals. For cloud deployments without database access, we use Combit's built-in export functionality to generate CSV or Excel files with a negotiated field scope. If the application export has formatting limitations or caps, we negotiate a custom export scope and validate completeness before transformation begins.

  • German field names require full translation before Freshsales mapping

    Every Combit CRM field label, picklist value, and custom field definition appears in German. Freshsales' API accepts field names in English and maps them to Freshsales field identifiers. We work with bilingual contacts or a German-speaking analyst during discovery to translate every field definition (Anschrift, Kontakt, Firma, Verkauf, Aktivität, Benutzerdefiniertes Feld) before creating the field mapping matrix. All picklist values in Combit's German-language picklists must be translated to equivalent English values that map to Freshsales picklist options. Skipping or partial translation results in unmapped fields and silent data loss at the destination.

  • On-premise database schema is proprietary and undocumented

    Combit CRM on-premise customers store data in a proprietary database structure that is not publicly documented. We negotiate read-only database credentials during the scoping call and spend a dedicated discovery phase mapping the source schema before writing any transform logic. We identify the primary key columns (typically an integer ID per object), foreign key relationships between objects (especially the contact-to-address link), and any custom field storage patterns. Without a schema map, we risk missing join conditions that produce incomplete or duplicated records during extraction.

  • Freshsales API rate limits require batch chunking

    Freshsales' REST API enforces per-minute and per-day rate limits that vary by plan tier. Large record imports (particularly for activity history and contacts) require chunking into batches of 100-500 records per API call with exponential backoff on 429 responses. We implement a migration queue that tracks batch progress, retries failed batches with backoff, and emits reconciliation row counts after each phase. Without chunking and backoff, API throttling causes timeouts and partial record sets at the destination.

  • Freshsales Lead and Contact split differs from Combit's unified model

    Combit CRM uses a single Contact object for both unqualified prospects and existing customers. Freshsales separates Leads (unqualified prospects) from Contacts (qualified people linked to Accounts). We default all Combit Contacts to Freshsales Contacts as the conservative migration path, preserving all data without requiring an immediate qualification decision. The customer's admin decides post-migration which Contacts should be converted to Leads in Freshsales' conversion flow. We document the Combit record count that would land in each Freshsales object to inform that decision.

Migration approach

Six steps for a successful Combit CRM to Freshsales data migration

  1. Discovery and export method determination

    We audit the Combit CRM deployment to determine extraction method. For on-premise customers, we negotiate read-only database credentials and document the proprietary schema (tables, primary keys, foreign key relationships, custom field storage). For cloud deployments, we work with bilingual contacts to navigate the German-language admin panel and identify the CSV/Excel export scope available. We extract record counts for all objects (Anschriften, Kontakte, Firmen, Projekte, Aktivitäten, Deals, Benutzer) and flag any objects with extensive custom field definitions for dedicated mapping sessions.

  2. German field translation and mapping matrix

    We translate every Combit field definition from German to English, matching each to a typed Freshsales field. Picklist values are translated in full. Custom fields are mapped to Freshsales custom fields (pre-created in the destination tenant during this phase). The mapping matrix becomes the source of truth for the entire project and is reviewed and signed off by the customer's admin before any data moves. Any Combit field with no Freshsales equivalent is flagged for a decision: map to an existing standard field, create a new custom field, or drop.

  3. Freshsales schema pre-configuration

    We configure the Freshsales destination tenant before migration begins. This includes creating custom fields (with API-safe names matching the translation matrix), setting up pipeline stages mapped from Combit Deal stages, configuring Deal fields and layouts, and provisioning any custom objects required for Combit Project records. We configure field-level security and validation rules to allow the migration user to write records without blocking on required fields that may not exist in the Combit source data. All configuration happens in a Freshsales sandbox or staging environment first for validation.

  4. Data extraction from Combit

    For on-premise deployments, we run extraction queries against the Combit database in read-only mode, exporting records in dependency order: Users first (for owner mapping), then Addresses, then Companies, then Contacts, then Deals, then Activities. We validate extracted row counts against Combit's reported totals at each step. For CSV-based extraction, we negotiate the field scope with the customer, run exports through Combit's built-in export function, and validate completeness (row counts, expected columns, no truncation) before accepting the export as the migration source.

  5. Transform and relationship resolution

    We transform the extracted Combit data into Freshsales API-compatible format. The critical step is resolving the Anschrift-to-Kontakt relationship: we extract each Combit address, match it to its linked contact by the foreign key, and embed address fields into the Contact record for Freshsales import. We apply the field mapping matrix (translated field names, data type conversions, picklist value translations) and chunk records into batches sized for Freshsales API limits. We maintain a migration manifest tracking every record's source ID, destination ID, and mapping status.

  6. Freshsales API load and reconciliation

    We load records into Freshsales via the REST API in dependency order: Accounts first (from Combit Firmen), then Contacts (with address fields embedded from Combit Anschriften), then Deals, then Activities, then Tags. Each phase emits a row-count reconciliation report comparing records written to Freshsales against records extracted from Combit. We investigate any discrepancy exceeding 1% before proceeding to the next phase. We apply exponential backoff and retry logic on 429 rate-limit responses and 5xx server errors. Attachments are uploaded to the file store and linked via Freshsales' attachment API after the parent record is confirmed present.

  7. Cutover, validation, and automation handoff

    We freeze writes to Combit during cutover, run a final delta migration of any records modified during the migration window, then enable Freshsales as the system of record. We deliver a written inventory of every Combit workflow and automation with its trigger, conditions, and actions, mapped to the equivalent Freshsales workflow configuration. The customer's admin rebuilds automations in Freshsales' workflow builder post-migration. We support a one-week hypercare window for reconciliation issues raised by the sales team. Post-migration admin support, training, and workflow rebuild are outside standard scope and are separate engagements.

Platform deep dives

Context on both ends of the pair

Combit CRM logo

Combit CRM

Source

Strengths

  • Deep workflow automation with configurable triggers across departments and record types.
  • Highly flexible data model with user-defined fields and customizable pipelines.
  • Strong integration connectivity for external tools and peripheral systems.
  • Configurable interfaces and data entry masks tailored to organization-specific needs.
  • Supports both cloud and on-premise deployment options.

Weaknesses

  • Platform is German-language only, limiting adoption for non-German-speaking teams.
  • No publicly documented REST API, restricting programmatic access and migration automation.
  • Interface described as technically sophisticated and not intuitively modern.
  • Fewer third-party integrations compared to major global CRM platforms.
  • Limited availability of English-language documentation and support resources.
Freshsales logo

Freshsales

Destination

Strengths

  • Generous free tier for small teams with core CRM functionality without per-seat costs.
  • All-in-one sales CRM with built-in telephony, chat, and email reducing third-party tool dependency.
  • Freddy AI contact scoring and deal predictions available on Pro tier.
  • Multiple pipeline views with Kanban and list options across all plans.

Weaknesses

  • Reports lack depth compared to competitors like HubSpot, with limited customization options.
  • Integration setup is poorly documented with no clear guides for connecting third-party tools.
  • AI features gated behind $39/user/month Pro tier despite marketing emphasis on Freddy AI.
  • Bot sessions limited to 500 one-time allocation with no monthly refresh.

Complexity grading

How hard is this migration?

Standard CRM migration. 2 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 Combit CRM and Freshsales.

  • Object compatibility

    B

    2 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

    Combit CRM: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your Combit CRM to Freshsales 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 Combit CRM to Freshsales data migrations

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

Can't find your answer?

Walk through your Combit CRM to Freshsales migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between four and six weeks for accounts under 10,000 records with straightforward data (Contacts, Companies, Deals, no extensive custom fields, no project records). Accounts with large engagement histories, extensive custom field definitions, project records requiring custom object mapping, or on-premise database extraction without direct credentials move to six to ten weeks because of schema documentation time, German-field translation, relationship resolution during transform, and Freshsales API batch handling.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Combit CRM.
Land in Freshsales, 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