CRM migration
Field-level mapping, validation, and rollback between Tofu and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .
Tofu
Source
Microsoft Dynamics 365 Sales
Destination
Compatibility
6 of 8
objects map 1:1 between Tofu and Microsoft Dynamics 365 Sales .
Complexity
BStandard
Timeline
3-5 weeks
Overview
Moving from Tofu to Microsoft Microsoft Dynamics 365 Sales is an ABM-centric demand generation platform exiting a purpose-built marketing tool for a broad enterprise CRM. Tofu has no published public API, so we work from native export formats and webhook payloads rather than a REST endpoint; this extends scoping by one to two weeks and requires a pre-flight data audit before we commit to a migration plan. We map Tofu Accounts to Dynamics Accounts, Campaigns to Dynamics Campaigns (or a custom entity if the customer uses Sales Enterprise), Personas to custom fields on Account, and Playbooks to a sequence of Task or custom step records because Microsoft Dynamics 365 Sales has no native multi-step cadence object. Content Asset metadata migrates; the binary files are re-downloaded from Tofu's CDN URLs at export time. We do not migrate Playbooks as automations, Audiences as active filters, or AI-generated content review statuses — those require manual configuration in Dynamics 365.
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
Tofu platform overview
Scorecard, SWOT, gotchas, and pricing for Tofu.
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 Tofu 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.
Tofu
Account
Microsoft Dynamics 365 Sales
Account
1:1Tofu Accounts (target companies in the ABM model) map directly to Microsoft Dynamics 365 Account records. We export Account name, industry, tier, owner, and any custom enrichment fields from Tofu and write them to the corresponding Account fields in Dynamics. Tofu does not use a separate Company object — Accounts serve both the company identification and targeting role. The primary Account name becomes Account Name, and any tier classification (Enterprise, Mid-Market, SMB) migrates as a custom Account field for segmentation in Dynamics reporting.
Tofu
Campaign
Microsoft Dynamics 365 Sales
Campaign or Custom Entity
1:1Tofu Campaigns are top-level containers for landing pages, email sequences, ads, and collateral tied to a targeting strategy. We export all campaign metadata and status. On Sales Enterprise ($105/user/mo), we recommend a custom CampaignExtension entity that captures ABM-specific fields (target account tier, ICP fit score, campaign intent signals). On Sales Professional ($65/user/mo), Dynamics native Campaign records handle the container but lack ABM-specific fields; we store those as custom fields on the Campaign record.
Tofu
Playbook
Microsoft Dynamics 365 Sales
Task sequence (custom entity or custom fields)
lossyTofu Playbooks encode multi-step outreach sequences with branching logic, timing, and channel rules. Microsoft Dynamics 365 Sales has no native multi-step cadence or branching playbook object. We decompose each Tofu Playbook into discrete Step records and import them as a linked series of Task records with a custom PlaybookId lookup, step_order, channel type, delay_days, and condition_branch fields preserved as custom Task fields. Any branching conditions that cannot be represented linearly are flagged in a PlaybookBranchMap__c custom field for manual Power Automate rebuild.
Tofu
Persona
Microsoft Dynamics 365 Sales
Custom fields on Account
1:1Tofu Personas define the ICP profile — industry, role, pain points, and messaging tone — used to personalize content per target account. We export persona definitions as structured records and map them to custom fields on the Dynamics Account: Persona_Role__c, Persona_IndustryFocus__c, Persona_PainPoints__c, and Persona_MessagingTone__c. If a single Tofu Persona applies to multiple Accounts, we populate these custom fields on each linked Account record. Dynamics does not have a native Persona object, so this flattening into Account-level custom fields is the standard migration pattern.
Tofu
Content Asset
Microsoft Dynamics 365 Sales
SharePoint Document Library or Note attachment
lossyTofu Content Assets include landing pages, one-pagers, ads, and sales collateral generated by the AI. We export asset metadata (name, version, creation date, linked Campaign and Account associations) and write it to a SharePoint document library provisioned within the Microsoft Dynamics 365 Sales environment or as Notes attached to the related Account or Campaign record. The binary files (PDFs, images, landing page URLs) are re-downloaded from Tofu's CDN asset URLs at export time. If Tofu rotates asset URLs post-migration, we re-validate each URL in a pre-flight check before final sync.
Tofu
Audience
Microsoft Dynamics 365 Sales
Custom entity (Audience) with Account lookups
1:1Tofu Audiences are filtered subsets of Accounts or Contacts used to trigger Playbook activation. We export audience membership as a list of Account IDs with the filter criteria preserved in a custom Audience entity (AudienceId, Name, FilterCriteria__c, CreatedDate). Microsoft Dynamics 365 Sales does not have a native Audience object. Each membership record links to an Account via a lookup relationship. The filter criteria are stored as a JSON or text field so the customer's Dynamics admin can recreate the audience as a static Marketing List or a dynamic segment in Dynamics Customer Insights Journeys post-migration.
Tofu
Custom Properties
Microsoft Dynamics 365 Sales
Custom fields on respective entities
1:1Tofu supports custom fields on Accounts, Campaigns, and Playbooks. We detect any non-standard properties during the pre-migration schema scan and map them to equivalent custom fields in Dynamics 365. Custom field types are mapped: Tofu text to Dynamics Single-Line Text or Multi-Line Text, Tofu number to Decimal or Whole Number, Tofu date to Date, and Tofu dropdown to Option Set. We create the custom fields in Dynamics before migration begins so that data lands in typed fields rather than generic note fields.
Tofu
User / Owner
Microsoft Dynamics 365 Sales
SystemUser
1:1Users in Tofu are assigned as Campaign owners and Playbook creators. We export user email addresses and names and map them to SystemUser records in Dynamics 365. We resolve by email match against the destination org's Azure Active Directory-backed user table. Any Tofu Owner without a matching SystemUser goes to a reconciliation queue for the customer's Dynamics admin to provision before record import resumes, as OwnerId references are required on Campaign, Account, and Activity records.
| Tofu | Microsoft Dynamics 365 Sales | Compatibility | |
|---|---|---|---|
| Account | Account1:1 | Fully supported | |
| Campaign | Campaign or Custom Entity1:1 | Fully supported | |
| Playbook | Task sequence (custom entity or custom fields)lossy | Fully supported | |
| Persona | Custom fields on Account1:1 | Fully supported | |
| Content Asset | SharePoint Document Library or Note attachmentlossy | Fully supported | |
| Audience | Custom entity (Audience) with Account lookups1:1 | Fully supported | |
| Custom Properties | Custom fields on respective entities1:1 | Mapping required | |
| User / Owner | SystemUser1: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.
Tofu gotchas
No public API documentation or published rate limits
Content Assets are platform-hosted binaries not separately exported
Playbook branching logic maps imperfectly to most destination CRMs
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 Tofu export capability audit
We audit the source Tofu environment across all objects (Accounts, Campaigns, Playbooks, Personas, Content Assets, Audiences, Custom Properties, Users) and confirm what export formats are available given the absence of a public API. We also identify any webhook listeners, CSV bulk exports, or manual download capabilities currently active. We pair this with a Dynamics 365 edition assessment: Sales Professional ($65/user) for basic CRM migrations; Sales Enterprise ($105/user) if custom entities, multiple sales processes, or advanced territory management are required. The discovery output is a written migration scope with a Tofu export plan and a Dynamics edition recommendation.
Schema design and custom field provisioning in Dynamics
We design the destination schema in Microsoft Dynamics 365 Sales . This includes provisioning custom fields on Account (Persona fields), a custom CampaignExtension entity if Sales Enterprise is selected, a custom Audience entity, and custom Task fields for Playbook step decomposition. We also configure Option Set values for Tofu picklist fields, number formats for Tofu numeric fields, and any required Option Set labels. Schema is deployed to a Dynamics Sandbox first for validation before any production migration begins.
Sandbox migration and reconciliation
We run a full migration into a Dynamics 365 Sandbox using representative data volume. The customer's Dynamics admin or RevOps lead reconciles record counts (Accounts in, Campaigns in, Personas mapped, Playbook steps linked, Audiences populated, Content Asset metadata verified), spot-checks 25-50 records against the Tofu source, and signs off the schema and mapping before production migration begins. Any field mapping corrections, Persona flattening issues, or Playbook step sequencing errors are resolved here.
Owner reconciliation and SystemUser provisioning
We extract every distinct Tofu User referenced on Accounts, Campaigns, Playbooks, and Content Assets and match by email against the Dynamics 365 destination org's SystemUser table. Users without a matching SystemUser go to a reconciliation queue for the customer's Dynamics admin to provision. Migration cannot proceed past this step because OwnerId references are required on standard objects in Dynamics.
Production migration in dependency order
We run production migration in record-dependency order: Accounts (the foundation record), Campaigns (with owner resolved), Personas (flattened to Account custom fields), Content Asset metadata (written to SharePoint or Notes with re-validated CDN URLs), Audiences (custom entity with Account lookups), and Playbook steps (Task records with PlaybookId and step_order resolved). Each phase emits a row-count reconciliation report before the next phase begins. We use the Dynamics 365 Data Migration Framework or the Power Platform Dataflow API for record inserts with batch chunking.
Cutover, validation, and automation rebuild handoff
We freeze Tofu writes during cutover, run a final delta migration of any records modified during the migration window, then enable Microsoft Dynamics 365 Sales as the system of record. We deliver the Playbook and Audience inventory document listing every Tofu Playbook with its step sequence, branching conditions, and recommended Power Automate rebuild approach. We do not rebuild Tofu Playbooks as Dynamics workflows inside the migration scope; that is a separate engagement. We support a one-week hypercare window for reconciliation issues raised by the sales team during live use.
Platform deep dives
Tofu
Source
Strengths
Weaknesses
Microsoft Dynamics 365 Sales
Destination
Strengths
Weaknesses
Complexity grading
Standard CRM migration. All 8 core objects map 1:1 between Tofu and Microsoft Dynamics 365 Sales .
Overall complexity
Standard migration
Derived from compatibility, mapping clarity, API constraints, and data volume across Tofu and Microsoft Dynamics 365 Sales .
Object compatibility
All 8 core objects map 1:1 between Tofu 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
Tofu: Not publicly documented — typical SaaS limits assumed and confirmed during scoping.
Data volume sensitivity
Tofu 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 Tofu to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.
Walk through your Tofu 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 Tofu
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.