CRM migration
Field-level mapping, validation, and rollback between Upvise and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Upvise
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
13 of 13
objects map 1:1 between Upvise and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
48–72 hours
Overview
Upvise is an all-inclusive mobile CRM priced at $15–$50 per user per month, targeting small teams that need contacts, companies, jobs, and project tracking without the overhead of enterprise configuration. Dynamics 365 Sales sits at $65–$150 per user per month on Sales Professional through Premium tiers, built on Microsoft Dataverse with full Power Platform extensibility, business process flows, and Copilot AI bundled into Enterprise and above. FlitStack AI maps Upvise contacts to Dynamics 365 Contacts, Upvise companies to Accounts, and Upvise jobs to Opportunities or a custom Jobs table depending on your deal complexity. Every Upvise custom field becomes a custom column in Dynamics 365 — on Sales Enterprise we can create unlimited custom columns; on Sales Professional the 15-table limit requires us to flag any overflow before migration day. Owner and user records resolve by email match against Dynamics 365 users, with unmatched owners flagged for manual assignment before the run commits. We do not migrate Upvise configurations, form templates, or workflow logic — Upvise does not expose a workflow automation layer in its API, so there is nothing of that kind to move. Dynamics 365 Sales workflows live in Power Automate and must be designed from scratch against the migrated schema. Our sample-first run generates a field-level diff so you verify custom-field mapping, owner resolution, and job-to-Opportunity field translation before the full cutover. The migration runs against the Dynamics 365 Web API (OData v4) with scoped read access on Upvise. A 24–48 hour delta-pickup window captures any records created or modified during cutover. Audit logs document every operation; one-click rollback reverts 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
Upvise platform overview
Scorecard, SWOT, gotchas, and pricing for Upvise.
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 Upvise 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.
Upvise
Contact
Microsoft Dynamics 365 Sales
Contact
1:1Upvise Contact maps 1:1 to Dynamics 365 Contact with direct field correspondence for standard attributes. All name variants (first, last, full name), email address, phone numbers, job title, and address components carry over directly without transformation. The primary company link in Upvise — stored as a text reference — becomes the AccountId lookup in Dynamics 365, linking to the corresponding Account record after accounts are loaded. Owner assignment resolves via email match to SystemUser records.
Upvise
Company
Microsoft Dynamics 365 Sales
Account
1:1Upvise Company maps directly to Dynamics 365 Account, serving as the organizational parent entity for both contacts and opportunities. Company domain and industry fields map to Account.WebsiteURL and Account.IndustryCode respectively, with value-by-value translation where Upvise pick-list values differ from Dynamics 365 optionsets. The industry translation table accounts for Upvise's smaller industry vocabulary by mapping to the nearest matching Dynamics optionset entry, ensuring consistent reporting across the migrated dataset.
Upvise
Job
Microsoft Dynamics 365 Sales
Opportunity
1:1Upvise Job functions as the deal and proposal record, mapping to Dynamics 365 Opportunity through a set of named transformations. Job.name maps to Opportunity.Name, Job.amount becomes Opportunity.EstimatedValue, Job.status translates to Opportunity.StateCode and StatusCode combinations, and Job.customer maps to Opportunity.CustomerId as an Account lookup. Close dates transfer directly as Opportunity.CloseDate. Any custom pipeline-stage field on the Upvise Job maps to Opportunity StageCode with probability and forecast category values re-applied from the Dynamics 365 side.
Upvise
Job Item / Line Item
Microsoft Dynamics 365 Sales
Opportunity Product
1:1Each line item attached to an Upvise Job — whether representing products quoted or services rendered — maps to a distinct Opportunity Product record linked to the parent migrated Opportunity. Unit price and quantity fields transfer directly to their corresponding Opportunity Product attributes. If Upvise stores bundled or package pricing as a single line item, the migration flattens these into individual Opportunity Product rows so each product appears separately on the Opportunity in Dynamics 365.
Upvise
Note
Microsoft Dynamics 365 Sales
Annotation
1:1Upvise Notes map directly to Dynamics 365 Annotations within the Note/Annotation entity, preserving the original created-on timestamp, full note text content, and owner assignment from the source record. If Upvise notes contain file attachments, those files re-upload as NoteAttachment records linked to the corresponding Annotation, maintaining the attachment-to-note relationship from the original Upvise structure. The original author information is retained in the Annotation.OwnerId field.
Upvise
Form
Microsoft Dynamics 365 Sales
Custom Table (FormSubmission)
1:1Upvise Form responses have no direct Dynamics 365 equivalent. We create a custom Dataverse table named FormSubmission with columns derived from each Form field definition, using the new_ prefix convention for custom attributes. Form metadata including the form name, submission date, and submitting contact reference map to custom columns on the new table. The FormSubmission table links to Contact via a new_contactid lookup so submissions can be associated with the respondent's CRM record.
Upvise
Custom Fields (Contact)
Microsoft Dynamics 365 Sales
Custom Columns on Contact
1:1Upvise custom fields defined on the Contact module become custom columns on the Dynamics 365 Contact table using the new_ column prefix. On Sales Enterprise these custom columns are created without restriction against the Dataverse Contact table. On Sales Professional the migration first checks the destination org's total custom-table count against the 15-table limit to ensure the migration will not exceed licensing constraints before proceeding.
Upvise
Custom Fields (Company)
Microsoft Dynamics 365 Sales
Custom Columns on Account
1:1Upvise custom fields on the Company module map to custom columns on the Dynamics 365 Account table using the new_ naming convention. Before creating these columns, we validate that the destination organization's custom table count permits direct column addition without exceeding the Sales Professional 15-table cap. If the destination is on Sales Professional and the cap is at risk, we flag the overflow in the pre-migration plan for resolution before the migration run executes.
Upvise
Custom Fields (Job)
Microsoft Dynamics 365 Sales
Custom Columns on Opportunity
1:1Upvise Job custom fields map to custom columns on the Dynamics 365 Opportunity table. Dynamics 365 permits unlimited custom columns on standard entities like Opportunity regardless of whether the environment runs Sales Professional or Sales Enterprise — this applies to columns on standard entities only, not custom tables. Therefore this particular custom field mapping is always viable without pre-migration capacity planning or table-cap concerns.
Upvise
User / Owner
Microsoft Dynamics 365 Sales
SystemUser
1:1Upvise users assigned as job owners or contact owners resolve by email match against Dynamics 365 SystemUser records. The migration extracts all Upvise owner email addresses, queries the Dynamics 365 environment for matching SystemUser records, and maps matched users directly. Unmatched owners are flagged with record counts in the pre-migration User Resolution Report — you either provision a Dynamics 365 license and account for each unmatched user or reassign their records to a fallback owner before the run commits.
Upvise
Attachments / Files
Microsoft Dynamics 365 Sales
SharePoint / NoteAttachment
1:1Upvise file attachments on contacts, companies, or jobs re-upload to Dynamics 365 through a conditional routing mechanism. If the Dynamics 365 environment has SharePoint integration enabled and server-based SharePoint authentication configured, files route to SharePoint document libraries with a folder hierarchy mirroring the Upvise record structure. If SharePoint integration is not configured at migration time, files attach directly to the Note record instead — fully functional but stored within Dynamics rather than in SharePoint document management.
Upvise
Project
Microsoft Dynamics 365 Sales
Custom Table (Project)
1:1Upvise Projects have no standard equivalent in Dynamics 365 Sales, so we create a custom Dataverse Project table with columns representing project name, status, start and end dates, and linked Contact and Account lookups. The Project table also includes a custom lookup field pointing to the related Opportunity so project records maintain context with the deals they support. This custom table operates like any standard Dataverse table and can be extended with additional columns or included in Power Apps and Power BI reports.
Upvise
NA (no equivalent)
Microsoft Dynamics 365 Sales
Business Process Flow
1:1Dynamics 365 Business Process Flows encode stage gates and process steps for Opportunities, guiding sales reps through defined pipeline stages with required fields and visual progression. No equivalent Upvise feature exists to migrate since Upvise does not expose workflow or process automation data through its API. We provide a BPF design template populated with stage names derived from your Upvise job-status values, allowing your Dynamics 365 administrator to configure stage progression, probability mapping, and required field gates in the BPF designer after the data lands.
| Upvise | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Contact | Contact1:1 | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Job | Opportunity1:1 | Fully supported | |
| Job Item / Line Item | Opportunity Product1:1 | Fully supported | |
| Note | Annotation1:1 | Fully supported | |
| Form | Custom Table (FormSubmission)1:1 | Fully supported | |
| Custom Fields (Contact) | Custom Columns on Contact1:1 | Fully supported | |
| Custom Fields (Company) | Custom Columns on Account1:1 | Fully supported | |
| Custom Fields (Job) | Custom Columns on Opportunity1:1 | Fully supported | |
| User / Owner | SystemUser1:1 | Fully supported | |
| Attachments / Files | SharePoint / NoteAttachment1:1 | Fully supported | |
| Project | Custom Table (Project)1:1 | Fully supported | |
| NA (no equivalent) | Business Process Flow1: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.
Upvise gotchas
No public API means migration relies on manual export
Custom field types may not map directly to destination schemas
Form scripting logic does not transfer to non-Upvise destinations
User seat count is migration-scope critical
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
Scope and schema audit
FlitStack connects to Upvise via scoped read-only API access and inventories all contacts, companies, jobs, job items, forms, custom fields, and attachments. We simultaneously query the target Dynamics 365 Sales environment via the Web API to capture the current custom-table count, existing security roles, and SharePoint status. The output is a Schema Readiness Report identifying the Dynamics 365 edition (Professional vs Enterprise), any custom-table cap risks, owner-resolution gaps, and a preliminary field-level mapping plan. This step typically takes 1–2 business days.
Owner and user resolution
We extract all Upvise users who own records and cross-reference their email addresses against Dynamics 365 SystemUser records. A User Resolution Report lists matched users, unmatched users, and the count of records each unmatched user owns. You either provision a Dynamics 365 license and account for each unmatched user before migration day or designate a fallback owner. No record migrates without a confirmed Dynamics 365 owner — this prevents orphaned records that would be invisible to your team post-go-live.
Sample migration with field-level diff
A representative slice of 100–500 records — typically 50 contacts, 25 companies, 30 jobs, and a sampling of custom fields and attachments — migrates first against the live Dynamics 365 target. We generate a field-level diff report showing every mapped field, its Upvise source value, and the Dynamics 365 destination value. You review the diff to confirm custom-field data types, pick-list value mappings, and job-to-Opportunity field translation. The sample run must pass your sign-off before the full cutover is scheduled.
Full data migration and delta-pickup window
The full migration runs in a sequenced load: Accounts first, then Contacts, then Opportunities, then Opportunity Products, then Notes and Attachments, then Form Submissions. Custom columns and tables are created in Dynamics 365 during or before this step. A 24–48 hour delta-pickup window opens simultaneously — any Upvise records created or modified during the migration window are captured and merged before final reconciliation. The audit log records every insert, update, and skip so you have a full chain of custody for the migrated data.
Post-migration validation and reconciliation
FlitStack runs automated reconciliation checks comparing record counts and field sums between Upvise and Dynamics 365. We validate that all Contacts have an AccountId, all Opportunities have a CustomerId, all activity records are linked to at least one party record, and owner resolution hit the agreed threshold. You receive a Validation Summary Report listing any discrepancies, the root cause of each, and a recommended fix. If reconciliation fails a critical threshold, one-click rollback reverts all operations so you can investigate and re-run.
Post-migration handoff and rebuild reference
We deliver a Rebuild Reference Pack containing exported Upvise workflow definitions (where applicable), form template JSON, and a field-mapping manifest in spreadsheet form for your Dynamics 365 admin to use when configuring Power Automate flows, Business Process Flows, and Power Apps. This pack does not include working Dynamics 365 workflows — those must be designed fresh against the migrated schema — but it provides the Upvise logic that needs to be replicated so nothing falls through the gaps during the transition.
Platform deep dives
Upvise
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. 1 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 Upvise and Microsoft Dynamics 365 Sales .
Object compatibility
1 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
Upvise: Not publicly documented.
Data volume sensitivity
Upvise 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 Upvise to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Upvise 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 Upvise
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.