ERP migration

Migrate from KeyedIn to Microsoft Dynamics 365 Business Central

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

KeyedIn logo

KeyedIn

Source

Microsoft Dynamics 365 Business Central

Destination

Microsoft Dynamics 365 Business Central logo

Compatibility

60%

9 of 15

objects map 1:1 between KeyedIn and Microsoft Dynamics 365 Business Central.

Complexity

BStandard

Timeline

5-8 weeks

Rollback included Accuracy guarantee Field-level validation

Overview

What this migration involves

Moving from KeyedIn to Microsoft Dynamics 365 is an ERP-adjacent migration that requires careful extraction planning because KeyedIn does not publish a public REST API or bulk export endpoint. Data extraction typically depends on a managed in-app export, a Jitterbit connector for integration customers, or direct database access for on-premise Enterprise deployments — each with different timelines and tooling requirements. We treat KeyedIn's Project and Task data as the primary migration plane and Financial Budgets as a separate plane that must reconcile to the parent Project totals at the destination. The Deliverables versus Task Plan Milestone duplication — a known structural gap in KeyedIn — requires a deduping decision before any record writes to Dynamics 365. We do not migrate KeyedIn Workflows, automations, or reports as code; we deliver a written inventory of these for your admin to rebuild in Dynamics 365's Power Automate or Project Service Automation workflows post-migration.

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

KeyedIn logo

KeyedIn

What's pushing teams away

  • Occasional users find the interface unintuitive — actions that should take one click require five, creating friction for team members who do not use it daily.
  • Reviewers report the system is glitchy — saved data disappears and the timesheet module requires workarounds for precise human resource budgeting.
  • A structural disconnect exists between Deliverables (milestones) and Milestones captured within Task Plans, forcing users to duplicate data entry in both places.
  • The UX is described as needing a refresh — the tool works functionally but feels dated compared to newer project management platforms.
  • Teams outgrow the tool when they need more flexible customization in reporting and data filtering for tailored views.

Choosing

Microsoft Dynamics 365 Business Central logo

Microsoft Dynamics 365 Business Central

What's pulling them in

  • Deep integration with Microsoft 365, Power BI, and Power Platform means organizations already on the Microsoft stack get identity, reporting, and workflow continuity out of the box.
  • Unified financials, sales, service, and operations replace multiple disconnected systems — users report that data entered once flows through purchase orders, invoicing, and approvals without manual re-entry.
  • Copilot AI features (predictive analytics, embedded business intelligence) are included in both Essentials and Premium tiers, addressing demand for AI without separate module purchases.
  • Named-user licensing with no concurrent model appeals to organizations that want predictable per-seat costs even if some users access the system infrequently.
  • Strong partner ecosystem with certified NAV-to-Business Central migration specialists gives mid-market companies confidence the cutover from legacy Navision can be executed reliably.

Object mapping

How KeyedIn objects map to Microsoft Dynamics 365 Business Central

Each row shows how a KeyedIn object lands in Microsoft Dynamics 365 Business Central, including any object-level transformations, lookup resolution, or schema-design dependencies.

Typical mapping — final map is confirmed during the sample migration step.

KeyedIn

Project

maps to

Microsoft Dynamics 365 Business Central

msdyn_project (PSA) or Job (Business Central)

1:1
Fully supported

KeyedIn Projects map to Dynamics 365 Project Service Automation msdyn_project or Business Central Job entities depending on the destination module. We preserve Project name, status, start and end dates, project manager (Owner), and budget summary. The KeyedIn project hierarchy — where sub-projects exist under a parent — maps to a parent Project lookup in PSA or a Job Connection in Business Central. Standard fields (Project Stage, Team, Contract) are configured before migration. The dedupe key is a composite of Project name plus KeyedIn internal ID stored in a custom field keyedin_id__c for audit traceability.

KeyedIn

Task

maps to

Microsoft Dynamics 365 Business Central

msdyn_projecttask (PSA) or Job Task Line (Business Central)

1:1
Fully supported

KeyedIn Tasks map to PSA Project Tasks or Business Central Job Task Lines with the parent-child hierarchy preserved via the Parent Task lookup. We write parent tasks first in topological order to satisfy the lookup reference, then child tasks. Start and due dates, percent complete, scheduled hours, and assignee all transfer directly. Task-level cost rates migrate as part of the pricing dimension setup in PSA before the resource plan phase begins.

KeyedIn

Subtask

maps to

