CRM migration
Field-level mapping, validation, and rollback between Prophet CRM and Salesforce Sales Cloud. We move data and schema; workflows are rebuilt natively in Salesforce Sales Cloud.
Prophet CRM
Source
Salesforce Sales Cloud
Destination
Compatibility
9 of 14
objects map 1:1 between Prophet CRM and Salesforce Sales Cloud.
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Prophet CRM to Salesforce Sales Cloud is a structural migration that spans a tightly Outlook-embedded CRM with per-department custom field schemas to a web-native platform with unlimited pipelines and a custom object model from Professional tier. Prophet CRM has no bulk export API, so we paginate through its OData endpoints in batches of 500 to 1,000 records, extracting in dependency order (Companies first, then Contacts, then Opportunities) to preserve relational links. The Outlook contact sync must be frozen before extraction and re-enabled post-import to prevent duplicate records. Custom fields in Prophet CRM vary by department template, requiring a mandatory schema audit before export to avoid dropping department-specific fields invisible in the default view. Salesforce validation rules, field-level security, and the StageName picklist are configured in Sandbox before any production record moves. Workflows, department templates, and Outlook-specific settings do not migrate; we deliver a written inventory of these for the customer's admin to 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 Prophet 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.
Prophet CRM
Contact
Salesforce Sales Cloud
Contact
1:1Prophet Contacts map directly to Salesforce Contacts. Prophet's bidirectional Outlook Contact sync must be frozen before extraction and re-enabled post-import; skipping this step creates duplicate Contact records when Outlook re-syncs against the newly migrated Salesforce contacts. We export contact name fields, email, phone, title, address, and owner. Custom fields on Contact migrate to Salesforce custom Contact fields after the department-template schema audit completes.
Prophet CRM
Company
Salesforce Sales Cloud
Account
1:1Prophet Companies map to Salesforce Accounts. Standard fields (industry, address, employee count, revenue, website) export cleanly from the OData API. Company is the parent record of Contact, so Accounts are created first during migration so that AccountId is resolved at Contact insert time. Industry classification maps to the Account Industry picklist; employee count and revenue map to NumberOfEmployees and AnnualRevenue.
Prophet CRM
Opportunity
Salesforce Sales Cloud
Opportunity
1:1Prophet Opportunities map to Salesforce Opportunities with name, amount, close date, probability, owner, and stage exported from the OData API. Stage assignments export as part of the record and are mapped to Salesforce StageName during the transform. We flag any Opportunity without a valid Company reference for manual AccountId assignment before production load. Closed-Lost and Closed-Won status migrate as-is; probability percentages map to StageProbability in Salesforce.
Prophet CRM
Pipeline Stage
Salesforce Sales Cloud
Opportunity Stage
lossyProphet pipeline stages are configurable per organization and vary by department even within a single Prophet installation. We capture the full stage list during scoping and map each stage name to a Salesforce StageName value and probability. Each stage gets a corresponding Salesforce Sales Process that whitelists only the valid stages for that pipeline. Stage ordering is preserved via SortOrder in the Sales Process.
Prophet CRM
Activity: Email
Salesforce Sales Cloud
EmailMessage + Task
1:1Prophet email tracking engagements migrate to Salesforce EmailMessage records (the email content) linked to a Task record (the activity timeline entry). The WhoId on Task points to the migrated Contact; WhatId points to the related Opportunity or Account. Email body, subject, timestamp, and direction (sent/received) transfer. We use the Salesforce Bulk API 2.0 for large email histories because the volume exceeds what the REST API can handle within rate limit windows.
Prophet CRM
Activity: Task
Salesforce Sales Cloud
Task
1:1Prophet task engagements map to Salesforce Task records with Status, Priority, Subject, ActivityDate, and owner preserved. Task assignment migrates by resolving the Prophet owner email to Salesforce OwnerId via the User mapping. TaskSubtype defaults to Task for plain tasks; call tasks set TaskSubtype=Call with CallDisposition and CallDurationInSeconds migrated to custom Task fields.
Prophet CRM
Activity: Appointment
Salesforce Sales Cloud
Event
1:1Prophet appointment engagements map to Salesforce Event records with StartDateTime, EndDateTime, Subject, Location, and description preserved. EventRelation records link attendees to the migrated Contact or Opportunity. Activity timeline ordering is preserved by setting ActivityDateTime to the original Prophet timestamp. Recurring appointments map as individual Event records; recurrence metadata is not preserved as Salesforce Events do not have native recurrence on non-Calendar-standard objects.
Prophet CRM
Activity: Call Log
Salesforce Sales Cloud
Task (TaskSubtype = Call)
1:1Prophet call logs migrate to Salesforce Task with TaskSubtype = Call. Call duration, disposition code, and notes transfer to custom fields on the Task. The original call timestamp becomes ActivityDate. Call recording URLs stored in Prophet become a URL custom field on the Task for reps to access playback in Salesforce.
Prophet CRM
Custom Field
Salesforce Sales Cloud
Custom Field (__c)
lossyProphet custom fields on Contact, Company, and Opportunity are mapped to Salesforce custom fields of equivalent data type. The department-template audit is mandatory because custom field schemas vary by department even on the same object; fields invisible in the default Company or Contact view will be dropped if the audit is skipped. We enumerate all field names, types, and department assignments during scoping and create Salesforce custom fields in the destination org's schema before any data loads begin.
Prophet CRM
Attachment
Salesforce Sales Cloud
ContentDocument (via ContentVersion)
1:1Prophet file attachments on Companies, Contacts, and Opportunities migrate as Salesforce ContentDocument records via the ContentVersion upload workflow. We extract attachment metadata (filename, MIME type, file size) and URL from the OData export, download each file, and upload via the Salesforce ContentVersion API. ContentDocumentLink records link each file to the parent Contact, Account, or Opportunity. Files over 25 MB trigger chunked upload handling.
Prophet CRM
Department
Salesforce Sales Cloud
Custom Field (Department__c)
lossyProphet departments are a first-class concept with custom templates and configurable cross-department read/write access. Salesforce has no native department object. We export the department assignment on each record and populate a custom picklist field Department__c on the relevant Salesforce object. Role-based access and cross-department visibility are documented in the migration handoff for the customer's admin to implement via Salesforce Profiles, Permission Sets, and Sharing Rules.
Prophet CRM
Owner
Salesforce Sales Cloud
User
1:1Prophet Owner references on Contacts, Companies, and Opportunities resolve by email match against the Salesforce User table in the destination org. Any Prophet Owner without a matching Salesforce User enters a reconciliation queue for the customer's admin to provision before record import resumes. Inactive Salesforce Users are created as inactive to preserve historical owner attribution without granting login access.
Prophet CRM
Group Email Thread
Salesforce Sales Cloud
Task (thread grouping)
lossyProphet's group email sending and thread tracking groups related emails under a single thread view. We preserve thread grouping by creating a parent Task record representing the thread, then attaching individual EmailMessage records as children. The thread subject becomes the parent Task subject. This preserves the conversation view that sales reps rely on without replicating a thread object that Salesforce does not natively support.
Prophet CRM
Group Email Send
Salesforce Sales Cloud
Campaign + CampaignMember
lossyProphet group email campaigns map to Salesforce Campaign records with CampaignMembers representing each recipient. The Campaign Type is set to Email Newsletter or Email Blasting depending on the group send type. Individual email tracking events (opens, clicks, bounces) from Prophet are not directly migratable to Salesforce Campaign Member Status because Salesforce tracks engagement at the Campaign level; we document the engagement data for import into a marketing analytics layer if the customer has Marketing Cloud Account Engagement.
| Prophet CRM | Salesforce Sales Cloud | Compatibility | |
|---|---|---|---|
| Contact | Contact1:1 | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Opportunity | Opportunity1:1 | Fully supported | |
| Pipeline Stage | Opportunity Stagelossy | Fully supported | |
| Activity: Email | EmailMessage + Task1:1 | Fully supported | |
| Activity: Task | Task1:1 | Fully supported | |
| Activity: Appointment | Event1:1 | Fully supported | |
| Activity: Call Log | Task (TaskSubtype = Call)1:1 | Fully supported | |
| Custom Field | Custom Field (__c)lossy | Fully supported | |
| Attachment | ContentDocument (via ContentVersion)1:1 | Fully supported | |
| Department | Custom Field (Department__c)lossy | Fully supported | |
| Owner | User1:1 | Fully supported | |
| Group Email Thread | Task (thread grouping)lossy | Fully supported | |
| Group Email Send | Campaign + CampaignMemberlossy | 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.
Prophet CRM gotchas
Prophet CRM renamed to Avid CRM mid-lifecycle
No bulk export API in Prophet CRM
Custom field audit required before export scoping
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 audit
We audit the Prophet CRM installation across tier (Standard/Professional/Enterprise), department template count, custom field inventory per object per department, pipeline stage names and count, activity volume estimates (email, task, appointment, call log), and attachment count. We confirm the product version and current name (Avidian's rename from Prophet CRM to Avid CRM requires explicit verification at kickoff to map to the correct API endpoints and documentation). The discovery output is a written migration scope with record counts per object, a custom field matrix, and a Salesforce edition recommendation based on the customer's data model complexity.
Custom field schema audit and mapping design
We enumerate every Prophet custom field on Contact, Company, and Opportunity across all department templates, capturing field name, data type, and which departments use which templates. This audit is mandatory because default-view exports miss department-specific fields. We design the Salesforce custom field schema to receive each Prophet field, matching data types (text to text, date to date, picklist to picklist). Department assignments on records are mapped to a custom Department__c picklist on the relevant Salesforce object. The mapping design is validated in a Salesforce Sandbox before any production records move.
Sandbox migration and reconciliation
We run a full migration into a Salesforce Sandbox (Full Copy or Developer Pro) using production-equivalent data volume. The customer's admin and RevOps lead reconcile record counts (Accounts in, Contacts in, Opportunities in, Activities in), spot-check 25-50 records against the Prophet source, and validate that custom field data landed in the correct Salesforce fields. Any mapping corrections are made in the sandbox and re-validated before production migration begins. Validation rules, workflow rules, and field-level security are reviewed and temporarily adjusted in the sandbox to establish the correct import-permissive configuration.
Outlook sync freeze and Owner reconciliation
We instruct the customer's admin to freeze the Prophet-to-Outlook contact sync before the production migration begins to prevent duplicates on re-enrollment. We extract every distinct Prophet Owner referenced on Contacts, Companies, and Opportunities and match by email against the Salesforce destination org's User table. Owners without a matching Salesforce User enter a reconciliation queue for the customer's admin to provision (active or inactive based on whether the original Prophet user is still active). Migration cannot proceed past this step because OwnerId references are required on standard Salesforce objects.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from Prophet Companies), Contacts (with AccountId resolved from the Company mapping and Outlook sync frozen), Opportunities (with AccountId and OwnerId resolved), Activity history (Tasks, Events, EmailMessages via Salesforce Bulk API 2.0 with chunking and parent-record WhoId/WhatId lookup resolution), Attachments (via ContentVersion and ContentDocumentLink), then Custom Fields (populated after the base object load to avoid validation rule failures on required custom fields). Each phase emits a row-count reconciliation report before the next phase begins. We handle the OData pagination with 500-to-1,000-record batches, exponential backoff on any rate-limit responses, and retry logic for partial batch failures.
Cutover, delta migration, and rebuild handoff
We freeze Prophet CRM writes during the cutover window, run a final delta migration of any records modified during the migration window, then enable Salesforce as the system of record. We re-enable Outlook sync with the controlled sequence (disable bidirectional sync, run a deduplication pass, re-enable one-directional Outlook-to-Salesforce sync). We deliver the written inventory of Prophet automations, department templates, and Outlook-specific settings that require rebuild in Salesforce Flow or manual configuration. We support a one-week hypercare window where we resolve reconciliation issues raised by the customer's sales team. Workflows, department templates, and Outlook-specific configurations do not migrate as code within the standard migration scope.
Platform deep dives
Prophet 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 Prophet 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
Prophet CRM: Not publicly documented.
Data volume sensitivity
Prophet 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 Prophet CRM to Salesforce Sales Cloud migration scoping. Not seeing yours? Book a call.
Walk through your Prophet 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 Prophet 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.