CRM migration
Field-level mapping, validation, and rollback between SendCloud and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
SendCloud
Source
Freshsales
Destination
Compatibility
5 of 8
objects map 1:1 between SendCloud and Freshsales.
Complexity
BStandard
Timeline
2-3 weeks
Overview
SendCloud and Freshsales occupy different categories: SendCloud is a multi-carrier shipping platform that manages parcels, shipments, return labels, and carrier routing; Freshsales is a CRM that manages Leads, Contacts, Accounts, Deals, and activity timelines. The migration from SendCloud to Freshsales is therefore a data extraction and transformation exercise rather than a record-to-record import. We export address data from SendCloud shipments, deduplicate ship-to and ship-from addresses, and map them to Freshsales Contacts with associated Account records. Parcel reference numbers, carrier names, tracking IDs, and shipment statuses migrate as structured Notes or custom fields on the Contact so that the customer service and sales teams have shipping context without a live SendCloud connection. Return records map to Tasks with disposition and reason-code fields. We do not migrate carrier routing rules, negotiated rate tables, return portal configurations, or SendCloud webhook subscriptions because these are platform-specific operational settings with no Freshsales equivalent. We deliver a written inventory of active SendCloud integrations and webhook endpoints for the customer's admin to recreate post-migration.
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 SendCloud 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.
SendCloud
Address
Freshsales
Contact + Account
1:1SendCloud stores ship-to and ship-from addresses as structured objects linked to Shipments and Returns. Each unique address becomes a Freshsales Contact with the recipient or sender name, email (if present), phone (if present), and full postal address mapped to Freshsales standard fields. We deduplicate addresses by normalized street address string before import to avoid creating duplicate Contact records for repeat customers. The first Contact from an address set gets the Account created; subsequent shipments to the same normalized address link to the existing Account via the primary address match.
SendCloud
Shipment
Freshsales
Note (on Contact)
1:1SendCloud Shipment records contain tracking number, carrier name, shipping method, service level, estimated delivery date, and status. We attach these as structured Note records to the parent Contact using the address match. Each Note contains the tracking URL (carrier tracking page), shipment reference, and status so the Freshsales user has shipping context without a live SendCloud connection. We do not create Freshsales Deal records from shipping data because a Shipment does not imply a sales opportunity; the customer creates Deals from their own sales process.
SendCloud
Parcel
Freshsales
Custom Fields on Contact
lossySendCloud Parcel records carry reference number, weight, dimensions, and status. The parcel reference number maps to a Freshsales custom text field on Contact (e.g., last_parcel_reference__c). Weight and dimensions map to custom number fields if the customer requires shipping preference context on the Contact record. We inventory all custom field schemas during scoping and pre-create the equivalent custom fields in Freshsales before migration.
SendCloud
Return
Freshsales
Task (on Contact)
1:1SendCloud Return records track the inbound flow of parcels back to the merchant, including RMA number, return reason code, return label status, and resolution. We map Returns to Freshsales Tasks attached to the Contact with Subject = Return: [RMA number], Status, Priority (set to High for unresolved returns), and description containing the return reason and resolution. Closed returns map to completed Tasks; open returns map to open Tasks requiring follow-up.
SendCloud
Carrier
Freshsales
Custom Picklist on Contact or Note
1:1SendCloud carrier names (DHL, UPS, FedEx, and 80+ others) have no native equivalent in Freshsales. We map carrier names to a custom picklist field on Contact (preferred_carrier__c) for quick reference, or embed the carrier name in the shipment Note. We do not create a separate Carrier object in Freshsales because Freshsales does not have a native carrier or logistics object type.
SendCloud
Webhook Subscription
Freshsales
Inventory only (not migrated)
lossySendCloud webhooks notify external systems of parcel status changes, shipment events, and return updates. These subscriptions are tied to the SendCloud account URL and credentials and have no Freshsales equivalent in the standard CRM data model. We export the complete list of active webhook endpoint URLs, event types, and payload configurations so the customer's admin can recreate them in their preferred notification system (Freshsales Workflows, a middleware like Zapier, or a custom endpoint) post-migration.
SendCloud
Integration (Shop Platform)
Freshsales
Inventory only (not migrated)
lossySendCloud integrations with Shopify, WooCommerce, Magento, PrestaShop, and other shop platforms connect order data to the shipping workflow. These integrations are not transferable to Freshsales. We inventory all active integrations, the credentials or API keys in use, and the event-mapping configuration so the customer's admin can set up Freshsales shop integration (if available) or a middleware connection during the post-migration stabilization window.
SendCloud
User
Freshsales
User
1:1SendCloud user accounts with shipping operations roles (label creator, returns handler, admin) are mapped to Freshsales User records by email match. Permission structures (admin vs. standard user) map to Freshsales role assignments. Note that SendCloud user permissions govern shipping operations (which carriers a user can access, which warehouses they can ship from) and do not have a direct Freshsales equivalent; these are reconfigured manually post-migration based on the Freshsales role hierarchy.
| SendCloud | Freshsales | Compatibility | |
|---|---|---|---|
| Address | Contact + Account1:1 | Fully supported | |
| Shipment | Note (on Contact)1:1 | Fully supported | |
| Parcel | Custom Fields on Contactlossy | Fully supported | |
| Return | Task (on Contact)1:1 | Fully supported | |
| Carrier | Custom Picklist on Contact or Note1:1 | Fully supported | |
| Webhook Subscription | Inventory only (not migrated)lossy | Fully supported | |
| Integration (Shop Platform) | Inventory only (not migrated)lossy | Fully supported | |
| User | User1: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.
SendCloud gotchas
Carrier-specific rate negotiated rates do not transfer
Webhook and integration credentials must be re-established
Free tier parcel cap is easy to exceed during migration
Return workflow configurations are account-specific
Freshsales gotchas
Freddy AI is Pro-tier only despite heavy marketing
Post-migration emails and sequences are disabled
Bot session credits are a one-time 500-session allocation
Phone credits charged per minute with no cap
File storage limits scale with plan tier
Pair-specific challenges
Migration approach
SendCloud account scoping
We audit the SendCloud account across plan tier (Free, Lite, Growth, Premium, Enterprise), active integrations, webhook subscriptions, and record volumes for Addresses, Shipments, Parcels, and Returns. We confirm whether the account is on the free tier and whether parcel volume during the export window will exceed 20 (triggering a recommendation to upgrade temporarily). We also confirm the export method: API for accounts with programmatic access, CSV for accounts without API credentials. The output is a written scoping document with record counts and export method selection.
Address deduplication design
We define the deduplication logic for SendCloud addresses before export. Addresses are normalized by stripping whitespace, converting to lowercase, and comparing street, city, postal_code, and country. Duplicate addresses (same normalized address appearing across multiple Shipments) map to a single Freshsales Contact with the most recent contact information. We identify the primary email and phone per address (from shipment records if present) and flag any address without contact details for the customer to enrich post-migration. This step determines the final Contact count entering Freshsales.
Freshsales schema preparation
We pre-create custom fields in Freshsales to receive SendCloud data: last_parcel_reference__c (text), preferred_carrier__c (picklist), last_shipment_date__c (date), and last_tracking_url__c (url) on the Contact object. We configure the Freshsales account role hierarchy to match the SendCloud user roles identified during scoping. We do not create custom modules for shipping data because Freshsales does not have a native shipping or logistics module; all shipping context lives as structured Notes or custom fields on Contact.
Data export and transform
We export Addresses, Shipments, Parcels, Returns, and Carrier names from SendCloud via API or CSV. The transform layer deduplicates addresses, splits return records into open and closed status, and structures shipment histories as Note bodies with tracking URL, carrier, service level, and status. Parcel reference numbers, weight, and dimensions populate the pre-created custom fields on the Contact. The transform output is a set of CSV files (Contacts, Accounts, Notes, Tasks) ready for Freshsales import.
Freshsales import and reconciliation
We import Contacts and Accounts first (with Account created per unique address), then Notes linked to Contact IDs, then Tasks for open and closed Returns. We use Freshsales's native CSV import or API-based insertion depending on volume. Each phase emits a row-count reconciliation report: Contacts imported vs. unique addresses identified, Notes attached vs. shipment records exported, Tasks created vs. return records exported. We spot-check 20-30 records against the SendCloud source and resolve any mapping errors before declaring the Sandbox or staging import complete.
Integration and webhook inventory handoff
We deliver a written inventory of all active SendCloud webhook subscriptions (endpoint URL, event type, payload schema) and shop platform integrations (platform name, integration type, credential status). This document enables the customer's admin to recreate notification flows in Freshsales Workflows, a middleware like Zapier or Make, or a custom endpoint. We do not rebuild webhooks or integrations inside the migration scope. We also deliver a carrier rate data advisory noting which carrier rate tables exist in SendCloud and recommending the customer export those before canceling the SendCloud account.
Platform deep dives
SendCloud
Source
Strengths
Weaknesses
Freshsales
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 SendCloud and Freshsales.
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
SendCloud: Not publicly documented.
Data volume sensitivity
SendCloud 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 SendCloud to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your SendCloud to Freshsales migration with a real engineer — 30 minutes, free, written quote within 24 hours.
Book a free 30 minute consultationAdjacent paths
Other ways to leave SendCloud
Other ways to arrive at Freshsales
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.