CRM migration

Migrate from SendCloud to Freshsales

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

SendCloud logo

SendCloud

Source

Freshsales

Destination

Freshsales logo

Compatibility

63%

5 of 8

objects map 1:1 between SendCloud and Freshsales.

Complexity

BStandard

Timeline

2-3 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

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.

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

SendCloud logo

SendCloud

What's pushing teams away

  • Initial integration setup is complex and time-consuming; some merchants report needing to assist SendCloud's own team with API and development issues.
  • Carrier coverage is inconsistent across regions; merchants shipping to or from specific countries report limited carrier options or missing support.
  • The platform is purpose-built for e-commerce shipping and lacks the broader sales, marketing, or customer management features that horizontal CRM platforms provide.
  • Pricing scales with shipment volume and carrier count, making it harder to predict costs as order volumes grow or as carriers are added.

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 SendCloud objects map to Freshsales

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

maps to

Freshsales

Contact + Account

1:1
Fully supported

SendCloud 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

maps to

Freshsales

Note (on Contact)

1:1
Fully supported

SendCloud 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

maps to

Freshsales

Custom Fields on Contact

lossy
Fully supported

SendCloud 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

maps to

Freshsales

Task (on Contact)

1:1
Fully supported

SendCloud 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

maps to

Freshsales

Custom Picklist on Contact or Note

1:1
Fully supported

SendCloud 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

maps to

Freshsales

Inventory only (not migrated)

lossy
Fully supported

SendCloud 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)

maps to

Freshsales

Inventory only (not migrated)

lossy
Fully supported

SendCloud 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

maps to

Freshsales

User

1:1
Fully supported

SendCloud 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.

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.

SendCloud logo

SendCloud gotchas

High

Carrier-specific rate negotiated rates do not transfer

High

Webhook and integration credentials must be re-established

Medium

Free tier parcel cap is easy to exceed during migration

Medium

Return workflow configurations are account-specific

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

  • SendCloud has no CRM objects — only operational shipping data

    SendCloud manages parcels, shipments, returns, and addresses. It has no Contact, Account, Lead, or Deal equivalents. The migration is an extraction and transformation exercise: address records become Freshsales Contacts, shipment histories become Notes, and return records become Tasks. There is no one-to-one object mapping. Teams expecting a direct import comparable to a CRM-to-CRM migration are misaligned on scope. We define the transformation logic during scoping and confirm it with the customer before export begins.

  • Carrier-negotiated rates do not exist in Freshsales

    SendCloud stores each merchant's negotiated carrier rates in its own internal rate tables. These rates are not exported as a portable dataset and have no Freshsales equivalent because Freshsales is a CRM, not a shipping platform. Customers who need carrier rate data must retrieve it directly from their carrier contracts or from SendCloud's export before canceling the account. We flag this during scoping so the customer does not lose rate data during the migration window.

  • Return portal configurations are not portable

    SendCloud's return portal settings include return reason codes, return label templates, and return-to-address configurations set at the account level. These are not exposed via the SendCloud public API in full and have no Freshsales equivalent for configuration. We inventory available return configuration during scoping and note it in the handoff documentation. Customers should plan to reconfigure return portal settings in SendCloud or a dedicated returns platform post-migration if the destination workflow requires Freshsales-based return handling.

  • SendCloud Free plan parcel cap during export

    SendCloud's free plan allows up to 20 parcels per month. Migration export operations that pull historical shipment data consume API calls against this limit. Accounts on the free tier during the export window may hit the cap before export completes. We scope the account's current plan before beginning export and recommend upgrading to a paid SendCloud tier (Lite at €26/mo or higher) if historical volume exceeds 20 parcels during the export window.

  • Freshsales field-level security and validation rules can block address import

    Freshsales enforces required field rules, picklist whitelists, and conditional requireds that vary by plan tier. Address fields (street, city, state, postal_code, country) must meet Freshsales validation formats or the Contact import will reject the record. We validate address formats against Freshsales requirements before import and either normalize the data in the transform step or coordinate with the customer's Freshsales admin to temporarily relax validation rules during the migration load window.

Migration approach

Six steps for a successful SendCloud to Freshsales data migration

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

  6. 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

Context on both ends of the pair

SendCloud logo

SendCloud

Source

Strengths

  • Connects 25–80+ carriers including DHL, UPS, FedEx, and regional carriers in a unified dashboard.
  • Native integrations with 50+ shop platforms including Shopify, WooCommerce, and Magento.
  • Automated post-purchase tracking emails and branded tracking pages without manual intervention.
  • API-first platform with SDKs in Python, PHP, Ruby, Java, Node.js, and .NET.
  • Multi-market routing rules and customs documentation for cross-border e-commerce shipments.

Weaknesses

  • Initial integration and API setup is complex; customer reviews report needing to assist SendCloud's own development team with incomplete API documentation.
  • Rate limits and API quotas are not publicly documented, making migration scoping unpredictable for high-volume accounts.
  • Carrier coverage is inconsistent across certain regions and shipping corridors, limiting utility for merchants with geographically specific fulfillment needs.
  • The platform is e-commerce shipping-focused and does not offer broader CRM, marketing automation, or sales pipeline features.
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 SendCloud 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

    SendCloud: Not publicly documented.

  • Data volume sensitivity

    A

    SendCloud exposes a bulk API — large-volume migrations stream efficiently.

Estimator

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

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

Can't find your answer?

Walk through your SendCloud 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 two and three weeks for accounts with fewer than 5,000 unique addresses and standard shipment and return volumes. Migrations with high-volume address datasets (10,000+ unique addresses), multi-year shipment histories requiring Note creation per shipment, or multiple active return records requiring task creation move to four to six weeks because of the deduplication logic, schema preparation, and reconciliation work required in Freshsales.

Adjacent paths

Related migrations to explore

Ready when you are

Move from SendCloud.
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