CRM migration

Migrate from Ortto to Microsoft Dynamics 365 Sales

Field-level mapping, validation, and rollback between Ortto and Microsoft Dynamics 365 Sales . We move data and schema; workflows are rebuilt natively in Microsoft Dynamics 365 Sales .

Ortto logo

Ortto

Source

Microsoft Dynamics 365 Sales

Destination

Microsoft Dynamics 365 Sales  logo

Compatibility

75%

6 of 8

objects map 1:1 between Ortto and Microsoft Dynamics 365 Sales .

Complexity

BStandard

Timeline

3-5 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from Ortto to Microsoft Microsoft Dynamics 365 Sales is a platform-category migration: Ortto is a marketing automation and CDP platform; Microsoft Dynamics 365 Sales is a sales CRM. The core challenge is that Ortto's People object (contact record) has no direct 1:1 equivalent in Dynamics 365 because Dynamics separates unqualified prospects into Leads and qualified buyers into Contacts attached to Accounts. We resolve this design gap during scoping by establishing a lifecycle-stage-to-Lead-Contact split rule, then migrate People records through that filter before bulk import. Tags, which are first-class objects in Ortto, become either multi-select picklists or Topics in Dynamics 365 depending on whether they represent contact classifications or campaign classifications. Activity history (email opens, form submissions, custom events) migrates via the Dataverse API with parent-record resolution to the correct Contact and Account. Journey and automation logic from Ortto does not migrate; we document the original flow structure so your team can reconstruct it in Microsoft Dynamics 365 Sales automation or Power Automate.

Field-level fidelity

Every standard and custom field arrives verified.

Schema-aware mapping

AI proposes the map; you confirm before any record moves.

Relationships preserved

Parent–child, lookups, and ownership stay linked.

Full activity history

Calls, emails, meetings — with original timestamps.

Attachments & notes

Documents, uploads, and inline notes move with the record.

Why teams make this switch

Two sides of the same decision

Leaving

Ortto logo

Ortto

What's pushing teams away

  • Monthly pricing starts at $509, which is significantly higher than entry-level email tools like Mailchimp or ActiveCampaign for teams that only need basic broadcast emails.
  • CRM connectivity, particularly with Pipedrive, suffers from frequent disconnections requiring manual re-authentication and causing data sync gaps.
  • The platform sits in a middle tier — too complex for simple email needs, yet lacking the depth of enterprise marketing clouds — leading teams to outgrow it in both directions.
  • Journey/automation logic cannot be exported programmatically; teams rebuilding on a new platform must manually reconstruct every flow from screenshots or documentation.

Choosing

Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales

What's pulling them in

  • Deep Microsoft 365, Teams, and Outlook integration makes Microsoft Dynamics 365 Sales a natural fit for Microsoft-first organizations already invested in that ecosystem
  • Sales Enterprise and Premium tiers offer unlimited custom tables and advanced AI-driven forecasting and predictive analytics not available in lower tiers
  • Professional tier pricing at $65 per user per month offers a lower entry cost than Salesforce for SMB teams with straightforward CRM needs
  • Flexible customization options allow businesses to build bespoke apps, tailor forms and views, and integrate with other Dynamics 365 modules
  • Microsoft Copilot AI tools are embedded directly into the sales workflow on Enterprise and Premium, automating routine tasks and providing deal intelligence

Object mapping

How Ortto objects map to Microsoft Dynamics 365 Sales

Each row shows how a Ortto 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.

Ortto

People (Contacts)

maps to

Microsoft Dynamics 365 Sales

Lead or Contact (split required)

1:many
Fully supported

Ortto People with lifecycle_stage of subscriber, lead, or marketing-qualified lead map to Dynamics 365 Lead. Ortto People with lifecycle_stage of sales-qualified lead, opportunity, or customer map to Dynamics 365 Contact tied to an Account. We compute the split at migration time using Ortto's lifecycle stage property, preserve the original stage value in a custom field ortto_original_lifecycle__c on both Lead and Contact, and flag any People without a lifecycle stage for manual assignment during scoping.

Ortto

Accounts (Organizations)

maps to

Microsoft Dynamics 365 Sales

Account

1:1
Fully supported

Ortto Account records (formerly Organizations) map directly to Dynamics 365 Account. The Account domain becomes the Website field and is used as the dedupe key during import. Account is created before any Contact import so that the parentcustomerid_type and customerid_value lookups are satisfied at Contact insert time. The 3,000-person linkage limit per Account in Ortto does not apply in Dynamics 365.

Ortto

Tag

maps to

Microsoft Dynamics 365 Sales

Multi-Select Picklist or Topic

lossy
Fully supported

