CRM migration
Field-level mapping, validation, and rollback between Streak and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Streak
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
9 of 12
objects map 1:1 between Streak and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Streak to Microsoft Dynamics 365 Sales is a structural migration, not a record copy. Streak models every CRM record as a Box attached to a Gmail conversation thread; Microsoft Dynamics 365 uses Accounts, Contacts, Leads, and Opportunities as separate objects with their own relationship graph. We extract Box metadata, stage history, owner assignments, and custom properties, then restructure them into the Dynamics 365 data model during a transform step before load. Thread associations from Gmail are preserved as structured metadata on the Opportunity rather than as emails (Streak emails remain in Gmail). Tags, snippets, and mail merge campaign data migrate as static records or enrichment notes. We do not migrate Streak automations or workflow rules; the destination has no equivalent to Streak's inline automation model, and we document every automation requiring a Power Automate rebuild in the handoff package.
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
Streak platform overview
Scorecard, SWOT, gotchas, and pricing for Streak.
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 Streak 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.
Streak
Box
Microsoft Dynamics 365 Sales
Opportunity
1:1Streak Boxes map to Dynamics 365 Opportunities. Each Box's stage becomes an Opportunity Stage value mapped through a Sales Process we configure per pipeline. Box name migrates to Opportunity Name; Box monetary value maps to Amount; owner maps via email match to a Dynamics 365 User record. We preserve the original Box ID in a custom field streak_box_id__c for audit and reconciliation. Box associations to Contacts map to OpportunityContactRole records.
Streak
Box
Microsoft Dynamics 365 Sales
Account
1:1Streak Boxes that reference a company generate or update a Dynamics 365 Account record. The Box's company name maps to Account Name, and any domain or website data becomes the Account Website field. Account is created before the parent Opportunity so that the AccountId lookup is satisfied at Opportunity insert time.
Streak
Pipeline
Microsoft Dynamics 365 Sales
Record Type + Sales Process
lossyEach Streak Pipeline becomes a Dynamics 365 Record Type on Opportunity with a corresponding Sales Process that whitelists the relevant Stage values. If Streak pipelines share stage names (e.g., 'Negotiation' appears in multiple Pipelines), we scope them via Record Type so that the stage picklist is pipeline-specific at the UI level.
Streak
Stage
Microsoft Dynamics 365 Sales
Opportunity Stage
lossyStreak Stage names and ordering map to Dynamics 365 Stage values with corresponding probability percentages. We extract the stage probability from Streak if set, or assign by the customer's stage-position matrix. Stage names are preserved exactly; Dynamics 365 allows custom stage names at all tiers unlike Streak where advanced stage configuration requires Pro+.
Streak
Contact
Microsoft Dynamics 365 Sales
Contact
1:1Streak Contacts map to Dynamics 365 Contacts. Email address is the primary dedupe key; first name, last name, phone, company affiliation, and any custom contact properties migrate directly. Contact is inserted before any Opportunity that references it via OpportunityContactRole so that the ContactId lookup resolves at load time.
Streak
Lead
Microsoft Dynamics 365 Sales
Lead
1:1If the customer used Streak's Contacts for unqualified prospect tracking, those records migrate to Dynamics 365 Lead with Lead Status set to a default value (New or Open - Not Contacted) chosen during scoping. The original Lifecycle Stage (if used) is preserved in a custom field streak_lifecycle_stage__c on the Lead.
Streak
Task
Microsoft Dynamics 365 Sales
Task
1:1Streak Box Tasks migrate to Dynamics 365 Tasks. Task subject, description, due date, assignee (via email-to-User lookup), and status (open/closed) migrate. Streak tasks are flat with no subtasks, so the mapping is direct. Activity timeline ordering is preserved by setting the ScheduledEnd field to the original Streak due date.
Streak
Tag
Microsoft Dynamics 365 Sales
Opportunity Topic or Text Field
lossyStreak Tags are flat labels on Boxes. We export the full tag list and apply them to the migrated Opportunity via a custom multi-select text field streak_tags__c or as Opportunity Topics if the customer uses the built-in Topics feature. The customer selects the strategy during scoping based on reporting needs.
Streak
Custom Box Properties
Microsoft Dynamics 365 Sales
Custom Opportunity Columns (Dataverse)
1:1Custom Box Properties vary per pipeline and per Box in Streak. We discover the full property schema per pipeline during the schema audit, then pre-create matching custom columns on the Opportunity table in Dataverse before any data loads. Field types (text, number, date, dropdown, checkbox) are mapped to the corresponding Dataverse column type. Properties with dropdown values map to Dataverse choice columns with matching option labels.
Streak
Mail Merge Campaign
Microsoft Dynamics 365 Sales
Note or Custom Object
1:1Streak Mail Merge Campaigns store recipient lists, email templates, send history, and open/reply tracking. We export campaign metadata and send logs as structured records. Open and reply tracking data is Streak-specific and has no Dynamics 365 equivalent; we preserve it as a custom Note on the Campaign record with a JSON payload of send history so it is available for reference but does not display as native activity. Email templates from campaigns migrate as static Note records attached to the originating user.
Streak
Snippet
Microsoft Dynamics 365 Sales
Dynamics 365 Email Template or Quick Note
1:1Streak Snippets (templated email text with merge variables) are exported as content. Merge variable syntax differs between Streak and Dynamics 365; we remap Streak's {{contact.first_name}} format to Dynamics 365's {Contact.First Name} format during the transform step and attach the converted templates as Notes to the relevant user record or as a shared library document.
Streak
Team Member / User
Microsoft Dynamics 365 Sales
User
1:1Streak Users map to Dynamics 365 Users by email. We flag any Archived users detected during the schema audit and prompt the customer to confirm reactivation before export because archived users' Box records are inaccessible via the Streak API without reactivation. Shared pipeline access in Streak (Pro tier or above) maps to Dynamics 365 Team membership and security roles configured during the migration.
| Streak | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Box | Opportunity1:1 | Fully supported | |
| Box | Account1:1 | Fully supported | |
| Pipeline | Record Type + Sales Processlossy | Fully supported | |
| Stage | Opportunity Stagelossy | Fully supported | |
| Contact | Contact1:1 | Fully supported | |
| Lead | Lead1:1 | Fully supported | |
| Task | Task1:1 | Fully supported | |
| Tag | Opportunity Topic or Text Fieldlossy | Fully supported | |
| Custom Box Properties | Custom Opportunity Columns (Dataverse)1:1 | Mapping required | |
| Mail Merge Campaign | Note or Custom Object1:1 | Fully supported | |
| Snippet | Dynamics 365 Email Template or Quick Note1:1 | Fully supported | |
| Team Member / User | User1: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.
Streak gotchas
Free CRM tier removal catches long-time users off guard
Gmail-only is a hard migration boundary
Enterprise-only roles and data validation require permission remapping
Archived user Boxes require reactivation before export
Mail merge daily send limits gate campaign data export
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
Schema discovery and Streak tier audit
We audit the source Streak account across tier (Free legacy / Pro / Pro+ / Enterprise), pipeline count, stage names, per-pipeline custom property schemas, archived user list, mail merge campaign volume, and snippet count. We also extract the Box count, tag taxonomy, and owner list. This phase produces a written schema map: for each pipeline, we list the stage order, property names and types, and any pipeline-specific fields. We confirm the customer is on a paid plan before proceeding because archived users and custom properties are inaccessible on some legacy free accounts.
Dynamics 365 environment provisioning and schema design
We provision the target Dynamics 365 Sales environment (Production or Sandbox per the customer's preference) and design the Dataverse schema: custom columns on Opportunity to receive Streak custom properties, Record Types and Sales Processes per pipeline, choice columns for dropdown-mapped properties, and a custom field set for Streak metadata (thread ID, Box ID, original stage, lifecycle stage). The schema is deployed into a Sandbox first for validation before any data moves.
Owner reconciliation and archived user reactivation
We extract every distinct Streak user referenced on a Box and match by email against the Dynamics 365 User table. Any Owner without a matching User is held in a reconciliation queue. Archived users are flagged separately with their Box count. The customer reactivates archived users and provisions missing Dynamics 365 Users before we proceed to export. Migration cannot proceed past this step because OwnerId references must resolve at Opportunity insert time.
Sandbox migration and reconciliation
We run a full migration into the Sandbox using production data volume. The customer's admin reconciles record counts (Opportunities in, Accounts in, Contacts in, Tasks in), spot-checks 25-50 records against the Streak source, and validates custom property values and tag assignments. Any mapping corrections, schema additions, or dedupe rule adjustments are made in the Sandbox before production migration begins.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (from Box company data), Contacts (with AccountId resolved), Leads (for unqualified prospect Boxes), Opportunities (with AccountId, OwnerId, and RecordTypeId resolved, custom properties populated from the transform), OpportunityContactRole records (linking Contacts to Opportunities), Tasks (with OwnerId resolved via User mapping), Tags (applied to Opportunities via the selected strategy), and Snippets and Campaign metadata (as Note records). Each phase emits a row-count reconciliation report before the next phase begins.
Cutover, delta migration, and automation handoff
We freeze Streak writes during the cutover window, run a final delta migration of any Box records modified during the migration, then switch the customer to Dynamics 365 as the system of record. We deliver the Automation Inventory document: a written map of every Streak automation, trigger, and reminder with a recommended Power Automate equivalent. We do not rebuild Streak automations as Power Automate flows inside the migration scope; that is a separate engagement or an internal admin task. We support a one-week hypercare window for reconciliation issues raised by the sales team.
Platform deep dives
Streak
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Streak and Microsoft Dynamics 365 Sales .
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Streak and Microsoft Dynamics 365 Sales .
Object compatibility
All 8 core objects map 1:1 between Streak and Microsoft Dynamics 365 Sales .
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
Streak: Not publicly documented in Streak's API docs.
Data volume sensitivity
Streak 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 Streak to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Streak 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 Streak
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.