CRM migration
Field-level mapping, validation, and rollback between CASH and Freshsales. We move data and schema; workflows are rebuilt natively in Freshsales.
CASH
Source
Freshsales
Destination
Compatibility
12 of 12
objects map 1:1 between CASH and Freshsales.
Complexity
CModerate
Timeline
48–72 hours
Overview
FlitStack AI migrates CASH CRM records to Freshsales using the CASH API export and Freshsales REST/Bulk API import. The migration carries all standard objects — contacts, companies, deals, pipelines, activities, and notes — plus any CASH custom fields into Freshsales custom fields with type-aware mapping. Freshsales organizes deals in pipelines with stage values that are scoped per pipeline; CASH deal stages map to Freshsales pipeline stage values using value mapping. Activities (calls, emails, meetings) attach to the parent contact, account, or deal record in Freshsales with original timestamps and owners preserved. Workflows, automations, and email templates do not transfer — FlitStack exports CASH workflow definitions as JSON for your Freshsales admin to rebuild in Freshsales' workflow designer. The mechanism uses scoped read access to CASH, field transformation, and a staged Freshsales import with a delta-pickup window for in-flight records during cutover. During the pre‑migration phase, FlitStack validates all required Freshsales fields, creates custom field definitions via the Freshsales API, and builds pipeline and stage structures before loading any records. A sample diff of 100–500 representative records is generated for review, confirming correct field values, owner assignments, and lifecycle stage mapping. After approval, the full dataset loads in object sequence—Accounts, Contacts, Leads, Deals, Activities, Notes, and Files—while a delta‑pickup window captures any new or updated entries in CASH during the cutover. All operations are logged, and a one‑click rollback reverts Freshsales to its pre‑migration state if reconciliation detects discrepancies.
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 CASH 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.
CASH
Contact
Freshsales
Contact
1:1CASH contact records map directly to Freshsales Contact objects. Email address is the primary identifier used for deduplication. Freshsales requires that the parent Account be created first when the contact has an associated company — we migrate accounts before contacts to resolve the foreign key.
CASH
Lead
Freshsales
Lead
1:1CASH leads migrate as Freshsales Lead records. Freshsales maintains separate Lead and Contact objects; leads that convert during the CASH usage period retain their lead status in Freshsales as historical records unless a lead-to-contact conversion event is present in the source data.
CASH
Company
Freshsales
Account
1:1CASH company records map directly to Freshsales Account objects. Company name, domain, industry, employee count, and annual revenue transfer as Account fields. Parent-company hierarchies in CASH map to Freshsales Parent Account relationships; we resolve circular references before committing the import.
CASH
Deal
Freshsales
Deal
1:1CASH deal records map to Freshsales Deal objects with deal name, amount, expected close date, and owner preserved. Freshsales Deal requires a pipeline assignment; we set the pipeline ID during migration based on the CASH pipeline identifier. Deal probability maps from CASH stage probabilities to Freshsales stage probabilities per pipeline.
CASH
Pipeline
Freshsales
Pipeline
1:1CASH pipelines map to Freshsales Pipelines. On Freshsales Growth, only one pipeline is permitted per account — multi-pipeline CASH setups require either merging into one pipeline or upgrading to Freshsales Pro or Enterprise before migration. Stage names and order transfer as Freshsales stage values within each pipeline.
CASH
Stage
Freshsales
Stage
1:1CASH stage names and their display order map to Freshsales Stage values on the corresponding pipeline. Each CASH stage probability becomes the Freshsales stage probability value. If CASH uses custom stage names not present in Freshsales' default stage list, we create custom stage values via the Freshsales pipeline API before loading deal records.
CASH
Activity (Call, Email, Meeting)
Freshsales
Sales Activity
1:1CASH call, email, and meeting records migrate as Freshsales Sales Activities linked to the parent Contact or Deal record. Original subject line, owner, start/end time, and duration are preserved. Freshsales Sales Activities appear in the contact and deal timeline views.
CASH
Note
Freshsales
Note
1:1CASH notes migrate as Freshsales Note records attached to the Contact, Account, or Deal. Note body text and any rich-text formatting transfers as-is. If CASH stores notes in a separate attachments table, we link them to the parent object by record ID matching during the import sequence.
CASH
User
Freshsales
User
1:1CASH users map to Freshsales users by email address match. Unmatched owners receive a fallback assignment to a designated Freshsales admin user and are flagged in the migration report for manual reassignment. Freshsales user roles and profiles must be configured separately post-migration.
CASH
Custom Field
Freshsales
Custom Field
1:1CASH custom fields on any object become Freshsales Custom Fields on the corresponding module. Freshsales requires custom fields to be created via the API before data loads — we create field definitions first (with correct data types: text, number, picklist, date, checkbox), then load values. Picklist custom fields use value mapping where CASH picklist values differ from Freshsales defaults.
CASH
Workflow Definition
Freshsales
Workflow (Freshsales)
1:1CASH workflow definitions do not transfer to Freshsales. FlitStack exports workflow rules as JSON for each CASH workflow trigger/action chain. Your Freshsales admin rebuilds these in Freshsales' Workflow Designer (basic on Growth; advanced on Pro/Enterprise). We also document which workflows reference deleted records or inactive users for cleanup.
CASH
Attachment / File
Freshsales
File
1:1CASH file attachments on contacts, companies, or deals migrate to Freshsales Files attached to the corresponding record. Files over 25MB cannot be imported via Freshsales API and are flagged for manual re-upload. We preserve the original file name and download URL from CASH for reference.
| CASH | Freshsales | Compatibility | |
|---|---|---|---|
| Contact | Contact1:1 | Fully supported | |
| Lead | Lead1:1 | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Deal | Deal1:1 | Fully supported | |
| Pipeline | Pipeline1:1 | Fully supported | |
| Stage | Stage1:1 | Fully supported | |
| Activity (Call, Email, Meeting) | Sales Activity1:1 | Fully supported | |
| Note | Note1:1 | Fully supported | |
| User | User1:1 | Fully supported | |
| Custom Field | Custom Field1:1 | Fully supported | |
| Workflow Definition | Workflow (Freshsales)1:1 | Fully supported | |
| Attachment / File | File1: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.
CASH gotchas
Cash App is a payment app, not a CRM — schema mismatch on import
Spend caps on the Cash App for Business account
Unverified business accounts have a $250/day receive limit
No published rate limit on Square Connect API used for Cash App Pay
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
Extract and validate CASH data export
FlitStack connects to CASH via API using scoped read access and exports all records from each object in sequence: accounts first, then contacts and leads, then deals and pipeline stages, then activities and notes, and finally custom field definitions. We validate field types, check for null values in required Freshsales fields, and flag any CASH custom fields that use data types not supported natively in Freshsales. The output is a structured JSON dataset ready for Freshsales field mapping.
Create Freshsales schema and custom fields
Before any data loads, FlitStack calls the Freshsales API to create all required custom fields discovered in the CASH export. This includes custom fields on Contact, Account, Deal, and any custom modules. For each custom field, we set the correct type (text, number, picklist, date, checkbox), populate picklist values using CASH picklist values as the source, and capture the Freshsales field ID returned by the API. We also create the Freshsales pipeline(s) and stage definitions using the pipeline API before loading any deal records.
Match CASH users to Freshsales users by email
FlitStack fetches the Freshsales user list and matches each CASH owner ID to a Freshsales user by email address. Unmatched owners are flagged in the owner resolution report and assigned to a fallback Freshsales user (typically an admin). Deal and contact records for which no owner match exists receive the fallback assignment. The resolution report is delivered before the migration run so your admin can create missing Freshsales users or adjust assignments.
Run sample migration with field-level diff
A representative slice of CASH data — typically 100–500 records spanning contacts, accounts, deals, and a selection of activities — is migrated to Freshsales first. FlitStack generates a field-level diff comparing the source CASH values against the Freshsales field values for every mapped field. You review the diff to confirm that lifecycle stages, deal amounts, stage names, and owner assignments are correct before the full migration commits.
Execute full migration with delta-pickup window
After sample approval, the full CASH dataset loads into Freshsales in the object sequence: Accounts → Contacts → Leads → Deals → Activities → Notes → Files. A delta-pickup window of 24–48 hours runs in parallel, capturing any records created or modified in CASH during the cutover. All operations are logged in the FlitStack audit log. One-click rollback reverts Freshsales to its pre-migration state if reconciliation fails. We deliver a final reconciliation report comparing record counts and field values between CASH and Freshsales.
Platform deep dives
CASH
Source
Strengths
Weaknesses
Freshsales
Destination
Strengths
Weaknesses
Complexity grading
Moderate CRM migration. 5 of 8 objects need a manual workaround.
Overall complexity
Moderate migration
Derived from compatibility, mapping clarity, API constraints, and data volume across CASH and Freshsales.
Object compatibility
5 of 8 objects need a manual workaround.
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
CASH: Square does not publish fixed rate limits — APIs return rate-limit error codes; exponential backoff is required.
Data volume sensitivity
CASH exposes a bulk API — large-volume migrations stream efficiently.
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 CASH to Freshsales migration scoping. Not seeing yours? Book a call.
Walk through your CASH 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 CASH
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.