Microsoft Dynamics 365 Business Central

msdyn_projecttask (flattened, PSA)

1:many
Fully supported

KeyedIn Subtasks (the third level of Project > Task > Subtask) cannot be natively represented as a three-level hierarchy in Dynamics 365 PSA, which supports two levels by default. We flatten Subtasks as child tasks under the parent Task in PSA, adding a custom field keyedin_level__c set to 'subtask' to preserve the original nesting level in the source. The customer decides during scoping whether to keep this flattened structure or consolidate Subtasks into task notes for cleaner project views.

KeyedIn

Resource (People)

maps to

Microsoft Dynamics 365 Business Central

bookableresource (PSA) or Employee (Business Central)

1:1
Fully supported

KeyedIn Resources that are People entities map to PSA Bookable Resources or Business Central Employees. We resolve Resources by their KeyedIn email address as the dedupe key, creating the Bookable Resource with the bookableresourcecategory matching the KeyedIn Resource role or pool. Inactive Resources in KeyedIn are created as inactive Bookable Resources to preserve allocation history. Resource type (Individual vs Generic Pool) maps to BookableResourceType in PSA.

KeyedIn

Resource Allocation

maps to

Microsoft Dynamics 365 Business Central

bookableresourcebooking (PSA)

1:1
Fully supported

KeyedIn Resource-to-Project allocation assignments migrate as PSA Bookable Resource Bookings. Each booking captures the resource, project, start and end date, and hours or percentage allocation. Because KeyedIn stores allocation as a separate plane from tasks, we sequence resource allocations after both the Project and Resource records exist in PSA to avoid orphan bookings. Allocation conflicts (same resource overbooked on overlapping projects) are flagged for the customer to resolve before migration.

KeyedIn

Portfolio

maps to

Microsoft Dynamics 365 Business Central

msdyn_projectteam (PSA) or Business Unit + custom field

1:many
Fully supported

KeyedIn Portfolios group related Projects for executive visibility. We migrate Portfolio-to-Project associations as a junction lookup table or a multi-select custom field on each Project record, depending on the Dynamics 365 target entity. The Portfolio name is preserved as a tag or label. In Business Central, Portfolios map to a combination of Business Unit and a custom Portfolio field on the Job record. The customer chooses the display strategy during scoping.

KeyedIn

Task Plan

maps to

Microsoft Dynamics 365 Business Central

msdyn_projecttask (grouping entity, PSA)

lossy
Fully supported

KeyedIn Task Plans are structured schedules attached to Projects containing Tasks, Subtasks, and Milestones. We treat the Task Plan as a grouping container and migrate the contained Tasks and Milestones directly into the target Project's task list, tagging each record with a custom field keyedin_taskplan_id__c to preserve the original grouping for audit. If the customer uses Task Plan as a template construct (reusable schedules applied across multiple projects), we document the template pattern for rebuild in Dynamics 365 Project Templates.

KeyedIn

Milestone (Deliverable)

maps to

Microsoft Dynamics 365 Business Central

msdyn_projectmilestone (PSA)

1:1
Fully supported

KeyedIn standalone Deliverables map to PSA Project Milestones. Each milestone carries the milestone name, due date, status, and a lookup to the parent Project. We apply the deduplication decision (see Gotchas) before writing — only the resolved canonical milestone per conceptual project milestone migrates. Milestones embedded within Task Plans are mapped separately (see Task Plan entry) and the two sets are cross-referenced during deduplication. Milestone status from KeyedIn (On Track, At Risk, Complete) maps to the PSA Milestone status picklist.

KeyedIn

Time Entry

maps to

Microsoft Dynamics 365 Business Central

msdyn_timeentry (PSA) or Time Sheet (Business Central)

1:1
Fully supported

KeyedIn Time Entries (hours logged against Tasks or Resources) migrate as PSA Time Entries or Business Central Time Sheet Lines. Each Time Entry carries the resource reference, project, task, date, hours, and billable flag. We resolve the KeyedIn Resource reference to the PSA Bookable Resource or BC Employee. If the destination uses approval workflows on time entries, we migrate with a default Approved status flag and document the approval routing for rebuild in Power Automate.

KeyedIn

Financial Budget

maps to

Microsoft Dynamics 365 Business Central

msdyn_projectbudget (PSA) or Budget (Business Central)

1:1
Fully supported

