CRM migration
Field-level mapping, validation, and rollback between SendCloud and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
SendCloud
Source
Salesforce Sales Cloud
Destination
Compatibility
6 of 12
objects map 1:1 between SendCloud and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
3-5 weeks
Overview
SendCloud is an e-commerce shipping automation platform; Salesforce is a CRM. This migration is not a feature-for-feature replacement — it is a data-preservation operation that moves historical shipping data into Salesforce so that order fulfillment context lives alongside customer and account records. We map SendCloud Parcels and Shipments to a Shipment__c custom object, Returns to a Return__c custom object, and Address records to a ShippingAddress__c object or Account Address fields, all linked to the parent Account and Contact via Lookups. SendCloud's carrier-specific negotiated rate tables do not export as portable data; we flag this during scoping so customers understand they will need to re-negotiate or port carrier contracts directly. Webhook endpoint configurations, shop platform integration credentials, and return portal settings are inventoried and documented for manual rebuild. Workflows, shipping automation rules, and branded tracking page configurations are not migratable and are delivered as a written inventory for the customer to configure in Salesforce or a replacement shipping platform.
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 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.
SendCloud
Parcel
Salesforce Sales Cloud
Shipment__c (custom object)
1:1SendCloud Parcel records map to a Salesforce custom object Shipment__c with fields for Parcel ID, weight, dimensions, reference number, status, and carrier routing. The Parcel's status field maps to a custom Shipment_Status__c picklist. Shipment__c is linked to the parent Account via a Lookup relationship, allowing fulfillment context to appear on the Account record. The original SendCloud Parcel ID is preserved in a custom field sc_parcel_id__c for audit traceability.
SendCloud
Shipment
Salesforce Sales Cloud
Shipment__c (parent grouping)
1:1SendCloud Shipment records (logical groupings of one or more Parcels to the same recipient) map to a parent Shipment__c record that aggregates child Parcel records via a lookup relationship. The Shipment's destination Address, shipping method, service level, and estimated delivery date become fields on the parent Shipment__c. If the destination Salesforce org uses Order Management, the Shipment__c can alternatively be linked to an Order record via WhatId.
SendCloud
Return
Salesforce Sales Cloud
Return_Request__c (custom object)
1:1SendCloud Return records map to a custom object Return_Request__c with fields for RMA number, return reason code, return label tracking number, and RMA status. The original SendCloud return reason codes are mapped to a picklist or multi-select picklist in Salesforce. Return_Request__c is linked to the original Shipment__c record (via lookup) and to the parent Account and Contact for service context.
SendCloud
Address (ship-to, ship-from)
Salesforce Sales Cloud
Account Address fields or ShippingAddress__c
lossyShip-from and ship-to addresses from SendCloud Shipments migrate as structured address records. In Salesforce, we map addresses to Account ShippingAddress fields for the merchant's ship-from location, and to a custom ShippingAddress__c object linked to Account or Contact for recipient addresses. Address validation rules differ between platforms; we flag address format discrepancies during reconciliation and apply normalization where possible.
SendCloud
Carrier
Salesforce Sales Cloud
Carrier__c (custom object)
1:1SendCloud carrier configurations map to a Carrier__c custom object with fields for carrier name, carrier code, and service levels. We map carrier-to-carrier between SendCloud and Salesforce or the customer's preferred carrier integration. Merchant-specific negotiated carrier rates are SendCloud-stored values and do not transfer; we document the carrier mapping and flag that rate renegotiation or direct carrier account porting is required separately.
SendCloud
Custom Fields (Parcels, Returns)
Salesforce Sales Cloud
Custom fields on Shipment__c and Return_Request__c
lossyCustom fields added to SendCloud Parcels and Returns on Growth and above plans are inventoried during scoping. Each custom field is mapped to an equivalent custom property on the corresponding Salesforce custom object, with Salesforce field types selected to match the source data type (text, number, date, picklist). The custom field schema is pre-created in the destination org before data import begins.
SendCloud
Webhook Subscriptions
Salesforce Sales Cloud
Webhook inventory document
lossySendCloud webhook endpoint configurations (Parcel status change, shipment event, return update) are exported as a structured inventory document listing endpoint URL, event types, and authentication configuration. We do not migrate webhooks as live connections because they are tied to the SendCloud account. The inventory document is delivered to the customer for manual recreation in the new shipping platform or Salesforce-based integration.
SendCloud
Users
Salesforce Sales Cloud
User mapping document
1:1SendCloud user accounts with role assignments tied to shipping operations are inventoried and mapped to Salesforce User records by email match. Permission structures are platform-specific and require manual reconfiguration in Salesforce. The user inventory document identifies which SendCloud users should have Salesforce access provisioned and their recommended profile or permission set assignment.
SendCloud
Integrations (Shopify, WooCommerce, Magento, PrestaShop)
Salesforce Sales Cloud
Integration inventory document
lossyActive native integrations with shop platforms (Shopify, WooCommerce, Magento, PrestaShop) are inventoried and documented with their current API credentials, webhook endpoints, and data sync scope. We flag which integrations require new API credentials to be generated and which require reconfiguration in the destination platform or the shop platform's integration settings. The integration inventory is delivered as a checklist for the customer's technical team to complete post-migration.
SendCloud
Shipping Labels (label format preferences)
Salesforce Sales Cloud
Label_Format_Preference__c (custom object)
lossySendCloud label format preferences (carrier label size, branding options, barcode settings) are stored as account-level configuration. We inventory available label format settings during scoping and document them for manual reconfiguration in the destination shipping platform or as custom settings in Salesforce if the customer implements a custom label generation workflow.
SendCloud
Tracking History
Salesforce Sales Cloud
Shipment_Event__c (custom object)
1:manySendCloud Parcel tracking status events (label created, picked up, in transit, out for delivery, delivered, exception) map to child Shipment_Event__c records under the parent Shipment__c. Each event carries the timestamp, status, location, and carrier scan description. We preserve the full tracking timeline as a related list on the Shipment__c, allowing service and ops teams to view delivery history directly in Salesforce without navigating to SendCloud.
SendCloud
Return Label
Salesforce Sales Cloud
Return_Label__c (custom field on Return_Request__c)
1:1Return labels generated in SendCloud (with tracking number, carrier, and label URL) map to custom fields on the Return_Request__c record: Return_Carrier__c, Return_Tracking_Number__c, and Return_Label_URL__c. The label binary itself is not migrated; instead we preserve the reference data so the customer can regenerate return labels in their new shipping platform and update the Return_Request__c record with the new label information.
| SendCloud | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Parcel | Shipment__c (custom object)1:1 | Fully supported | |
| Shipment | Shipment__c (parent grouping)1:1 | Fully supported | |
| Return | Return_Request__c (custom object)1:1 | Fully supported | |
| Address (ship-to, ship-from) | Account Address fields or ShippingAddress__clossy | Fully supported | |
| Carrier | Carrier__c (custom object)1:1 | Fully supported | |
| Custom Fields (Parcels, Returns) | Custom fields on Shipment__c and Return_Request__clossy | Fully supported | |
| Webhook Subscriptions | Webhook inventory documentlossy | Mapping required | |
| Users | User mapping document1:1 | Mapping required | |
| Integrations (Shopify, WooCommerce, Magento, PrestaShop) | Integration inventory documentlossy | Fully supported | |
| Shipping Labels (label format preferences) | Label_Format_Preference__c (custom object)lossy | Fully supported | |
| Tracking History | Shipment_Event__c (custom object)1:many | Fully supported | |
| Return Label | Return_Label__c (custom field on Return_Request__c)1: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
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 scoping
We audit the SendCloud account across plan tier (Free/Lite/Growth/Premium/Enterprise), parcel volume, shipment count, return history, active carrier integrations, webhook subscriptions, custom field schemas on Parcels and Returns, and return portal configuration. We pair this with a review of the destination Salesforce org's existing data model to determine whether a Shipment__c / Return_Request__c custom object structure is sufficient or whether shipping data should be linked to existing Order or Case objects. The discovery output is a written migration scope, a custom object schema design, and a list of items requiring manual reconnection post-migration.
Custom object schema design
We design the destination schema in Salesforce. This includes provisioning Shipment__c, Return_Request__c, Carrier__c, Shipment_Event__c, and any other custom objects identified during discovery. We configure custom fields with Salesforce types mapped from SendCloud field types, establish Lookup relationships to Account and Contact, and define picklist values for Shipment_Status__c, Return_Reason__c, and Carrier__c. Page Layouts are assigned per profile. Schema is deployed into a Salesforce Sandbox first for validation before production migration begins.
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 operations or RevOps lead reconciles record counts (Shipments in, Returns in, Tracking events in), spot-checks 25-50 random Shipment__c records against the SendCloud source, and validates that parent Account lookups resolve correctly. The customer signs off on the schema, mapping, and custom field labels before production migration begins. Any mapping corrections happen here.
Integration inventory and webhook documentation
We export all active SendCloud webhook endpoint configurations, shop platform integration credentials, and carrier API settings as a structured inventory document. This document lists each integration's endpoint URL, event types, authentication method, and recommended reconnection steps in the replacement shipping platform or Salesforce-based integration. We deliver the inventory to the customer's technical team as a checklist for manual reconnection after cutover.
Production migration in dependency order
We run production migration in record-dependency order: Carrier__c records first (no dependencies), then Account ShippingAddress data, then Shipment__c records with Parcel details and Shipment_Event__c child records (via Bulk API 2.0 for large tracking histories), then Return_Request__c records linked to parent Shipment__c and Account. Each phase emits a row-count reconciliation report before the next phase begins. We use Bulk API 2.0 with batch chunking and exponential backoff for tracking event volumes over 50,000 records.
Cutover, validation, and integration rebuild handoff
We freeze SendCloud writes during cutover, run a final delta migration of any records modified during the migration window, then mark Salesforce as the system of record for migrated shipping context. We deliver the webhook and integration inventory document to the customer's technical team with a recommended rebuild sequence. We support a one-week hypercare window where we resolve any reconciliation issues. We do not rebuild SendCloud shipping automation rules in Salesforce or a replacement shipping platform; that is a separate engagement or an internal technical task.
Platform deep dives
SendCloud
Source
Strengths
Weaknesses
Salesforce Sales Cloud
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 Salesforce Sales Cloud.
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 Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your SendCloud 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 SendCloud
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.