Ortto tags are first-class objects referenced per Person via the API. We export the full tag taxonomy (tag names and per-person assignments), then convert contact classification tags to Dynamics 365 multi-select picklist fields on the Contact entity and campaign classification tags to Topic records with TopicAssignment links. The customer chooses the tag strategy during scoping based on whether tags represent lead sources, account tiers, or campaign membership.

Ortto

Audience (Segment)

maps to

Microsoft Dynamics 365 Sales

Marketing List or Saved View

1:1
Fully supported

Ortto Audiences are dynamic or static segments of People defined by behavioral rules. These map to Dynamics 365 Marketing Lists (static) or Sales Navigator saved views (dynamic) with the caveat that Dynamics 365's segment rule syntax differs from Ortto's behavioral event-based rules. We document the original audience definition and provide a written segment reconstruction guide; the rules do not migrate programmatically because the underlying data model and rule engine are incompatible.

Ortto

Campaign

maps to

Microsoft Dynamics 365 Sales

Campaign

1:1
Fully supported

Ortto Campaigns (email, SMS, push) map to Dynamics 365 Campaign. Campaign name, objective, and timing migrate; campaign content (templates, body copy, assets) requires separate export from Ortto and manual re-creation in Dynamics 365 Marketing or Power Automate. Campaign schedules that reference active audience triggers are flagged as automation dependencies outside migration scope.

Ortto

Activity (email, form submission, custom event)

maps to

Microsoft Dynamics 365 Sales

ActivityPointer (Task, Email, Custom Activity)

1:1
Fully supported

Ortto Activities represent behavioral events linked to People. Email open and click activities map to Dynamics 365 Email (email direction=Incoming) records; form submissions map to Task records with a custom ortto_activity_type__c field set to form_submission; custom events map to custom Activity entities if defined in the destination Dataverse schema. Activity timestamps preserve the original Ortto recorded_at value to maintain the behavioral timeline sequence.

Ortto

Custom Field (People)

maps to

Microsoft Dynamics 365 Sales

Custom Field on Contact or Lead

1:1
Fully supported