KeyedIn Enterprise financial budgets migrate as PSA Project Budgets or Business Central Budget entries. Budget amounts, cost codes, and period breakdowns transfer as line items under the budget header, with the KeyedIn Project Budget linked to the corresponding PSA Project. Currency mismatches between KeyedIn and Dynamics 365 are flagged before migration, and the customer specifies the target currency. We validate that the sum of migrated budget line items reconciles to the parent Project budget total reported in KeyedIn, flagging any unreconciled discrepancy.

KeyedIn

Risk and Issue

maps to

Microsoft Dynamics 365 Business Central

msdyn_projectrisk (PSA) or custom entity

1:1
Fully supported

KeyedIn Risks and Issues (logged at the Project level with severity, status, owner, and description) map to PSA Project Risks or a custom entity. We preserve the parent Project lookup, risk category, probability, impact, owner, and description. In Business Central, which lacks a native risk entity, we use a custom Project Risk table or document the mapping to the Job risk notes. Issue status (Open, Mitigated, Closed) maps to the Dynamics 365 status field with the KeyedIn severity preserved as a custom picklist.

KeyedIn

Document and Attachment

maps to

Microsoft Dynamics 365 Business Central

sharepointdocumentlocation or notes (PSA)

1:1
Fully supported

KeyedIn documents and attachments linked to Projects or Tasks are migrated as SharePoint document locations attached to the PSA Project record (via the SharePoint document management integration) or as Notes with the original file name and URL preserved. Actual file blobs are not transferred unless the customer requests a separate blob migration. The document URL from KeyedIn is stored in a custom field keyedin_doc_url__c on the SharePoint document record for reference. Document folder structure is mapped to the PSA SharePoint document library hierarchy.

KeyedIn

Custom Field (Project level)

maps to

Microsoft Dynamics 365 Business Central

Custom fields on msdyn_project (PSA)

lossy
Fully supported

KeyedIn custom fields on Projects (which vary per tenant) require a discovery scan during scoping to enumerate every unique custom field, its data type, and its picklist values. We create matching custom fields on the PSA Project entity (typed to the source data type — text, number, date, picklist, checkbox) and configure field-level security before migration. Unmapped custom fields are held in a decision log for the customer to specify disposition.

KeyedIn

Custom Field (Task level)

maps to

Microsoft Dynamics 365 Business Central

Custom fields on msdyn_projecttask (PSA)

lossy
Fully supported

KeyedIn custom fields on Tasks (which vary per tenant) are migrated as custom fields on the PSA Project Task entity. Task-level custom field schemas tend to be smaller than project-level but still require explicit mapping. We validate field type compatibility — KeyedIn numeric custom fields must map to PSA decimal or integer fields, and KeyedIn date fields must not map to text fields.

KeyedIn

Pipeline Stage (Status Workflow)

maps to

Microsoft Dynamics 365 Business Central

msdyn_projectstageresult or status picklist (PSA)

lossy
Fully supported

KeyedIn status values (e.g. Draft, Active, On Hold, Complete, Cancelled) are enumerated values that map to the PSA Project status field or a custom stage field on the Project entity. We create a status mapping table during scoping, validate that all source status values have a destination equivalent, and flag any orphaned statuses that exist in the data but not in the current KeyedIn configuration. Status values that have no direct equivalent in Dynamics 365 PSA are mapped to the nearest status and flagged for customer review.

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.

KeyedIn logo

KeyedIn gotchas

Medium

Deliverables vs Task Plan Milestone duplication

Medium

Financial data stored separately from tasks

Medium

Custom field schema varies per tenant

High

No publicly documented bulk export or API

Microsoft Dynamics 365 Business Central logo

Microsoft Dynamics 365 Business Central gotchas

High

Named-user licensing has no concurrent-use relief

High

API rate limits throttle large-volume migrations

Medium

Historical posted transactions require selective migration scoping

Medium

NAV-to-Business Central cloud migration requires partner coordination

Low

Custom fields and AL extensions require separate migration handling

