How to export your data from Freshsales before the subscription ends
A complete Freshsales export comes from running the export from Freshsales' admin export settings for every record type you need, and starting early enough to check the result before your subscription ends. This page covers only documented export paths. The record types, export limits and the way the file is delivered depend on your Freshsales plan, so confirm them in the admin export settings and in the Freshsales help center before you build a schedule around them. Treat the export as one step in leaving the product: it gets your records out, but it does not move workflows, permissions, integrations or reports, which need their own inventory.
Start by listing what your business depends on in Freshsales: contacts, accounts, deals, activities, notes, attachments, custom fields, pipelines, users and teams. Compare that list with what the export actually produces, record type by record type, and note any gaps early, because a gap found in the final week leaves little room to fix it. Run a test export, open the files, and check record counts and a sample of linked records, such as which account a deal belongs to. Repeat the export close to the cutoff so changes made after the first pass are captured. Export files contain personal data, so store them in access-controlled locations and apply the same retention rules you would apply to any customer data. Once verified, the files become the input for your target system, such as the EspoCRM import documentation.
Which Freshsales record types to export and how to confirm each
This table lists each record type you are likely to need after leaving Freshsales, the export path to check in your own admin settings, the file format to expect and the limits to confirm before you start. Use it as a checklist: tick off each row once you have an export file and have opened it to confirm the record count and fields match what you see in the app.
| Record type | Export path to confirm in Freshsales | Expected file format | Limits to confirm |
|---|---|---|---|
| Contacts | Confirm the export option in your contacts list view and admin export settings | Confirm in your admin export settings | Confirm the daily export allowance and whether a full-range export is available |
| Accounts | Confirm the export option in the accounts list view and admin export settings | Confirm in your admin export settings | Confirm whether linked contacts and deals are included in the same file |
| Deals | Confirm the export option in the deals list view, including filters for closed and open deals | Confirm in your admin export settings | Confirm that stage, value and owner fields appear in the export |
| Activities | Confirm whether calls, emails, meetings and tasks export together or separately | Confirm in your admin export settings | Confirm whether activity history older than your plan window is included |
| Notes | Confirm whether notes attached to contacts, accounts and deals export with their parent record | Confirm in your admin export settings | Confirm whether note bodies are complete in the export or truncated |
| Tasks | Confirm whether open and completed tasks both export, and whether they link to records | Confirm in your admin export settings | Confirm the owner and due date fields are present |
| Products | Confirm the export option in the product catalog settings | Confirm in your admin export settings | Confirm whether deal-product line items are exported with the deals |
| Custom fields | Confirm the field list in the admin settings for each module and compare it with the export headers | Confirm in your admin export settings | Confirm that field types such as dropdowns and multi-select values keep their labels |
| Pipelines and stages | Confirm the pipeline and stage configuration in the deals admin settings and record it separately | Usually not in the record export; confirm with Freshsales | Confirm stage order and probability values are documented, since they may not export |
| Users and teams | Confirm the user and team lists in the admin settings and note ownership assignments | Confirm in your admin export settings | Confirm whether user emails and roles are included, and handle them under your privacy policy |
What to do when the export arrives by email
The export does not download directly in the browser. Freshsales sends a link to the email address of the admin who requested it, so the exporting account needs a working mailbox that the migration team can reach. Before you start the export, confirm who receives the message and that their mailbox is not subject to aggressive filtering or auto-deletion. Check the validity period shown on the export screen and in the notification, and treat that window as the hard deadline for the download. If the link expires, you will need to run another export, which counts against the daily limit described elsewhere on this page.
Once the archive is downloaded, copy it to storage your organization controls at once, such as an encrypted network share or object store in your own infrastructure, and record who downloaded it and when. Then confirm that the ZIP opens and that every record type you requested appears as its own file. Open each file and check the header row, the character encoding, the date formats and the row count against what you expect from the Freshsales views. Look for the custom fields your team relies on, because a missing column is far easier to catch now than after the import. If a file is empty or absent, raise it with Freshsales support before the subscription ends.
Keep the archive as an untouched original. Store it read-only, generate a checksum for it, and never edit it in place. Make every working copy from that original, and do your field mapping, cleaning and deduplication only on those copies. Keep a short log of each transformation so you can explain any difference between the source and the target later. When you prepare the import into EspoCRM, use the EspoCRM import documentation to test on a small sample first. If a mapping goes wrong, you can rebuild the working copy from the original without asking Freshsales for another export.
What a CRM export usually leaves out and how to capture it
A records export rarely carries everything a sales team depends on. The items below are common gaps in CRM exports, and each one needs a confirmed answer from Freshsales before the subscription ends. Treat every card as an open question until you have written confirmation or a tested sample of the output.
Email bodies and attachments
Email threads logged against contacts and deals may come across as activity records without full message bodies or files. Confirm with Freshsales whether bodies, headers and attachments are included in the export or in a separate download. If they are not, archive mailboxes through your mail provider's own export tool and keep a mapping from each thread to its contact and deal ID. Check one thread end to end before you rely on the method.
Call recordings and voicemail
Recorded calls and voicemail files are stored as media, not as text fields, so a standard records export is unlikely to include them. Ask Freshsales where recordings are stored, how long they remain downloadable and whether a bulk export exists. Keep a list of recording IDs, dates and linked records so you can match audio to deals if you move it to storage you control.
Sequence and automation logic
Sequences, workflows and assignment rules define how work moves through your pipeline, and they usually live in the admin configuration rather than in the data. Confirm with Freshsales whether these can be exported in any form. If not, document each rule screen by screen: trigger, conditions, actions, owner and timing. That document becomes the specification for rebuilding the logic in EspoCRM's workflows or Formula Script.
Dashboards and reports
Saved reports, dashboards and their filters are configuration objects, and they are rarely part of a records export. Ask Freshsales which report definitions can be exported and whether they are in a readable format. Otherwise, capture each report with its filters, date ranges, grouping and recipients, and save sample outputs so you can check that the rebuilt versions return the same totals.
Role and permission models
Who can see which accounts, deals and fields is defined in roles, profiles and sharing settings, and an export of records does not show those rules. Confirm with Freshsales how roles are configured and whether any part can be exported. Record each role, its field visibility and its record-level access in a table. This is the input you need to define teams and access in EspoCRM before users log in.
Integration-side and AI-generated data
Data written by connected tools, such as marketing platforms, telephony add-ons and AI features, may be stored in Freshsales or only referenced there. Confirm with Freshsales which fields are native and which come from integrations or AI-generated summaries, and whether those values are included in the export. Where they are excluded, pull the source systems directly or through the Freshsales API if it documents an endpoint for the object, and note the gaps for review.
The sequence for a complete Freshsales export with verification
This sequence turns a one-time Freshsales export into evidence you can defend: every record type is counted before it leaves, checked after it arrives, and tied to a dated log so nothing is lost before the subscription ends.
Freeze a record-count baseline per object
Before any export, have the admin record the total count of each object in Freshsales: contacts, accounts, deals, activities, notes, and any custom modules in use. Capture the counts on a single dated sheet and store it with the project records. Use the same filters you plan to export under, so the baseline and the export describe the same population. The step is done when every object in scope has a number, a date and the name of the person who pulled it.
Run the full admin export once
Assign one named owner to run the full-range export from the Freshsales admin area, so there is a single accountable person and one canonical archive. Confirm the record types the export includes against your baseline list, and note any object that does not appear. Because Freshsales limits how many exports you can run per day and offers only one full-range export, avoid partial re-runs that would blur which archive is authoritative. The step is done when the owner confirms the export request was submitted and the archive notification has arrived.
Download and checksum the archive
Download the emailed ZIP promptly, since download links are time-limited, and store it in a restricted location with access logged. Generate a SHA-256 checksum immediately and record it next to the archive in the export log. Extract a working copy into a separate folder so the original stays untouched. The step is done when the checksum is recorded and a second team member can recompute it and get the same value.
Compare row counts with the baseline
Open each file in the archive and count its data rows, excluding headers. Compare each count with the baseline recorded in the first step. Where a count differs, check whether the difference comes from a known filter, deleted records, or a record type the export does not include, and write the explanation beside the figure. The step is done when every object either matches its baseline or has a documented reason for the gap.
Spot-check related records across objects
Pick a sample of deals and trace each one to its linked contact and account in the exported files, then trace a sample of contacts back to their accounts and open activities. Confirm that the identifiers in the link columns resolve to real rows in the target files. Include at least a few records with unusual characteristics, such as deals without contacts or contacts with several accounts. The step is done when every sampled relationship resolves, and any broken link is logged with its record identifier.
Re-export near cutover to capture changes
Schedule a second export on a documented date close to cutover so records created or edited after the first archive are captured. Repeat the download, checksum, and count comparison for this archive, and compare its counts against the first one to identify what changed in between. Treat the second archive as the cutover source only after it passes the same checks. The step is done when the delta between the two archives is explained and the final archive is marked as the cutover source.
Log every export with date, scope and owner
Maintain one export log that records, for each run, the date, the object scope, the filters used, the checksum, the person who ran it and the person who verified it. Keep the log alongside the baseline sheet and the verification notes. Ask the Freshsales account owner to confirm in writing which records are excluded from the export, such as email content or attachments, so the log accurately states what the archive does not contain. The step is done when the log holds an entry for every export and every verification, and a reviewer can trace each file back to a run.
Questions buyers ask before exporting Freshsales data
How long does a full Freshsales export take?
The time depends on what you export, so plan from your own volumes rather than a generic figure. The main drivers are the number of contacts, accounts, deals and activities, how many custom fields each record carries, whether notes and attachments are included, and how many exports your plan allows in a day. The export runs as a job and the ZIP arrives by email, so calendar time includes waiting for delivery. Ask Freshsales to confirm the current daily export allowance, any limit on full-range exports, and typical delivery time for an account of your size. Then run a test export early and time it before you set a cutover date.
Can an admin export all Freshsales data without outside help?
For a standard export, usually yes, because the export is built into the product for users with the right permissions. Confirm that the admin role covers every record type you need, including contacts, accounts, deals, activities, notes and any custom modules. The harder work starts after the download: checking row counts, keeping relationships between records intact, and converting field formats for the target system. An admin can produce the files alone, but verification and mapping take time and benefit from a second person. If your team prefers not to carry that work, DeployOpen can scope it as a fixed-scope engagement with deliverables agreed in writing.
What does the team need to run a Freshsales data exit?
Three roles are enough for most organizations, and one person can hold more than one.
- An admin who holds export permissions, requests each export and stores the files securely
- A data owner from sales or operations who decides which records, fields and history must survive the move
- A verifier who is not the person doing the import and who checks counts and sample records against the source
The data owner's decisions drive the rest of the work, so agree on them before the first export. Record the decisions in a short document that the verifier can use as an acceptance checklist.
How should we handle a second export close to cutover?
Plan for two exports. The first is a full baseline taken early enough to test field mapping and import behavior. The second is a final export on or just before cutover, which captures changes made since the baseline. Because each export counts against your daily allowance and takes time to arrive, schedule the final one with room for a retry. Decide whether new records are frozen during the window or tracked in a log that is reconciled afterward. Label both ZIP files with their dates so the verifier knows which snapshot each import used. EspoCRM's import documentation describes how duplicate matching works, which helps when you load updated records.
What if an exported file is missing records or looks truncated?
Stop before importing anything. Compare the row count for each object type against the record count shown in Freshsales for the same filters, then check that the first and last records in the file match what you see in the product. Keep the incomplete file as evidence, note the export time and file name, and contact Freshsales support to request a fresh export. Do not patch a partial file by hand, because hand edits break the audit trail and can introduce errors that look like valid data. If the ZIP fails to extract, request a new download before assuming the source data is at fault.
What would a fixed-scope Freshsales exit engagement cover?
A fixed-scope engagement lists its deliverables in writing before work starts. For an exit from Freshsales, the scope typically covers an inventory of object types and custom fields, an export runbook with a schedule, a mapping specification to the target system, a test import into a staging environment, a verification report comparing counts and samples, a cutover runbook with a rollback path, and handover documentation for your administrators. DeployOpen does not publish a price list. The quote follows from the written scope, so ask for each deliverable to be listed separately, including who reviews the verification report and what happens if a test import fails.
Does the export include attachments, emails and automation rules?
Confirm this in writing with Freshsales before you plan around it, because a record export and a full account export are not always the same thing. Record data, activities and notes are the core of the export. Automation rules, sequences, email templates, call recordings and dashboards are often outside a plain data export, so treat them as items to document and rebuild or archive separately. In EspoCRM, workflows and business logic are configured within the application, so the rules you need will be recreated there rather than imported. List each feature your sales team relies on and mark whether it needs recreation, archiving or no action.
What to plan before the Freshsales contract renews or ends
A Freshsales export is only as complete as the window you give it. The cards below cover the dates, retention terms, legal obligations and user access that shape when and how you run the export. Confirm each point with your Freshsales account contact and against your own signed contract, not against this page.
Confirm the end date and notice period
Find the subscription end date, the renewal date and any notice period written into your order form or master agreement. Auto-renewal clauses can lock you into another term if you miss a notice deadline, so the export schedule should be built backward from the earliest date that matters. Ask your account contact to confirm in writing which date controls access to the account.
Schedule the full export early
Start the full-range export well before the subscription ends, so there is time to re-run it. Freshsales limits how many exports you can run, so a failed or incomplete file can consume a day's allowance. Plan at least one re-run and one spot check of counts against the live account before access is removed.
Confirm post-termination data handling
Ask in writing how long Freshsales keeps your records, backups and attachments after the subscription ends, and when and how they are deleted. Confirm whether you can request deletion and what evidence you will receive. Do not assume that a deletion or retention default in the product documentation applies to your contract.
Identify retained data obligations
Check whether your organization has legal holds, litigation preservation duties, or records retention rules that apply to customer correspondence, call logs or deal history. Those rules may require you to keep a complete copy outside the vendor account, with a documented retention period and owner. Have legal or records management sign off on what the export must include.
Plan user access during the transition
Decide who keeps read access after the cutover, who can run exports, and who takes ownership of records from departing sellers. Keep at least one administrator able to run the final export until it is verified. Remove seats in a planned order so that reassigned or inactive accounts do not leave records without an owner.
Record a verified export baseline
Before the account closes, store the verified export files, the list of record types included, and the counts reconciled against the live account in a controlled location. This baseline is the reference for any later migration to a self-hosted CRM and for any retention or dispute question. Name an owner and a retention period for the archive.
Why the export is only half the exit
An export file is not a migration. A Freshsales archive tells you what you had, but it does not tell the destination where each field belongs, which records already exist there, or which history is worth carrying over. The destination has to accept the data, and that work starts before you trigger the export. Before you finalize scope, list every Freshsales field that your sales team uses in reports, views, workflows and assignment rules, and decide for each one whether it maps to a standard field, a custom field you will create, or nothing at all. Fields you skip in the mapping are fields you will not see again after the subscription ends.
Duplicate handling is the decision most teams underestimate. Freshsales records for the same person or company often exist under slightly different names, email addresses or owners, and importing them without a rule creates a second copy of every account. Read the EspoCRM import documentation before you settle the export scope, because its import options determine which fields can serve as match keys and how existing records are updated or skipped. Run a test import of a small sample from your archive into a non-production EspoCRM instance, then check record counts, owner assignments and linked activities against the source. Decide in advance which activities, notes and closed deals are worth importing, since old history inflates the dataset and slows the destination without helping daily selling.
Keep the archive independent of the first destination. If your shortlist includes Twenty, the same export can feed a second trial, but field mapping, object modeling and relationship handling will differ, so repeat the mapping review rather than reusing the EspoCRM mapping. Confirm with your administrator which Freshsales export types and record ranges you can retrieve, store the files in access-controlled storage on your own infrastructure, and record which versions of each file you used for each test. Teams that treat the export as the start of the exit, not the end, usually finish with fewer gaps.
How DeployOpen scopes and delivers a Freshsales data export
DeployOpen treats the Freshsales export as a planned piece of work, not a one-click download. We agree in writing what data leaves Freshsales, where it is stored, and how it is checked before the subscription ends. The result is a documented export set that your team can review, keep, and later import into a self-hosted platform.
How we scope
- Inventory every record type in your Freshsales account, including contacts, accounts, deals, activities and custom fields, before any export runs.
- Agree the export schedule against your subscription end date, since Freshsales limits how many exports you can run per day and offers one full-range export.
- Define retention, storage location and access rules for the exported ZIP files in the written scope.
How we build
- Run the planned exports on a timetable that leaves room to repeat any file that fails or arrives incomplete.
- Check each exported file against record counts in Freshsales and log every gap or missing attachment.
- Store the export set in your own infrastructure, with checksums and a manifest that lists every file and its source.
How we hand over
- Deliver a written data map showing how each Freshsales object and field corresponds to the files you hold.
- Document the export steps, the limits encountered and the reconciliation results so an auditor or successor can follow them.
- Walk your team through the handover, including what the export does not include, such as email content and files stored outside the CRM.
How we support
- Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
- Ongoing support, upgrades and continuous testing are available as a retainer if the export feeds a later migration.
- Ask for a written quote based on your scope, since DeployOpen does not publish a price list.

