CRM migration

Migrate from Dashly to Freshsales

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

Dashly logo

Dashly

Source

Freshsales

Destination

Freshsales logo

Compatibility

70%

7 of 10

objects map 1:1 between Dashly and Freshsales.

Complexity

BStandard

Timeline

2-4 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Dashly to Freshsales is a model shift from a conversational marketing platform to a structured sales CRM. Dashly stores contacts as Leads attached to threaded Conversations with embedded Messages; Freshsales uses Contacts linked to Accounts with Deals and a native Activity timeline. We flatten Dashly conversation threads into Freshsales Tasks and Notes, preserving author attribution, timestamps, and channel metadata. The Dashly Company record maps to Freshsales Account, and any custom Lead properties map to Freshsales custom fields created before migration. Leadbots, triggered message rules, and knowledge base articles are exported as structured JSON configs; these do not auto-migrate because Freshsales Workflows use a different automation schema. We do not migrate visitor session data, UTM parameters, or behavioral analytics as these are aggregated metrics not stored as individual records in Dashly.

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

Dashly logo

Dashly

What's pushing teams away

  • G2 reviewers report that Dashly's interface is not intuitive, with a steep learning curve that makes basic tasks like editing workflows and navigating the inbox time-consuming.
  • Users encounter difficulties deleting records and contacts cleanly, leading to data clutter and frustration when attempting to maintain accurate contact databases.
  • The platform's editing workflow for conversations and automations is described as cumbersome, forcing support teams to work around UI limitations rather than through them.
  • Email deliverability and sending issues appear in negative reviews, with some users reporting that outbound email features fail without clear explanation or workaround.

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

Each row shows how a Dashly 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.

Dashly

Lead

maps to

Freshsales

Contact

1:1
Fully supported

Dashly Leads map directly to Freshsales Contacts. Standard properties (name, email, phone) migrate to Freshsales Contact fields. Custom Lead properties are inventoried during discovery, typed (text, number, date, dropdown), and created as Freshsales custom fields before migration. Email is used as the dedupe key. Dashly tags on Leads map to Freshsales Contact tags.

Dashly

Conversation

maps to

Freshsales

Task

1:many
Fully supported

Each Dashly Conversation thread is decomposed into a Freshsales Task record holding conversation metadata (status, assignee, source channel, timestamps). The conversation's original status (open, resolved, pending) maps to Freshsales Task status values. The Dashly assignee maps to Freshsales Owner by email resolution. One Task is created per Conversation rather than one per message.

Dashly

Message

maps to

Freshsales

Note

1:many
Fully supported

Individual Messages within a Conversation migrate as Freshsales Note records attached to the parent Task (via ContentDocumentLink). Each Note records sender (agent or visitor), body content, timestamp, and delivery channel as Note metadata. Author attribution is preserved in the Note title field. Message ordering is preserved by setting Note CreatedDate to the original Dashly timestamp.

Dashly

Company

maps to

Freshsales

Account

1:1
Fully supported

Dashly Company records map directly to Freshsales Accounts. Standard fields (name, domain, industry) migrate to Account fields. Custom company properties are mapped to Freshsales custom Account fields. Dashly leads linked to a Company are associated to the migrated Account via Freshsales link_contact_to_account after Contact migration completes.

Dashly

User (Agent)

maps to

Freshsales

User

1:1
Fully supported

Dashly agent and admin accounts map to Freshsales Users by email match. Role and permission data is exported as a configuration record. Any Dashly agent without a matching Freshsales User is held in a reconciliation queue for the customer's admin to provision before record import proceeds.

Dashly

Tag

maps to

Freshsales

Tag

1:1
Fully supported

Dashly tags applied to Leads, Conversations, or Companies migrate as flat label arrays. Freshsales stores tags at the object level (Contact tags, Account tags, Deal tags) and we preserve all tag assignments per record. Tags used across multiple object types are exported separately per object type.

Dashly

Custom Properties

maps to

Freshsales

Custom Fields

lossy
Mapping required

Dashly custom fields on Leads and Companies are inventoried during discovery with their data types and value distributions. We create matching Freshsales custom fields (custom_contact_fields, custom_account_fields) before migration, then map values during import. Custom properties with picklist-style values are created as Freshsales dropdown fields; multi-value properties become multi-select picklists.

Dashly

Leadbot

maps to

Freshsales

Workflow (manual rebuild)

1:1
Fully supported

Dashly Leadbots are exported as structured JSON configs containing trigger conditions, dialogue trees, and action sequences. We provide the exported config file and a mapping guide describing how each bot trigger and action maps to an equivalent Freshsales Workflow. The workflow rebuild is manual and outside automated migration scope.

Dashly

Triggered Message

maps to

Freshsales

Workflow (manual rebuild)

1:1
Fully supported

Triggered message rules (behavior-based outbound sequences) are exported as JSON automation data. Freshsales Workflows use a different trigger-action model and must be rebuilt manually. We deliver the exported config and a step-by-step mapping guide for each triggered message sequence.

Dashly

Knowledge Base Article

maps to

Freshsales

Freshdesk Articles (if applicable)

1:1
Fully supported

Dashly knowledge base articles (title, body, SEO settings, category) are exported as structured text with metadata. Freshsales does not include a native knowledge base; articles intended for agent reference should be migrated to Freshdesk if the customer licenses Freshdesk, or to a third-party knowledge base tool. We flag this decision during scoping.

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.

Dashly logo

Dashly gotchas

High

Visitor-based pricing affects migration scoping

High

No public bulk export endpoint

Medium

