CRM migration
Field-level mapping, validation, and rollback between Bluwave CRM and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Bluwave CRM
Source
Salesforce Sales Cloud
Destination
Compatibility
6 of 12
objects map 1:1 between Bluwave CRM and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Bluwave CRM to Salesforce Sales Cloud is a structural migration for South African teams that have outgrown a platform optimised for simplicity. Bluwave CRM has no published API and no developer portal, which means all extraction relies on its built-in Excel export capability. We audit every module view before export to confirm columns are not hidden by default configuration, then validate exported rows against source record counts before loading into Salesforce. The key design decisions at migration time are the Lead-versus-Contact split (Bluwave CRM does not distinguish them), the mapping of Bluwave CRM's pipeline stages to Salesforce Sales Processes, and the handling of geocoded latitude/longitude values that were forward-geocoded at address entry rather than GPS-captured at visit time. Salesforce subscription costs ($25-$330 per user per month depending on edition) apply post-migration and sit outside the migration fee. We do not migrate automations, travel claim logic, or the BluWave BI reporting module as code; we deliver a written inventory of these for the customer's admin to evaluate for rebuild in Salesforce.
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 Bluwave 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.
Bluwave CRM
Contact
Salesforce Sales Cloud
Lead or Contact (split required)
1:manyBluwave CRM does not distinguish between Leads and Contacts; all prospect records are Contact objects. We apply a split rule during migration: Bluwave CRM Contacts with no associated Deals and no opportunity attachment map to Salesforce Lead; Contacts with an active Deal or a closed-won record map to Salesforce Contact attached to an Account. We preserve the original Bluwave CRM record ID in a custom field bluwave_record_id__c on both Lead and Contact for cross-system audit. Any Bluwave CRM custom picklist values on contact status fields are mapped to Salesforce Lead Status or Contact source fields before import.
Bluwave CRM
Company
Salesforce Sales Cloud
Account
1:1Bluwave CRM Company records map directly to Salesforce Account. The Company name maps to Account Name and serves as the dedupe key during import. Industry, website, and address fields map to their Salesforce Account equivalents. Account is created before Contact import so that the AccountId Lookup relationship is satisfied at the moment of Contact insert. Companies with multiple associated Contacts in Bluwave CRM result in one Account per Company with multiple Contact records linked via the Account Lookup.
Bluwave CRM
Deal
Salesforce Sales Cloud
Opportunity
1:1Bluwave CRM Deals map to Salesforce Opportunity. Deal value maps to Amount, expected close date maps to CloseDate, owner maps to OwnerId via the User reconciliation step, and the Bluwave CRM pipeline stage maps to the Salesforce StageName under the Sales Process we configure before migration. Closed-won and closed-lost Deals carry their original stage to preserve historical pipeline reporting in Salesforce.
Bluwave CRM
Deal Stage
Salesforce Sales Cloud
Opportunity Stage
lossyEach Bluwave CRM pipeline's stage names are extracted during scoping and mapped to Salesforce StageName values under a new Sales Process. Stage probability percentages from Bluwave CRM migrate to StageProbability in Salesforce with rounding to the nearest integer. We configure the Sales Process in a Salesforce Sandbox first and validate the stage sequence with the customer's sales ops lead before production migration.
Bluwave CRM
Pipeline
Salesforce Sales Cloud
Record Type + Sales Process
lossyBluwave CRM supports one pipeline per organisation with configurable stages. If the customer has used pipeline stages to represent different lines of business, we map each distinct stage set to a Salesforce Record Type on Opportunity, paired with a dedicated Sales Process that scopes StageName values per line. Page Layout assignments per Record Type are configured in the destination org before migration.
Bluwave CRM
Activity (face-to-face, call, email, task)
Salesforce Sales Cloud
Task and Event
1:1Bluwave CRM activities (calls, emails, meetings, tasks) map to Salesforce Task (TaskSubtype = Call for phone calls) and Event objects. Activity type picklist values require explicit mapping as Bluwave CRM's picklist schema is not published publicly; we infer the mapping from exported data during scoping. Geocoded latitude/longitude from face-to-face activities migrate as custom fields latitude__c and longitude__c on Task, flagged as forward-geocoded approximations rather than GPS captures. Parent record linking (WhoId and WhatId) is resolved by matching the associated Contact or Deal record ID to the migrated Salesforce ID.
Bluwave CRM
Pipeline Stages
Salesforce Sales Cloud
Sales Process
lossyBluwave CRM pipeline stage names and reorder logic are extracted during scoping and reconstructed as Salesforce Sales Processes. Stage probability weights migrate to StageProbability on each stage entry. The Sales Process is associated with the relevant Opportunity Record Type before Deals are imported.
Bluwave CRM
Users / Owners
Salesforce Sales Cloud
User
1:1Bluwave CRM User records (name, email, role) are extracted and matched to Salesforce Users by email address during the Owner reconciliation step. Any Bluwave CRM Owner without a matching Salesforce User is held in a reconciliation queue for the customer's admin to provision before Deal and Activity import resumes, because OwnerId references are required on most standard Salesforce objects.
Bluwave CRM
Mail List
Salesforce Sales Cloud
Campaign + CampaignMember
1:manyBluwave CRM Mail List segments migrate to Salesforce Campaign records, with the segment member contacts mapped to CampaignMember records linked to the corresponding Campaign. The customer chooses whether to create one Campaign per list or consolidate into a single Campaign with list-name tagged in a custom field. Email campaign send history, open rates, and click data do not transfer as these are transient engagement metrics not stored in Bluwave CRM record fields.
Bluwave CRM
Custom Fields
Salesforce Sales Cloud
Custom Fields (__c)
lossyBluwave CRM custom field names and data types are inferred during scoping by sampling exported data and validating content patterns against expected formats. We pre-create all destination custom fields in Salesforce (with appropriate field types: Text, Number, Picklist, Date, Checkbox) before any data import. Misidentified field types discovered during batch validation trigger a schema correction cycle before the full load commits.
Bluwave CRM
Attachments
Salesforce Sales Cloud
ContentDocument + ContentVersion
1:1Binary file attachments on Deals and Contacts do not export via Bluwave CRM's Excel export. We extract these separately through the web interface where accessible and load them into Salesforce as ContentVersion records, then link them via ContentDocumentLink to the parent Contact, Account, or Opportunity. Attachment count and a list of accessible files are documented in the scoping report; inaccessible files (due to permission restrictions or deleted records) are flagged for manual handoff.
Bluwave CRM
Lead
Salesforce Sales Cloud
Lead
1:1Bluwave CRM Lead records (distinct from Contacts, sourced from website real-time capture) map directly to Salesforce Lead. Lead source attribution and lifecycle stage from Bluwave CRM migrate to LeadSource and a custom field bluwave_lifecycle_stage__c on the Salesforce Lead for audit continuity.
| Bluwave CRM | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Contact | Lead or Contact (split required)1:many | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Deal Stage | Opportunity Stagelossy | Fully supported | |
| Pipeline | Record Type + Sales Processlossy | Fully supported | |
| Activity (face-to-face, call, email, task) | Task and Event1:1 | Fully supported | |
| Pipeline Stages | Sales Processlossy | Fully supported | |
| Users / Owners | User1:1 | Mapping required | |
| Mail List | Campaign + CampaignMember1:many | Fully supported | |
| Custom Fields | Custom Fields (__c)lossy | Mapping required | |
| Attachments | ContentDocument + ContentVersion1:1 | Mapping required | |
| Lead | Lead1: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.
Bluwave CRM gotchas
No public API — migration relies on Excel export
Custom field schema is not publicly documented
Pricing is in ZAR with mandatory upfront training package
Geocoded location data is address-derived, not GPS-captured
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 with Excel export audit
We request access to all Bluwave CRM modules (Contacts, Leads, Companies, Deals, Activities, Pipeline, Mail Lists) and all column views before any export to confirm no columns are hidden by default filter configuration. We export sample records from each module and infer custom field names and data types from content patterns. We document the current pipeline stage names, activity type picklist values, user roster, mail list definitions, and any custom field discovered. The discovery output is a written migration scope document with the Lead-Contact split rule, the field mapping matrix, and the object import order.
Schema design and Salesforce configuration
We design the destination Salesforce schema in a Sandbox org. This includes provisioning custom fields on Account, Contact, Lead, and Opportunity (bluwave_record_id__c, bluwave_lifecycle_stage__c, latitude__c, longitude__c, and any inferred custom fields), configuring Record Types and Sales Processes per Bluwave CRM pipeline, setting up Page Layouts per Record Type, and creating Campaign records for each Bluwave CRM mail list. We coordinate with the customer's Salesforce admin to grant the migration user the Bulk API permission and to temporarily bypass validation rules during the load phase.
Full export and data validation
We run the full Excel export across all relevant Bluwave CRM modules with all columns visible. We validate the exported row counts against the module record counts visible in Bluwave CRM's UI to confirm no records were excluded. We load the exported data into a staging environment, apply the field mapping transforms (including the Lead-Contact split, stage name mapping, and geocoded coordinate transfer), and run a batch validation of 25-50 records against the source to confirm field-level accuracy before production migration.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Full Copy or Partial Copy Sandbox using production-scale data volume. The customer's sales ops lead reconciles record counts (Accounts in, Contacts in, Leads in, Opportunities in, Tasks and Events in, Campaign Members in), spot-checks 25-50 records against the Bluwave CRM source for field accuracy, and signs off the schema and mapping before production migration begins. Any field type corrections, picklist value additions, or mapping errors are corrected in the Sandbox and redeployed.
Owner reconciliation and User provisioning
We extract every distinct Bluwave CRM Owner referenced on Deal, Activity, and Contact records 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 any missing Users (active for current staff, inactive for departed users whose historical assignment must be preserved). Migration cannot proceed past this step because OwnerId references are required on Opportunity and Activity records.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from Bluwave CRM Companies), Contacts and Leads (with the split applied and AccountId resolved on Contacts), Opportunities (with AccountId, OwnerId, and RecordTypeId resolved), Campaigns and Campaign Members (for mail lists), Activity history via Bulk API 2.0 (Tasks and Events with WhoId, WhatId, and geocoded fields resolved), and custom fields finalisation. Each phase emits a row-count reconciliation report before the next phase begins. We freeze Bluwave CRM writes during the cutover window and run a final delta migration for any records modified during the window.
Cutover, validation, and automation inventory handoff
We enable Salesforce as the system of record after the final delta migration validates zero new records in the migration window. We deliver the written automation inventory document listing every active Bluwave CRM workflow and travel claim rule with its trigger, conditions, actions, and a recommended Salesforce Flow or Field Service Lightning equivalent. We support a one-week hypercare window for reconciliation issues raised by the sales team. We do not rebuild automations or travel claim logic inside the migration scope; those are a separate engagement.
Platform deep dives
Bluwave CRM
Source
Strengths
Weaknesses
Salesforce Sales Cloud
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 3 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 Bluwave CRM and Salesforce Sales Cloud.
Object compatibility
3 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
Bluwave CRM: Not publicly documented.
Data volume sensitivity
Bluwave 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 Bluwave CRM to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Bluwave 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 Bluwave 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.