Ortto custom fields on People (up to 100) migrate to custom fields on the appropriate Dynamics 365 entity based on the Lead-Contact split. Aggregate field types (not supported in Ortto's API) are flagged during discovery and excluded from migration; the customer recreates them in Dynamics 365 UI post-migration. Picklist-type custom fields map to OptionSet fields in Dynamics 365 with the same option labels.

Ortto

Custom Field (Accounts)

maps to

Microsoft Dynamics 365 Sales

Custom Field on Account

1:1
Fully supported

Ortto custom fields on Accounts (up to 25) map to custom fields on Dynamics 365 Account. Field type conversion applies where Ortto field types (text, number, date, dropdown) need to map to Dynamics 365 field types (Single-Line Text, Whole Number, Date Only, OptionSet). Fields exceeding Dynamics 365 character limits are truncated with a warning flag in the reconciliation report.

Gotchas + challenges

What specifically takes care here

Platform-specific issues from each side, plus the pair-specific challenges that don't show up on either platform's page on its own.

Ortto logo

Ortto gotchas

High

Autopilot to Ortto migration requires a fresh account and new billing

Medium

AutopilotJourneys had no annual or quarterly plans; Ortto is month-to-month

Medium

API rate limits vary significantly by plan tier

Low

Custom field aggregate type is not supported in the API

Low

Bad request rate limiter can temporarily ban your migration IP

Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales gotchas

High

Professional tier 15-table custom table limit blocks migrations

High

October 2024 pricing increase applies at renewal for all customers

Medium

Custom fields must be created in the UI before API writes

Medium

Power Platform request limits apply to bulk migrations

Medium

Activity records orphaned to inactive owners fail silently

Pair-specific challenges

  • No direct CDP equivalent in Microsoft Dynamics 365 Sales

    Ortto's core value is its CDP layer that unifies contact data with behavioral events, enrichment, and audience segmentation. Microsoft Dynamics 365 Sales is a CRM without a native CDP; behavioral event data (email opens, page views, form submissions) must be stored as Activity records or custom Dataverse entities rather than a unified behavioral profile. We migrate the activity history as ActivityPointer records but flag that audience segmentation in Dynamics 365 relies on Marketing Lists, Sales Navigator saved views, or a separate Customer Insights implementation. Customers expecting the same behavioral profile view in Dynamics 365 that they had in Ortto will need a separate CDP layer or a Customer Insights trial.

  • Journey and automation logic cannot migrate to Dynamics 365

    Ortto Journeys are visual automation flows with property-triggered branching, built-in delays, and multi-channel actions. Microsoft Dynamics 365 Sales automation (Sales Sequences in Sales Enterprise, Power Automate for workflows) is a different execution model with different triggers, conditions, and actions. We do not migrate Journeys as code. We capture screenshots and document the flow structure during discovery, then deliver a written Journey reconstruction guide that maps each Ortto trigger and action to its Dynamics 365 equivalent. The customer's admin rebuilds the automations post-migration; this work is out of scope for the migration engagement.

  • Dataverse field-level security and validation rules can reject import batches

    Microsoft Dynamics 365 Sales environments commonly enforce validation rules (required formats, conditional requireds, OptionSet whitelists) and field-level security that block data import for records that do not satisfy them. We coordinate with the customer's Dynamics 365 admin to grant the migration user the Dataverse bulkodata writer role, and we either temporarily disable blocking validation rules during load or extend them with a migration-context bypass check. Migrations that skip this step typically see 5-25 percent record rejection on the first import run.

  • Bad request rate limiter on Ortto API can pause migration mid-run

    Ortto's API imposes a per-IP ban of 15 seconds after 15 bad requests (malformed JSON, missing required fields, invalid credentials) within a 15-second window. We validate all request payloads before sending, implement exponential backoff on 429 responses, and monitor for 401/403 responses that signal credential or ban issues. If a ban occurs we pause migration and resume after the cooldown window, which adds latency but prevents IP blacklisting. Professional plan rate limits of 10 req/sec and Business/Enterprise limits of 30 req/sec are enforced throughout.

  • Ortto's aggregate custom field type cannot be exported via API

    The aggregate field type for custom fields in Ortto (calculated rollup fields computed from related records) cannot be created or manipulated via API, only via the Ortto UI. We scan the schema for aggregate fields during discovery and flag them in the migration scope document. These fields cannot be migrated programmatically; the customer recreates them manually in Dynamics 365 using calculated fields or a Power Automate flow after migration.

Migration approach

Six steps for a successful Ortto to Microsoft Dynamics 365 Sales data migration

  1. Discovery and lifecycle split design

    We audit the source Ortto environment across plan tier (Professional/Business/Enterprise), People count, Account count, tag taxonomy size, audience definitions, activity volume, and custom field definitions. We pair this with a Microsoft Dynamics 365 Sales edition review (Sales Professional at $65/user or Sales Enterprise at $105/user with Sequences). The critical output of this step is the Lead-Contact split matrix based on Ortto lifecycle stages, which determines how every People record will be routed during migration. We also identify any Ortto regional endpoints (AU/EU) and confirm API credentials and rate limits.

  2. Schema design and Dataverse custom field provisioning

    We design the destination schema in the customer's Dynamics 365 environment. This includes creating custom fields on the Lead, Contact, and Account entities that map to Ortto People and Account custom fields, provisioning a MultiSelectOptionSet or Topic structure for the tag taxonomy, and creating any custom Activity entities for behavioral event types not covered by standard Task and Email. Custom fields are deployed via the Dataverse Web API into a Sandbox environment first for validation before any production migration begins.

  3. Sandbox migration and reconciliation

    We run a full migration into the customer's Dynamics 365 Sandbox using a representative data sample. The customer's RevOps or CRM admin reconciles record counts (People in, Leads and Contacts out, Accounts in, Activities in), spot-checks 25-50 random records against the Ortto source, and validates that the Lead-Contact split is producing the expected distribution. Any field type mismatches, missing picklist values, or validation rule conflicts are resolved here before production migration begins.

  4. Tag taxonomy export and audience definition capture

    We export the complete Ortto tag taxonomy (all tag names and the per-Person tag assignments) and the full audience segment definitions (rules, conditions, and membership). Tags are staged for conversion to Dynamics 365 MultiSelectOptionSet or Topic structure; audience definitions are documented in the written handoff guide with the equivalent Dynamics 365 Marketing List or Saved View construction steps. This step runs in parallel with schema provisioning.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Accounts (from Ortto Organizations), Leads (Ortto People routed to Lead by lifecycle stage), Contacts (Ortto People routed to Contact with AccountId resolved), Tag taxonomy (as MultiSelectOptionSet metadata), Contact tag assignments (as MultiSelectOptionSet values on Contact), Activities (via Dataverse batch API with WhoId and Regarding lookup resolution), Custom Fields (as field values on Lead, Contact, and Account). Each phase emits a row-count reconciliation report before the next phase begins. We enforce Ortto API rate limits and Dataverse batch size limits throughout.

  6. Cutover, validation, and Journey rebuild handoff

    We freeze Ortto 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 Journey documentation, audience reconstruction guide, and segment mapping table to the customer's admin team. We support a three-day hypercare window where we resolve reconciliation issues raised during initial Dynamics 365 usage. We do not rebuild Ortto Journeys as Dynamics 365 Sequences or Power Automate flows inside the migration scope; that is a separate engagement.

Platform deep dives

Context on both ends of the pair

Ortto logo

Ortto

Source

Strengths

  • Unified CDP and marketing automation eliminates the need to stitch together a separate data platform for contact enrichment and segmentation.
  • Visual journey builder with canvas-based workflow design appeals to non-technical marketers who want to own their automation without engineering support.
  • AI-powered suggestions and predictions (send-time predictions, lead scoring) are included at no additional cost across paid tiers.
  • Multi-channel reach (email, SMS, push notifications, transactional messaging) covered under a single platform subscription rather than add-on pricing.
  • Region-specific data residency (AU/EU) available for customers with data sovereignty requirements.

Weaknesses

  • Price point ($509+/month) positions Ortto above simple email tools and may be prohibitive for small teams or early-stage startups with limited budget.
  • CRM integrations, particularly Pipedrive, have reliability issues with connection drops that require manual intervention to restore sync.
  • Journey/automation logic is not programmatically portable — teams migrating away must manually rebuild every workflow from documentation.
  • No programmatic export for dashboard configurations or cohort report definitions, creating re-work for analytics-heavy teams.
Microsoft Dynamics 365 Sales  logo

Microsoft Dynamics 365 Sales

Destination

Strengths

  • Native integration with Microsoft 365, Teams, Outlook, and SharePoint for unified productivity workflow
  • Unlimited custom tables and complex workflows on Enterprise tier enable deep customization for complex sales processes
  • AI-driven predictive analytics and deal intelligence on Enterprise and Premium tiers help sales teams prioritize pipeline
  • Dataverse unified data layer provides a consistent API and data model across all Dynamics 365 and Power Platform apps
  • Strong security model with Field-Level Security and Record Ownership rules for governance-conscious enterprises

Weaknesses

  • Sales Professional tier caps custom tables at 15, creating a migration ceiling for highly customized SMB environments
  • October 2024 pricing increases of $15 per user across all tiers apply to existing customers upon renewal
  • Implementation typically requires costly certified partners, adding 30–50% to total project cost
  • Updates and platform releases can disrupt customizations and plugins, requiring regression testing after each wave
  • Non-Microsoft integrations require additional configuration or middleware, limiting flexibility for heterogeneous tech stacks

Complexity grading

How hard is this migration?

Standard CRM migration. 1 of 8 objects need a mapping; the rest are 1:1.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across Ortto and Microsoft Dynamics 365 Sales .

  • Object compatibility

    B

    1 of 8 objects need a mapping; the rest are 1:1.

  • Field mapping clarity

    C

    Field mapping is derived from defaults — final spec confirmed during the sample migration.

  • Timeline complexity

    B

    8-object category — typical timelines run 2–7 days end-to-end.

  • API constraints

    B

    Ortto: 10 req/sec (Professional), 30 req/sec (Business/Enterprise); 2000 req/10s and 6000 req/60s per IP; bad-request limiter triggers 15s IP ban after 15 bad requests in 15s.

  • Data volume sensitivity

    B

    Ortto doesn't expose a bulk API — REST + parallelization used for high-volume runs.

Estimator

Estimate your Ortto to Microsoft Dynamics 365 Sales migration cost

Rule-based pricing — no per-record fees, no manual quotes. Migrations over 2M records are scoped individually.

Step 1

What are you migrating?

Pick a category, then your source and destination platforms.

Category

FAQ

Frequently asked questions about Ortto to Microsoft Dynamics 365 Sales data migrations

Answers to the questions buyers ask most during Ortto to Microsoft Dynamics 365 Sales migration scoping. Not seeing yours? Book a call.

Can't find your answer?

Walk through your Ortto to Microsoft Dynamics 365 Sales migration with a real engineer — 30 minutes, free, written quote within 24 hours.

Book a free 30 minute consultation

Most migrations land between three and five weeks for accounts under 15,000 People and 3,000 Accounts with a straightforward lifecycle stage matrix. Migrations with large engagement histories (over 200,000 activity records), complex audience segment definitions requiring manual rule translation, or extensive custom field sets move to eight to twelve weeks because of Dataverse batch chunking, segment reconstruction documentation, and parent-record lookup resolution across the Lead-Contact-Account hierarchy.

Adjacent paths

Related migrations to explore

Ready when you are

Move from Ortto.
Land in Microsoft Dynamics 365 Sales , intact.

Tell us record counts and timeline. We'll come back with a written quote inside 1 business day — no commitment, no sales pitch.

Accuracy guarantee Rollback included Quote in 1 business day