Leadbot and triggered message configs require manual rebuild

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

  • Conversation thread flattening loses real-time threading

    Dashly stores conversation history as threaded message arrays attached to a Lead. Freshsales does not have a native Conversation object; we decompose each thread into a Task record with individual Messages as attached Notes. This preserves content, author, and timestamp, but the native real-time chat thread UI in Dashly does not have a direct Freshsales equivalent. Customers relying on the chat-widget view for active support queues should plan to continue using Freshchat or another live chat tool for new conversations after migration.

  • No bulk export endpoint extends extraction time

    Dashly's REST API requires paginated requests with field-inclusion parameters (include_{field}=true) to retrieve Leads, Conversations, and Messages. We chunk requests per endpoint, page through results sequentially, and handle 429 rate-limit responses with exponential backoff. For large accounts with extensive conversation histories, API-based extraction adds one to three weeks to the migration timeline compared to platforms with documented bulk export endpoints.

  • Leadbot and triggered-message configs require manual rebuild

    Leadbots and triggered message rules are stored as structured automation configurations in Dashly's JSON schema. Freshsales Workflows use a different trigger-condition-action model. We export these configs as JSON and provide a mapping guide, but the automation rebuild is not automated. Customers should allocate admin time post-migration to rebuild active bot flows and outbound sequences in Freshsales Workflows.

  • Company-Lead associations require post-import linking

    Dashly allows a Lead to be optionally linked to a Company. Freshsales requires a Contact to be linked to an Account via the link_contact_to_account field. We export the company association data during extraction and apply it after both Contact and Account migration complete, but this requires a post-import linking step that is not atomic with the Contact insert. Records modified between the linking step and cutover may need a delta pass.

  • Visitor session data and behavioral analytics are not migratable

    Dashly visitor session data (page views, referrer, UTM parameters, session duration, behavioral scoring) is aggregated by Dashly's analytics engine and is not stored as individual exportable records. These metrics do not migrate to Freshsales. Teams relying on Dashly visitor intelligence for lead scoring should implement Freshsales Freddy AI scoring post-migration to generate comparable signals from the new contact and activity data.

Migration approach

Six steps for a successful Dashly to Freshsales data migration

  1. Discovery and field inventory

    We audit the source Dashly account via paginated API: total Lead count, Company count, Conversation count, Message count, active Leadbot configs, triggered message rules, knowledge base article count, tag taxonomy, and all custom Lead and Company property definitions with data types and sample values. We check the current visitor plan tier to flag any customer approaching quota before migration begins. The discovery output is a written migration scope covering record counts, schema mapping, and a list of custom fields to create in Freshsales before migration.

  2. Freshsales schema preparation

    We create custom Contact and Account fields in Freshsales matching every Dashly custom property. We configure tags, set up the contact and account page layouts, and establish the owner assignment rules. If the customer uses Freshdesk, we confirm the knowledge base migration path. The Freshsales schema is validated in the customer's target account before any data extraction begins.

  3. Extraction and data cleansing

    We extract Leads, Companies, Conversations, Messages, Tags, and User records from Dashly using paginated API requests. We apply field-level inclusion parameters to pull only relevant fields, chunking per endpoint to handle rate limits. We flag duplicate emails, orphaned company associations, and records with missing required fields. Data cleansing runs as a separate phase before transformation, allowing the customer to review and remove junk records.

  4. Transformation and conversation flattening

    We transform extracted data to match Freshsales schema: Leads to Contacts, Companies to Accounts, Conversations to Tasks, Messages to Notes. Tags are mapped to Freshsales tag fields. Custom property values are mapped to their corresponding Freshsales custom fields. The company-lead association is preserved in a staging lookup table for post-import linking. Owner email addresses are resolved against the Freshsales User table.

  5. Import and parent-record linking

    We import in dependency order: Accounts (from Companies), Users (validated), Contacts (with tag mapping), Tasks (one per Conversation), Notes (attached to Tasks), then post-import linking of Contacts to Accounts. Each phase emits a row-count reconciliation report. We use Freshsales REST API or CSV import depending on record volume, with bulk import for large datasets.

  6. Cutover and automation rebuild handoff

    We freeze Dashly writes during cutover, run a final delta pass for any records modified during the migration window, then deliver the Leadbot and triggered-message JSON configs with Freshsales Workflow mapping guides. We provide a written inventory of every active automation requiring rebuild. We do not rebuild automations as part of the migration scope; that work is handled by the customer's admin or a Freshsales partner post-migration.

Platform deep dives

Context on both ends of the pair

Dashly logo

Dashly

Source

Strengths

  • All-in-one platform combining live chat, AI leadbots, triggered messaging, and knowledge base in a single tool.
  • Unlimited seats across all paid plans, making it cost-effective for growing support teams without per-user licensing.
  • Visitor-based pricing allows small teams to start at a low monthly cost with overage flexibility.
  • Built-in knowledge base with unlimited articles and SEO settings supports both agent reference and self-service content.
  • Offers a free trial and free Conversation starter plan for evaluation.

Weaknesses

  • G2 reviews consistently describe the interface as unintuitive with a steep learning curve for new users.
  • Deletion workflows are reported as problematic, making it difficult to remove stale records cleanly.
  • Email sending and deliverability features receive recurring complaints in negative reviews.
  • No documented bulk data export endpoint means migration requires API-based extraction or manual workarounds.
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 Dashly 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

    Dashly: Not publicly documented.

  • Data volume sensitivity

    B

    Dashly doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

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

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

Can't find your answer?

Walk through your Dashly 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 four weeks for accounts under 10,000 Leads and 5,000 Companies with no extensive conversation history. Migrations with large conversation volumes (over 50,000 Messages), multiple custom Lead properties, knowledge base articles requiring export, or complex company-lead association mapping move to four to eight weeks because of pagination handling and the conversation-flattening transformation step.

Adjacent paths

Related migrations to explore

Ready when you are

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