---
title: "Drupal to Xperience by Kentico Migration | ClonePartner"
description: "Drupal to Xperience by Kentico: User → Custom Module Data (Object Instances): No direct user object; store via custom module. Engineer-led, zero downtime."
source: Drupal
target: Xperience by Kentico
canonical: "https://clonepartner.com/migrate/drupal-to-xperience-by-kentico"
---

# Drupal → Xperience by Kentico migration

Drupal to Xperience by Kentico migration — pages, media, and taxonomies moved with content fidelity.

## Entity mappings

- **Node (Content)** (Drupal) → **Pages (Web Pages)** (Xperience by Kentico)
- **Content Type (Node Type)** (Drupal) → **Content Types (Page Types)** (Xperience by Kentico)
- **User** (Drupal) → **Custom Module Data (Object Instances)** (Xperience by Kentico)
- **Taxonomy Term** (Drupal) → **Taxonomy Tags** (Xperience by Kentico)
- **Taxonomy Vocabulary** (Drupal) → **Taxonomies (Tag Groups)** (Xperience by Kentico)
- **Media** (Drupal) → **Media Library Files** (Xperience by Kentico)
- **File** (Drupal) → **Media Library Files** (Xperience by Kentico)
- **Role** (Drupal) → **Roles** (Xperience by Kentico)
- **Webform** (Drupal) → **Form Definitions** (Xperience by Kentico)
- **Webform Submission** (Drupal) → **Custom Module Data (Object Instances)** (Xperience by Kentico)
- **Paragraph** (Drupal) → **Content Items** (Xperience by Kentico)
- **Redirect** (Drupal) → **Custom Module / Redirect Handler / IIS/Web.config Rules** (Xperience by Kentico)
- **Path Alias** (Drupal) → **Web Page Items** (Xperience by Kentico)
- **Menu** (Drupal) → **Custom Module Data (Object Instances)** (Xperience by Kentico)

## Frequently asked questions

### What happens to Drupal users and passwords during the migration?

Drupal user accounts cannot be moved to Xperience by Kentico as a native user object; they are instead stored as custom module object instances, so a custom module must be defined in XbK before migration begins. More critically, Drupal password hashes cannot be exported or re-imported in any usable form, and XbK does not accept hashed passwords via its Management API. Every user will need to reset their password after the migration; ClonePartner migrates all other profile fields but cannot carry credentials across.

### How are Drupal Paragraphs handled in Xperience by Kentico, and will any data be lost?

Paragraphs do not have a direct equivalent in XbK and are mapped as reusable content items via a workaround. Because Drupal paragraph entities are tightly coupled to their parent nodes, they must be extracted and imported in the correct relational order—parent node first, then the paragraph content items—before the references can be re-linked. Field types from contributed Paragraph modules may not serialize correctly if the corresponding Drupal module is absent from the export environment, so we confirm module availability during scoping to avoid silent data loss.

### How are Drupal redirects migrated when Xperience by Kentico has no built-in redirect module?

XbK has no native redirect management UI equivalent to Drupal's Redirect module, so redirects require one of three approaches depending on how the team wants to manage them going forward. The most common path is exporting all rows from Drupal's redirect table (source path, destination path, status code) and converting them into IIS URL Rewrite rules in web.config or CDN-level rules in Cloudflare or Azure Front Door—no XbK customization needed and no runtime overhead. If editors need to manage redirects inside the CMS admin after launch, we can seed a custom XbK module object with SourcePath, TargetPath, StatusCode, and IsActive fields paired with ASP.NET Core middleware that intercepts requests before they reach the CMS router. ClonePartner migrates the redirect data; which approach is used depends on decisions your development team makes during the wider replatform project.

### Which Drupal API does ClonePartner use to read content, and what version or module do we need?

ClonePartner reads content through Drupal's JSON:API, which is included in Drupal core from version 8.7 onward and requires no additional module installation for that range. All JSON:API read operations require an authenticated user with appropriate permissions; anonymous read access is not sufficient for a full migration. Structural configuration entities—content types, field definitions, and Views—are not reliably portable via JSON:API and are best handled through Drupal's config sync YAML export; ClonePartner accounts for this split during scoping. If your site uses contributed modules with custom field types, those modules must be present and enabled in the source environment for fields to serialize correctly.

### Will migrated pages and content items be live in Xperience by Kentico immediately after import?

No. XbK defaults all imported content items to Draft state; nothing is publicly visible until a publish action is triggered. ClonePartner can trigger the publish call via the Management API as part of the migration run for items that were published in Drupal, but this must be agreed during scoping. Additionally, URL aliases from Drupal are carried over as path settings on the web page item level, so canonical URLs should be verified in XbK after import to confirm they resolved correctly.

### Do Drupal Webform submissions migrate into Xperience by Kentico, and how are they stored?

Webform definitions migrate directly to XbK Form Definitions, but submissions have no native REST endpoint in XbK and must be stored as custom module object instances via C# API or direct database access. This means a custom module class matching the submission schema must exist in the XbK codebase before ClonePartner can write submission records into it. Webform submission data from Drupal is read via the JSON:API or database query on the source side, then written into the custom module table on the XbK side; no submission data is discarded, but the receiving data structure must be built by your development team as part of the replatform work.

## Get a fixed-price quote

[Talk to an engineer](https://clonepartner.com/talk-to-us?duration=30&utm_source=xtoy&utm_medium=button&utm_campaign=demo_bookings&utm_content=cta_click&utm_term=demo_button_click) about your Drupal → Xperience by Kentico migration.
