CRM migration
Field-level mapping, validation, and rollback between Dashcord and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
Dashcord
Source
Freshsales
Destination
Compatibility
6 of 8
objects map 1:1 between Dashcord and Freshsales.
Complexity
BStandard
Timeline
2-4 weeks
Overview
Dashcord stores all data as Salesforce objects and custom fields within a host org, so migration begins by querying Salesforce rather than calling a Dashcord API. There is no published Dashcord API. We introspect the org's metadata to discover Dashcord package objects, enumerate custom fields, and build a schema map before writing a single record. Lifecycle stage values and lead scores stored as custom picklist or number fields on Leads and Contacts migrate to Freshsales custom fields that your admin names during scoping. Freshsales' built-in Salesforce migration tool supports only standard CRM objects, so Dashcord's custom event and lifecycle data requires direct API-to-API transfer that we handle. We do not migrate workflows, event-based automations, or campaign send logic; we deliver a written inventory of these for your admin to rebuild in Freshsales.
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 Dashcord 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.
Dashcord
Lead
Freshsales
Lead
1:1Dashcord uses Salesforce Leads as lifecycle entry points. Standard Salesforce Lead fields (Name, Email, Phone, Company, Status, LeadSource) map directly. Dashcord-specific custom fields storing lifecycle stage values and lead scores migrate as Freshsales custom fields named during scoping (for example, dashcord_lifecycle_stage__c and dashcord_lead_score__c). We deduplicate by email match and flag any duplicate emails in a reconciliation report before insert.
Dashcord
Contact
Freshsales
Contact
1:1Dashcord Contacts are the primary audience records in the lifecycle model. Standard Contact fields (Name, Email, Phone, Title, Department) map to Freshsales Contact. Dashcord custom contact properties migrate to Freshsales custom fields with the same field label and data type. We preserve the Salesforce Account relationship by mapping to Freshsales Accounts using domain or account name as the dedupe key.
Dashcord
Account
Freshsales
Account
1:1Dashcord Accounts represent company and organization records linked to Contacts and Opportunities. Standard Account fields (Name, Website, Industry, BillingAddress, Phone) map to Freshsales Account. Any custom Account fields added in the Dashcord package or Salesforce org migrate to Freshsales custom fields. Account-to-Contact relationships are preserved via AccountId on Contact records.
Dashcord
Campaign
Freshsales
Campaign
1:1Dashcord wraps Salesforce Campaigns for marketing automation. We export Campaigns and map them to Freshsales Campaigns, preserving Campaign Name, Type, Status, StartDate, EndDate, and BudgetedCost. Campaign Members linking Contacts and Leads to the Campaign migrate to Freshsales Campaign Members with Member Status mapped to Freshsales campaign member status values.
Dashcord
Campaign Member
Freshsales
Campaign Member
1:1Campaign Members link Dashcord Contacts and Leads to Campaigns with status and timing data. We export all member records and map them to Freshsales Campaign Members, resolving the Contact or Lead reference and the Campaign reference at migration time. Campaign Member status values (Sent, Responded, Opened, Clicked) are normalized to Freshsales status labels.
Dashcord
Lifecycle Stages (custom field on Lead/Contact)
Freshsales
Custom field (lifecycle stage)
lossyDashcord assigns lifecycle stage values (Subscriber, Lead, MQL, SQL, Customer, Evangelist) stored as custom picklist fields on Lead and Contact records. These are not Freshsales standard fields. We create a Freshsales custom picklist field during pre-flight schema setup and migrate the raw values. The customer chooses whether to map these to Freshsales lifecycle stage defaults or keep them as-is for audit. This field is queryable and usable for segmentation in Freshsales.
Dashcord
Lead Scoring (custom field on Lead/Contact)
Freshsales
Custom field (lead score)
lossyDashcord stores numeric or tiered lead scores as custom number or picklist fields on Lead and Contact records. We export the raw score values and the scoring model name if stored in a related custom object. Freshsales has its own Freddy AI behavioral scoring that activates on Growth and above; we create a custom numeric field (dashcord_score__c) to preserve the original Dashcord score and allow comparison against Freshsales' AI score after migration.
Dashcord
Events (Dashcord custom object)
Freshsales
Appointment
1:1Dashcord's event management module stores events as custom Salesforce objects whose schema varies by Dashcord package version. We introspect the Salesforce org's custom object definitions during pre-flight to identify the event object name and field set. Standard event fields (Event Name, Start Date, End Date, Location, Description) map to Freshsales Appointments. Attendee records map to Freshsales Appointment Contact records. Schema variations require manual enumeration during pre-flight; we flag any fields with no Freshsales equivalent in the mapping document.
| Dashcord | Freshsales | Compatibility | |
|---|---|---|---|
| Lead | Lead1:1 | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Account | Account1:1 | Fully supported | |
| Campaign | Campaign1:1 | Fully supported | |
| Campaign Member | Campaign Member1:1 | Fully supported | |
| Lifecycle Stages (custom field on Lead/Contact) | Custom field (lifecycle stage)lossy | Fully supported | |
| Lead Scoring (custom field on Lead/Contact) | Custom field (lead score)lossy | Fully supported | |
| Events (Dashcord custom object) | Appointment1: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.
Dashcord gotchas
No publicly documented API endpoint for Dashcord
Dashcord data model not independently documented
Salesforce Edition gating may restrict API access
No public pricing tiers means migration scoping has no self-serve reference
Small vendor elevates product discontinuation risk
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
Salesforce org audit and schema discovery
We authenticate via OAuth to the customer's Salesforce org and run a metadata introspection using the Salesforce Tooling API and REST API. We identify all Dashcord package custom objects, enumerate their field definitions, and compare against standard CRM objects in use. We produce a schema map listing every source object, its Freshsales target, and any custom fields requiring creation in Freshsales before migration. This step also captures Salesforce Edition, API access status, and record volume estimates per object. We deliver the schema map and a migration scope document before any data moves.
Freshsales sandbox setup and custom field provisioning
We create a Freshsales Sandbox environment (or a fresh Growth/Pro account for smaller migrations) and provision all required custom fields identified in the schema discovery. Custom fields for lifecycle stage and lead score are created as picklist and numeric fields respectively, named with the dashcord_ prefix for traceability. We configure the field visibility and required flags. The Freshsales admin reviews and approves the custom field setup before test migration begins.
Test migration and reconciliation
We run a full migration into the Freshsales sandbox using production-like data volume from the Salesforce export. We reconcile record counts for every object (Leads, Contacts, Accounts, Campaigns, Campaign Members, Appointments), spot-check 20-30 records against the Salesforce source, and verify that custom field values (lifecycle stage, lead score) are present in Freshsales. Any mapping corrections, dedupe decisions, or schema gaps discovered during test migration are resolved here before production. The customer reviews and approves the test migration output.
Production migration in dependency order
We run production migration in dependency order: Freshsales Accounts (from Salesforce Accounts), Contacts (with AccountId resolved), Leads (with lifecycle stage and score values in custom fields), Campaigns, Campaign Members, Appointments from Dashcord event records. Each phase emits a row-count reconciliation report. Salesforce API rate limits are handled with exponential backoff and batch chunking. Dashcord custom object records (event data) are migrated last, after parent standard records are confirmed.
Cutover, validation, and automation inventory handoff
We freeze Salesforce writes during the cutover window, run a final delta migration of any records modified during the migration, then enable Freshsales as the system of record. We validate final record counts against the source, spot-check a second sample, and deliver the Automation Inventory document listing any Dashcord lifecycle workflows or campaign automation logic that requires rebuild in Freshsales Workflows. We support a three-day hypercare window for reconciliation issues. We do not rebuild Dashcord automations as Freshsales Workflows; that is a separate scope.
Platform deep dives
Dashcord
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 Dashcord 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
Dashcord: Salesforce API limits apply — determined by Salesforce Edition (Group/Professional editions are capped; Enterprise and above have higher limits).
Data volume sensitivity
Dashcord 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 Dashcord to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your Dashcord 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 Dashcord
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.