Pair-specific challenges

  • No public API forces non-standard extraction

    KeyedIn does not publish a public REST API or bulk export endpoint. Extraction methods vary by KeyedIn tier: cloud tenants use a managed in-app export or Jitterbit connector; on-premise Enterprise deployments may use direct SQL Server or PostgreSQL database access. Each method has different data freshness, export format (CSV, XML, JSON), and scheduling constraints. We identify the available extraction method during discovery, factor it into the migration timeline, and build the extraction pipeline accordingly. This is the highest-impact pair gotcha because it directly affects the migration start date and tooling cost.

  • Deliverables vs Task Plan Milestone duplication

    KeyedIn maintains two separate milestone tracking mechanisms — standalone Deliverables at the project level and Milestones embedded within Task Plans — that are not automatically synchronized. An organization that uses both will have records in both systems representing the same conceptual milestone. We detect these during extraction by matching milestone name, parent project, and date window. We present the duplicate set to the customer for resolution before migration, migrate only the resolved canonical record to Dynamics 365 as a Project Milestone, and flag any orphaned Deliverables that lack a matching Task Plan milestone for the customer to decide.

  • Custom field schema is tenant-specific

    KeyedIn tenants frequently have custom fields added to Projects, Tasks, and other objects based on their industry, implementation partner, or internal workflow requirements. There is no standard field registry. We perform a full field discovery scan during scoping to enumerate every custom field, map each explicitly to a typed Dynamics 365 field, and hold any unmapped fields for customer decision. Skipping this step results in silent data loss where custom field values are dropped during migration. We document the full custom field inventory in the migration scope.

  • Three-level task nesting flattens in Dynamics 365

    KeyedIn supports a three-level task hierarchy: Project > Task > Subtask. Dynamics 365 Project Service Automation natively supports two levels. We flatten Subtasks as child tasks under the parent Task, tagging each with a keyedin_level__c field set to 'subtask' to preserve the original depth for audit. This is a display and hierarchy decision, not a data loss issue, but it affects how project managers view the schedule in Dynamics 365 after migration. We discuss the flattening strategy with the customer during scoping and document the impact on any existing project management reporting.

  • Financial data requires separate reconciliation plane

    KeyedIn Enterprise financial budgets, cost codes, and financial line items are not always co-located with Project and Task records in the data export. We treat financial data as a separate migration plane and validate that financial amounts reconcile to the parent Project budget totals after migration. Currency mismatches or missing cost codes are flagged before write. If the destination is Dynamics 365 Business Central rather than PSA, the financial migration plane maps to the Budget and Cost Management modules with a different entity structure (Cost Journal Lines vs PSA Project Budget Lines), which requires an additional transformation step.

Migration approach

Six steps for a successful KeyedIn to Microsoft Dynamics 365 Business Central data migration

  1. Extraction method scoping and discovery

    We audit the source KeyedIn environment to identify the available extraction path: managed in-app export for cloud tenants, Jitterbit connector access for integration customers, or direct database access for on-premise Enterprise deployments. We enumerate every custom field, every distinct status value, the Project and Task record count, the Resource count, the financial budget volume (for Enterprise tier), and the document reference count. This discovery phase produces a written extraction plan, a data volume estimate, and a migration scope document that both parties sign before tooling begins.

  2. Deliverable and Milestone deduplication

    Before any data moves, we run a deduplication pass across the Deliverables and Task Plan Milestones extracted from KeyedIn. We match on milestone name, parent project ID, and due date window (within 7 days) to identify records in both systems that represent the same conceptual milestone. We present the deduplication set to the customer's PMO lead for a manual resolution decision and document the chosen record per milestone. Only the resolved canonical record is written to Dynamics 365 PSA as a Project Milestone.

  3. Destination schema deployment

    We deploy the target Dynamics 365 schema — PSA Project entity with custom fields, Bookable Resources, Project Tasks, Project Milestones, Time Entries, Project Budgets, and any custom entities — into a Sandbox environment first. Custom fields are typed to match the source data types discovered in scoping. Resource capacity profiles, cost price lists, and project stage picklist values are configured before data migration begins. The customer's Dynamics 365 admin reviews and validates the schema in Sandbox and signs off before production migration is scheduled.

  4. Financial plane reconciliation

    We extract KeyedIn Enterprise financial data (budgets, cost codes, financial line items) as a separate data plane and validate that the sum of line items reconciles to the parent Project budget total. Any unreconciled amounts, missing cost codes, or currency mismatches are flagged for the customer's finance team to remediate before the financial plane migrates. This step prevents budget totals in Dynamics 365 that do not tie back to the source KeyedIn figures, which would undermine financial reporting continuity.

  5. Production migration in dependency order

    We run production migration in record-dependency order: Bookable Resources (PSA) first, then Projects, then Resource Bookings, then Project Tasks (parent tasks before child tasks), then Task Plan Milestones (after Task Plan grouping is resolved), then Deliverables (after deduplication), then Time Entries, then Financial Budgets (last, because they reference Projects), then Risks and Issues. Document and attachment metadata migrates last. Each phase emits a row-count reconciliation report before the next phase begins. The KeyedIn keyedin_id__c custom field on each record maintains the link back to the source for audit.

  6. Cutover, validation, and automation rebuild handoff

    We freeze KeyedIn writes during the cutover window, run a final delta migration of any records modified during the migration window, then designate Dynamics 365 as the system of record. We deliver a written inventory of all KeyedIn Workflows, conditional automations, and custom reports that require rebuild in Dynamics 365 Power Automate or PSA project management settings. We do not rebuild these as code inside the migration scope. We support a one-week hypercare window to resolve reconciliation issues raised by the PMO team.

