CRM migration
Field-level mapping, validation, and rollback between InStream and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
InStream
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
4 of 8
objects map 1:1 between InStream and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from InStream to Microsoft Microsoft Dynamics 365 Sales is a structural migration that trades InStream's lightweight simplicity for Microsoft Dynamics 365 Sales ' enterprise depth. InStream organizes data around a unified Contact with social profile enrichment, simple Kanban pipelines, and Lists for segmentation. Microsoft Dynamics 365 Sales uses the Lead-Contact-Account model on Dataverse, with structured sales processes, Opportunity stages with probabilities, and native integration across the Microsoft 365 ecosystem. We extract InStream contact records with their social profile URLs, map Companies to Accounts, convert Deals to Opportunities with stage names preserved, migrate Lists as tags or segments, and move available Activity history to Tasks and Events via the Dataverse API. InStream's social enrichment is linked to external APIs at import time and does not store as independent fields; we transfer the URL references as text fields. Workflows, automations, and integration configurations do not migrate; we deliver a written inventory of these for the customer to rebuild in Dynamics 365 or Power Automate.
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
InStream platform overview
Scorecard, SWOT, gotchas, and pricing for InStream.
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 InStream 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.
InStream
Contact
Microsoft Dynamics 365 Sales
Lead or Contact (split by qualification)
1:manyInStream does not have an explicit Lead object; all contacts live in a single Contact object regardless of qualification stage. We classify each Contact as a Salesforce Lead or Contact at migration time based on the contact's InStream pipeline engagement: Contacts with no associated Deals and early-stage profiles map to Dynamics 365 Lead; Contacts with an active Deal or advanced pipeline stage map to Dynamics 365 Contact linked to an Account. We preserve the original InStream contact ID in a custom field instream_contact_id__c for audit and reconciliation.
InStream
Company
Microsoft Dynamics 365 Sales
Account
1:1InStream Company records map directly to Microsoft Microsoft Dynamics 365 Sales Account. The Company domain field maps to Account Website. Account is created before any Contact import so the AccountId lookup is resolved at the moment of Contact insert. We flag any Company without an associated Contact for manual review during reconciliation.
InStream
Deal
Microsoft Dynamics 365 Sales
Opportunity
1:1InStream Deals map to Microsoft Dynamics 365 Sales Opportunity. The Deal value maps to Opportunity Amount, close date maps to CloseDate, and the Deal name maps to Opportunity Name. We resolve the parent Account reference at migration time using the InStream Company linkage. Any Deal without a linked Company is attached to a default Account or held in the reconciliation queue.
InStream
Pipeline Stage
Microsoft Dynamics 365 Sales
Opportunity Stage
lossyInStream pipeline stages use free-text names with no enforced taxonomy. We capture the full stage name and order during discovery, then configure matching Opportunity Stage values in Microsoft Dynamics 365 Sales before migration. Each stage gets a probability percentage derived from the InStream deal distribution data. If the customer uses multiple InStream pipelines, we map each to a separate Dynamics 365 Record Type and Sales Process.
InStream
List
Microsoft Dynamics 365 Sales
Tag or Security Group
lossyInStream Lists segment contacts for targeted outreach. We migrate List membership as tags on the corresponding Lead or Contact record. For larger lists used for campaign segmentation, we create a custom multi-select picklist field or tag-based custom entity in Microsoft Dynamics 365 Sales and map each list to a named value. The customer selects the preferred tagging strategy during scoping.
InStream
Activity: Email, Call, Meeting, Note
Microsoft Dynamics 365 Sales
Task and Event
1:1InStream engagements (calls, emails, meetings, notes) attached to Contacts migrate to Microsoft Dynamics 365 Sales Task and Event records. Call engagements map to Task with TaskSubtype=Call and duration preserved. Meetings map to Event with start and end timestamps. Notes migrate as Note records linked via ContentDocumentLink to the parent Contact or Account. ActivityDate is set to the original InStream timestamp to preserve timeline ordering.
InStream
Tag
Microsoft Dynamics 365 Sales
Text Field or Topic
lossyInStream tags migrate as text values in a custom field instream_tags__c on the Lead or Contact record. If the tag count per record is high, we create a multi-select picklist in Microsoft Dynamics 365 Sales during schema design. Tags used for campaign classification are documented as a Topic mapping with TopicAssignment records as a secondary option.
InStream
Custom Field
Microsoft Dynamics 365 Sales
Custom Field
1:1InStream custom fields exist but their schema is not publicly documented via API. We extract available field definitions from the InStream UI export during discovery, cross-reference them against the Microsoft Dynamics 365 Sales schema, and flag any unmapped fields for manual review before cutover. We pre-create destination custom fields in Dataverse during the schema design phase with type mapping (text to text, number to number, date to datetime) before any data loads begin.
| InStream | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Contact | Lead or Contact (split by qualification)1:many | Fully supported | |
| Company | Account1:1 | Fully supported | |
| Deal | Opportunity1:1 | Fully supported | |
| Pipeline Stage | Opportunity Stagelossy | Fully supported | |
| List | Tag or Security Grouplossy | Fully supported | |
| Activity: Email, Call, Meeting, Note | Task and Event1:1 | Fully supported | |
| Tag | Text Field or Topiclossy | Fully supported | |
| Custom Field | Custom Field1: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.
InStream gotchas
Free plan 100-contact cap applies to total contacts, not just active ones
Social profile enrichment does not migrate as raw data
Pipeline stage names are free-text and not normalized
Custom fields schema is not publicly documented
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
Discovery and data audit
We audit the source InStream account for contact volume, company count, deal count, pipeline stage names, active lists, custom fields visible in the UI export, and engagement history. We extract a full contact CSV from InStream to capture all static field values, including any manually entered social profile URLs. We assess data quality (duplicates, missing email addresses, stale records) and produce a written discovery report that documents the pipeline stage mapping, the lead-versus-contact classification rule, and any unmapped custom fields requiring manual schema design in Microsoft Dynamics 365 Sales .
Schema design in Microsoft Dynamics 365 Sales
We design the destination schema in the customer's Microsoft Dynamics 365 Sales environment. This includes configuring Opportunity stage values and probabilities mapped from InStream pipeline stages, provisioning custom fields (instream_contact_id__c, instream_tags__c, social profile URL fields) on Lead, Contact, Account, and Opportunity objects, and creating Record Types if multiple InStream pipelines are in use. Schema is deployed into a Sandbox org first for validation. We confirm with the customer which Microsoft Dynamics 365 Sales edition (Professional at $65/user or Enterprise at $105/user) is active and whether Dataverse custom entities are available.
Sandbox migration and reconciliation
We run a full migration into a Microsoft Dynamics 365 Sales Sandbox using a representative data snapshot. The customer reconciles record counts (Contacts in, Leads in, Accounts in, Opportunities in, Activities in), spot-checks 20-30 random records against the InStream source, and signs off the mapping before production migration begins. Any stage mapping corrections, custom field additions, or classification rule adjustments happen at this stage. Sandbox validation typically takes three to five business days.
Data cleansing and preparation
We de-duplicate contact records using email address as the primary key, validate required fields (email, name) against Microsoft Dynamics 365 Sales validation rules, and clean formatting issues (phone number formats, special characters in company names). Records failing validation are logged to a remediation sheet for the customer to correct before the production migration window. We also archive InStream contacts with no email address and no associated Deals, as Microsoft Dynamics 365 Sales requires an email or name to create a valid Lead or Contact.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from InStream Companies), Leads and Contacts (with the qualification-based split applied), Opportunities (with AccountId and stage resolved), Activity history (Tasks, Events, Notes via Dataverse API with chunking and exponential backoff), and Tags (as text values on Lead and Contact). Each phase emits a row-count reconciliation report. We freeze InStream writes during the production migration window and run a final delta pass to capture any records modified during the window before cutover.
Cutover, validation, and workflow rebuild handoff
We enable Microsoft Dynamics 365 Sales as the system of record after the final delta pass. We deliver the InStream automation and integration inventory document to the customer's admin team, listing every InStream List, tag strategy, and any workflow logic the customer built externally that fed data into InStream. We support a three-day hypercare window for reconciliation issues. We do not rebuild automations in Power Automate as part of standard migration scope; that work is documented for the customer's admin or a separate Dynamics 365 partner engagement.
Platform deep dives
InStream
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 InStream 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
InStream: Not publicly documented..
Data volume sensitivity
InStream 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 InStream to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your InStream 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 InStream
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.