CRM migration
Field-level mapping, validation, and rollback between CASH and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
CASH
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
10 of 10
objects map 1:1 between CASH and Microsoft Dynamics 365 Sales .
Complexity
CModerate
Timeline
2–5 days
Overview
CASH stores contacts, companies, deals, and activities in a flat object model with minimal relationship enforcement. Dynamics 365 Sales uses Microsoft Dataverse tables with enforced foreign keys, security roles, and business rules that CASH does not impose. The migration must therefore sequence Accounts before Contacts (via AccountId lookup), then Opportunities before Activity pointers. CASH records without timezone data require UTC normalization since Dynamics 365 stores all datetime values as UTC. Owner resolution happens by email match against Azure Active Directory-synced Dynamics users, with unmatched owners flagged before commit. Workflows, sequences, and automation rules do not transfer — those must be rebuilt in Dynamics 365 Sales using Power Automate or Power Apps. FlitStack AI extracts CASH data via its export API, transforms each record to match Dynamics 365 column types and pick-list values, creates custom fields in the target environment when no native equivalent exists, and loads via the Dataverse Web API with batched requests to observe Power Platform request limits. A delta-pickup window (24–48 hours) captures in-flight changes during cutover, and one-click rollback reverts the environment if reconciliation fails.
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.
Source platform
CASH platform overview
Scorecard, SWOT, gotchas, and pricing for CASH.
Destination platform
Microsoft Dynamics 365 Sales platform overview
Scorecard, SWOT, gotchas, and pricing for Microsoft Dynamics 365 Sales .
Data migration guide
The complete Microsoft Dynamics 365 Sales migration guide
Data model, import mechanisms, field mapping strategy, pitfalls, and cutover — by the engineers running it.
Destination checklist
Microsoft Dynamics 365 Sales migration checklist
Pre- and post-cutover tasks for moving onto Microsoft Dynamics 365 Sales .
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 Microsoft Dynamics 365 Sales , including any object-level transformations, lookup resolution, or schema-design dependencies.
Typical mapping — final map is confirmed during the sample migration step.
CASH
Contact
Microsoft Dynamics 365 Sales
Contact
1:1Direct map to the Dataverse Contact table. Dynamics requires AccountId (a lookup to Account) for contacts associated with a company — contacts without a company in CASH land with AccountId blank. We preserve a Source_System_ID__c custom field for traceability and delta-run de-duplication.
CASH
Company
Microsoft Dynamics 365 Sales
Account
1:1Direct map to the Dataverse Account table. CASH company hierarchies (parent/child) map to Account.ParentAccountId; the parent Account must be migrated before child Accounts to satisfy the lookup. Multi-company associations on a CASH contact collapse to one primary AccountId; secondary companies are stored as Account Contact Relationships in Dynamics. All migrated accounts retain a Source_System_ID__c reference for traceability and delta-run matching.
CASH
Deal
Microsoft Dynamics 365 Sales
Opportunity
1:1Direct map to the Dataverse Opportunity table. CASH deal fields map to Opportunity columns. The Opportunity.AccountId lookup must resolve to a migrated Account record — deals referencing unmapped companies are flagged before migration commits. CASH deal priority values require a custom pick-list field in Dynamics unless the values match an existing stage probability configuration.
CASH
Pipeline / Stage
Microsoft Dynamics 365 Sales
Opportunity.SalesProcess + Stage
1:1CASH pipelines become Dynamics 365 Sales Processes tied to Business Process Flows. Each CASH pipeline stage name maps to a corresponding stage value in the Opportunity.StageCode pick-list. Stage probability and forecast category re-applied from Dynamics defaults unless custom stage mapping is provided.
CASH
User / Owner
Microsoft Dynamics 365 Sales
SystemUser
1:1Owner resolution matches CASH user email addresses against Azure Active Directory-synced Dynamics 365 users. Unmatched owners are flagged with their CASH email before migration runs — teams either provision the user in Dynamics first or assign records to a designated fallback owner. Owner history is preserved as Opportunity.OwnerId post-resolution.
CASH
Activity (Call, Email, Meeting, Note)
Microsoft Dynamics 365 Sales
Task / Email / Appointment / Annotation
1:1CASH call logs map to Task records with Type='Phone Call'; emails map to Email; meetings map to Appointment. Notes map to Annotation. All original timestamps and owner assignments preserved. Parent record links (regardingobjectid) point to the migrated Contact, Account, or Opportunity record.
CASH
Attachment / File
Microsoft Dynamics 365 Sales
SharePoint / OneDrive for Business
1:1CASH file attachments re-upload to SharePoint document libraries associated with the target Account, Contact, or Opportunity. Dynamics 365 file size limits (default 25MB per file) apply; files exceeding the limit are flagged for manual chunking or compression before migration. Inline images in CASH notes are downloaded and rehosted on SharePoint.
CASH
Custom Object
Microsoft Dynamics 365 Sales
Custom Table (Dataverse)
1:1CASH custom objects map 1:1 to Dataverse custom tables when CASH exposes them via API. Custom table schema (columns, data types, relationships) must be inspected in CASH before migration — we deliver a schema audit as part of the discovery phase. N:N relationships in CASH require Dataverse many-to-many relationship tables.
CASH
Currency / Amount
Microsoft Dynamics 365 Sales
Money (decimal) field
1:1CASH amounts stored as integers in cents require division by 100 before loading into Dynamics money fields. Decimal amounts pass through directly. We validate scale and precision against Dynamics field metadata to prevent truncation. Multi-currency records require CurrencyId assignment to the appropriate Dynamics transactioncurrency record.
CASH
CASH ID / Record created timestamp
Microsoft Dynamics 365 Sales
Source_System_ID__c / Original_Create_Date__c (custom fields)
1:1Dynamics CreatedOn and ModifiedOn are set at migration time by the platform. Original CASH record IDs and create dates are preserved as custom fields on each record so historical reporting continuity is maintained and delta runs can de-duplicate by source ID.
| CASH | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Contact | Contact1:1 | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Pipeline / Stage | Opportunity.SalesProcess + Stage1:1 | Fully supported | |
| User / Owner | SystemUser1:1 | Fully supported | |
| Activity (Call, Email, Meeting, Note) | Task / Email / Appointment / Annotation1:1 | Fully supported | |
| Attachment / File | SharePoint / OneDrive for Business1:1 | Fully supported | |
| Custom Object | Custom Table (Dataverse)1:1 | Fully supported | |
| Currency / Amount | Money (decimal) field1:1 | Fully supported | |
| CASH ID / Record created timestamp | Source_System_ID__c / Original_Create_Date__c (custom fields)1: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
Microsoft Dynamics 365 Sales gotchas
Professional tier 15-table custom table limit blocks migrations
October 2024 pricing increase applies at renewal for all customers
Custom fields must be created in the UI before API writes
Power Platform request limits apply to bulk migrations
Activity records orphaned to inactive owners fail silently
Pair-specific challenges
Migration approach
Audit CASH API and data export capability
FlitStack AI tests CASH API endpoint availability, authentication requirements, and rate limits. If no API exists, we request sample CSV exports and assess relationship data availability. We map CASH objects to Dynamics 365 Dataverse tables, identify missing relationships (contact-company links, opportunity-contact roles), and produce a migration feasibility report. This step determines whether the migration proceeds as API-driven, CSV-hybrid, or requires manual data reconstruction for specific object types.
Create Dynamics 365 custom fields and configure pick-list values
Before any data moves, FlitStack AI provisions custom fields in Dynamics 365 for source system IDs, original create dates, and custom pick-list values from CASH that have no native Dynamics equivalent. We also add non-matching industry codes, CASH priority values, and currency codes to their respective Dynamics pick-lists. This step requires a Dynamics admin to publish the changes — we deliver a field creation checklist so the schema is ready before the migration pipeline begins validation.
Migrate Accounts first, then Contacts, then Opportunities
Dynamics 365 enforces the Account-Contact-Opportunity relationship hierarchy. We sequence the migration to migrate Account records first (all fields including ParentAccountId resolution), then contacts with AccountId lookups resolved against migrated accounts, then opportunities with AccountId and owner resolution complete. Activities and notes attach to their parent records in the final phase. This ordering prevents foreign-key violations and ensures opportunity reports reflect the correct account context immediately after migration.
Run sample migration with field-level validation
A representative slice of records (typically 200–500 per object type) migrates first. FlitStack AI generates a field-level diff between CASH source values and Dynamics 365 target fields, highlighting mismatches in pick-list values, datetime normalization, decimal scaling, and owner resolution. The diff is reviewed with the client before the full migration run commits. This step catches currency-scaling errors, timezone normalization gaps, and account-contact relationship gaps before they affect all records.
Execute full migration with delta-pickup and audit logging
The full CASH dataset migrates to Dynamics 365 Sales via the Dataverse Web API with batched requests observing Power Platform request limits. FlitStack AI maintains an audit log of every record operation (create, update, associate) with source system ID cross-reference. A delta-pickup window (24–48 hours) runs after the initial cutover to capture records modified in CASH during migration execution. One-click rollback reverts all Dynamics changes if reconciliation fails. Final reconciliation confirms record counts, relationship integrity, and attachment presence before sign-off.
Platform deep dives
CASH
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
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 Microsoft Dynamics 365 Sales .
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 Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your CASH to Microsoft Dynamics 365 Sales 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 Microsoft Dynamics 365 Sales
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.