Platform deep dives

Context on both ends of the pair

KeyedIn logo

KeyedIn

Source

Strengths

  • End-to-end project portfolio management connecting strategic prioritization to resource allocation and financial tracking.
  • Robust resource management with forecasting, allocation, and capacity planning across project portfolios.
  • Collaboration Hub enables document sharing and team coordination integrated with project data.
  • Enterprise-grade features including financial management, risk management, and compliance reporting in higher tiers.
  • Multi-language and multi-currency support in the Manufacturing ERP product enables global deployments.

Weaknesses

  • The user interface is not intuitive for occasional users, requiring more clicks than necessary for common actions.
  • Known structural disconnect between Deliverables and Task Plan Milestones forces duplicate data entry.
  • The timesheet module and overall UI have been described as glitchy, with saved data occasionally disappearing.
  • Reporting and data filtering for customized views are limited and require UX improvements.
  • Steep implementation cost ranging from $1,000 to $10,000 plus subscription fees creates a significant upfront commitment.
Microsoft Dynamics 365 Business Central logo

Microsoft Dynamics 365 Business Central

Destination

Strengths

  • Tight integration with Microsoft 365 (Outlook, Teams, SharePoint) for users already in the Microsoft ecosystem.
  • Includes Copilot AI, predictive analytics, and embedded Power BI dashboards at no additional cost in both license tiers.
  • Supports multiple companies within a single tenant for holding-company or multi-entity organizational structures.
  • Open REST API v2.0 with OAuth 2.0 authentication and data entity abstraction layer for developer-friendly integrations.
  • Strong partner ecosystem specializing in NAV-to-Business Central migrations provides implementation confidence for legacy upgrades.

Weaknesses

  • Named-user licensing model means every active user account requires a paid license — no concurrent access model to reduce costs for occasional users.
  • SaaS-only deployment means no on-premises option; organizations requiring full data residency control may not have viable alternatives within Microsoft's stack.
  • Manufacturing module (Production Orders, routing, work centers) is only available on Premium tier, pushing cost-sensitive manufacturers to higher-priced plans.
  • Customization and extension development requires AL language knowledge and developer licenses, limiting what power users can do without a partner engagement.
  • Global pricing increases effective October 2024 and again October 2025 after five years of stable pricing, creating budget uncertainty for existing customers.

Complexity grading

How hard is this migration?

Standard ERP migration. All 8 core objects map 1:1 between KeyedIn and Microsoft Dynamics 365 Business Central.

B

Overall complexity

Standard migration

Derived from compatibility, mapping clarity, API constraints, and data volume across KeyedIn and Microsoft Dynamics 365 Business Central.

  • Object compatibility

    A

    All 8 core objects map 1:1 between KeyedIn and Microsoft Dynamics 365 Business Central.

  • 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

    KeyedIn: Not publicly documented.

  • Data volume sensitivity

    B

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

Estimator

Estimate your KeyedIn to Microsoft Dynamics 365 Business Central 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 KeyedIn to Microsoft Dynamics 365 Business Central data migrations

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

Can't find your answer?

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

Book a free 30 minute consultation

Most migrations land between five and eight weeks for organizations with a managed export path, under 5,000 projects, 50,000 tasks, and a clean financial budget structure. On-premise Enterprise deployments with direct database access add two to three weeks of extraction tooling and validation, pushing timelines to ten to fourteen weeks. Migrations with complex multi-entity Dynamics 365 targets (Business Central plus PSA side-by-side), extensive resource allocation histories, or large financial budget planes with period breakdowns move to twelve to twenty weeks.

Adjacent paths

Related migrations to explore

Ready when you are

Move from KeyedIn.
Land in Microsoft Dynamics 365 Business Central, 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