---
schema_version: "1"
id: 105e70b4d4ee8447ff67954635e57dcb051a45a9df659d23c97eb38e9bf235b7
title: Lightning Knowledge Migration Tool Features and Considerations
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/service/264-0-0/knowledge_migration_tool_learn.md
canonical_url: https://help.salesforce.com/s/articleView?id=service.knowledge_migration_tool_learn.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 95ee8abc71dc3fa2599acc2962017dc3fdce7b52cc7bdbb9f3a41563d213bd5d
description: Before planning and performing the migration with the Lightning Knowledge Migration Tool, learn about the differences between Classic Knowledge and Lightning Knowledge. Understand the limits of the migration tool and Classic features that either aren’t supported or work differently in Lightning Knowledge.
products:
  - Service Cloud
release: "264"
---
# Lightning Knowledge Migration Tool Features and Considerations

Before planning and performing the migration with the Lightning Knowledge Migration Tool, learn about the differences between Classic Knowledge and Lightning Knowledge. Understand the limits of the migration tool and Classic features that either aren’t supported or work differently in Lightning Knowledge.

### Required Editions

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small edition"><colgroup><col></colgroup><tbody><tr class=""><td class="slds-cell-wrap" style="vertical-align:top;">Available in Salesforce Classic and Lightning Experience. <a href="https://help.salesforce.com/s/articleView?id=service.service_editions_reference.htm&amp;language=en_US" target="_blank">View supported editions</a>.</td></tr></tbody></table>

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support-264-0-0-production-enus/dd14551c-a772-4db6-9a1d-d84df8df2980/images/icon_note.png)

Note The migration and undo migration process can take a few hours or days to complete. To reduce wait times, schedule a migration outside of major Salesforce release dates.

Key things to note about the post-migration Lightning Knowledge data structure:

- Record Types —The migration tool maps Classic Knowledge article types to record types and consolidates fields in one Lightning Knowledge object.
- Files—Files from custom file fields in Classic Knowledge articles are moved to the standard Files object. After migration, view and attach files in the Files related list.
- Permissions—User profiles are granted new authoring permissions in user profiles or permission sets, and no longer use article actions with public groups.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support-264-0-0-production-enus/dd14551c-a772-4db6-9a1d-d84df8df2980/images/icon_note.png)

Note Admins must manually assign permissions. Changing from Article Actions with Public Groups to using profile permissions or permission sets is not part of the migration tool.

Let’s compare Classic Knowledge to Lightning Knowledge:

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small " summary="Classic Knowledge Versus Lightning Knowledge">
      <caption>Classic Knowledge Versus Lightning Knowledge</caption>
      <colgroup>
        <col style="width:33.33333333333333%">
        <col style="width:33.33333333333333%">
        <col style="width:33.33333333333333%">
      </colgroup>
      <thead class="slds-text-title_caps ">
        <tr class="">
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d94731e86">Feature</th>
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d94731e89">Classic Knowledge</th>
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d94731e92">Lightning Knowledge</th>
        </tr>
      </thead>
      <tbody>
        <tr class="">
          <td data-label="Feature" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e86 ">Access &amp; Permissions</td>

          <td data-label="Classic Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e89 ">
            <ul>
              <li>CRUD per article type</li>

              <li>Page layouts</li>

              <li>Authoring permissions with Article Actions per Public Group</li>

            </ul>
          </td>

          <td data-label="Lightning Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e92 ">
            <ul>
              <li>Unified CRUD</li>

              <li>Page layouts</li>

              <li>Authoring permissions on user profiles or permission sets</li>

            </ul>
          </td>

        </tr>
        <tr class="">
          <td data-label="Feature" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e86 ">Approvals &amp; Workflow</td>

          <td data-label="Classic Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e89 ">Per article type</td>

          <td data-label="Lightning Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e92 ">
            <ul>
              <li>All record types</li>

              <li>Per record type</li>

            </ul>
          </td>

        </tr>
        <tr class="">
          <td data-label="Feature" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e86 ">Authoring</td>

          <td data-label="Classic Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e89 ">Custom Article Management tab</td>

          <td data-label="Lightning Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e92 ">Standard Actions (admin can control in page layout)</td>

        </tr>
        <tr class="">
          <td data-label="Feature" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e86 ">Data model</td>

          <td data-label="Classic Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e89 ">Custom article types</td>

          <td data-label="Lightning Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e92 ">Standard record types</td>

        </tr>
        <tr class="">
          <td data-label="Feature" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e86 ">File Attachment</td>

          <td data-label="Classic Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e89 ">Custom file fields (5 max)</td>

          <td data-label="Lightning Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e92 ">
            <ul>
              <li>Standard Files component</li>

              <li>Related list</li>

            </ul>
          </td>

        </tr>
        <tr class="">
          <td data-label="Feature" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e86 ">Object Home</td>

          <td data-label="Classic Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e89 ">
            <ul>
              <li>Article Management tabs</li>

              <li>Knowledge One</li>

            </ul>
          </td>

          <td data-label="Lightning Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e92 ">Unified standard object home with list views</td>

        </tr>
        <tr class="">
          <td data-label="Feature" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e86 ">Page layouts</td>

          <td data-label="Classic Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e89 ">
            <ul>
              <li>Fields only</li>

              <li>Per article type and user profile</li>

            </ul>
          </td>

          <td data-label="Lightning Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e92 ">
            <ul>
              <li>Fields, actions, and related lists</li>

              <li>Per record type and user profile</li>

            </ul>
          </td>

        </tr>
        <tr class="">
          <td data-label="Feature" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e86 ">Record Home</td>

          <td data-label="Classic Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e89 ">Custom record home (static)</td>

          <td data-label="Lightning Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e92 ">Standard record home (configurable with page layouts and App Builder)</td>

        </tr>
        <tr class="">
          <td data-label="Feature" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e86 ">Search</td>

          <td data-label="Classic Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e89 ">Custom Knowledge search</td>

          <td data-label="Lightning Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e92 ">Standard Search: Knowledge in Global Search</td>

        </tr>
        <tr class="">
          <td data-label="Feature" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e86 ">Sharing</td>

          <td data-label="Classic Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e89 ">Article access by data category</td>

          <td data-label="Lightning Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e92 ">Standard Salesforce sharing also available</td>

        </tr>
        <tr class="">
          <td data-label="Feature" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e86 ">Validation Rules</td>

          <td data-label="Classic Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e89 ">Per article type</td>

          <td data-label="Lightning Knowledge" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e92 ">
            <ul>
              <li>All record types</li>

              <li>Per record type</li>

            </ul>
          </td>

        </tr>
      </tbody>
    </table>

As part of the migration plan, we recommend that Knowledge admins become familiar with all the limitations. Before performing sandbox and production migrations, assess whether these items pertain to your org’s implementation of Knowledge and prepare accordingly.

The following items do not migrate from Classic into Lightning Knowledge:

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small " summary="Limitations in the Lightning Knowledge Migration Tool ">
      <caption>Limitations in the Lightning Knowledge Migration Tool </caption>
      <colgroup>
        <col style="width:50%">
        <col style="width:50%">
      </colgroup>
      <thead class="slds-text-title_caps ">
        <tr class="">
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d94731e334">Item</th>
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d94731e337">Description</th>
        </tr>
      </thead>
      <tbody>
        <tr class="">
          <td data-label="Item" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e334 ">Article Number</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e337 ">For orgs with multiple article types, article numbers change during migration. Because
            Article Number is a standard auto-number field, you can’t retain the numbers when migrating
            to Lightning Knowledge. </td>

        </tr>
        <tr class="">
          <td data-label="Item" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e334 ">Article Status</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e337 ">
            <p>The following are removed during migration: </p>
            <ul>
              <li>Articles with a Scheduled for Publish status and a past due date</li>
              <li>Articles with a Scheduled for Archive status and a past due date</li>
            </ul>
            <p style="margin-bottom:0;">Publish scheduled articles and archive scheduled articles before starting the
              migration.</p>
          </td>

        </tr>
        <tr class="">
          <td data-label="Item" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e334 ">Automated Article Feed Posts</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e337 ">Article Feed Posts that show article changes (published, edited). </td>

        </tr>
        <tr class="">
          <td data-label="Item" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e334 ">
            <var>ContentPublication</var>
          </td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e337 ">Due to the <var>ContentPublication</var> limit (how many
            <var>ContentVersion</var> objects can be created per day), the migration tool
            supports only orgs with 200,000 or fewer custom files. Contact Salesforce support if your org
            has more than 200,000 files.
          </td>

        </tr>
        <tr class="">
          <td data-label="Item" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e334 "><var>ContentVersion</var>, Physical Delete</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e337 ">Due to the nature of <var>ContentBody</var> reuse, if an org performs an UNDO,
            the <var>ContentVersion</var> rows must be physically deleted before migration.
            Because physical delete runs as a cron job during off hours, the overall UNDO process can
            take several days. </td>

        </tr>
        <tr class="">
          <td data-label="Item" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e334 ">Field Tracking Limits</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e337 ">
            <p>Field histories migrate when field tracking is enabled. If the total number of fields
              with tracking enabled across all Article Types exceeds the limit, you see an error message,
              and the migration doesn’t start. To make sure that the total is below the threshold, remove
              the tracking on some fields , and retry the migration. </p>
            <p style="margin-bottom:0;">The default limit for field
              tracking is 20 fields. If you need to raise this limit, contact your Salesforce
              representative.</p>
          </td>

        </tr>
        <tr class="">
          <td data-label="Item" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e334 ">Soft Deleted Records</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e337 "> Soft-deleted records are not migrated from Classic. </td>

        </tr>
        <tr class="">
          <td data-label="Item" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e334 ">Undeployed Article Types</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e337 ">Undeployed article types are removed during migration. Deploy article types you need
            and delete those you don't.</td>

        </tr>
        <tr class="">
          <td data-label="Item" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e334 ">URL Redirect</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e337 ">
            <p>After migration, article URLs in these two standard formats redirect to the appropriate
              article in Lightning Knowledge. </p>
            <ul>
              <li><code>https://<var>mySalesforceDomain</var>/<var>knowledgeArticleId</var></code>
                <p>For
                  example, <code>https://cunning-bear.com/kA0RM0000004gTt</code></p>
              </li>
              <li><code>https://<var>mySalesforceDomain</var>/articles/<var>xx__XX</var>/<var>articleTypeName</var>/<var>URLname</var></code>
                <p>For
                  example, <code>https://cunning-bear.com/articles/en_US/FAQ/how-to-create-accounts</code></p>
              </li>
            </ul>
            <p style="margin-bottom:0;">After migration, Smart Links automatically redirect to the correct environment. The
              URL redirect behavior varies based on the environment. For information about URL redirects,
              see <a href="https://help.salesforce.com/s/articleView?id=service.knowledge_smart_link_targets.htm&amp;release=264.0.0&amp;type=5" title="You can specify how smart links open using the different types of target options. Understand the behavior of each option and how smart links created in Salesforce Classic behave in Lightning Experience.">Target
                Behavior for Smart Links</a>.</p>
          </td>

        </tr>
        <tr class="">
          <td data-label="Item" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e334 ">Workflow and Approval Processes</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e337 "> Approval process history doesn’t migrate to Lightning Knowledge. </td>

        </tr>
      </tbody>
    </table> <table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small " summary="Metadata That Does Not Migrate from Classic into Lightning Knowledge">
      <caption>Metadata That Does Not Migrate from Classic into Lightning Knowledge</caption>
      <colgroup>
        <col style="width:50%">
        <col style="width:50%">
      </colgroup>
      <thead class="slds-text-title_caps ">
        <tr class="">
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d94731e518">Metadata Types</th>
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d94731e521">Description</th>
        </tr>
      </thead>
      <tbody>
        <tr class="">
          <td data-label="Metadata Types" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e518 ">Article Type Metadata</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e521 ">
            <ul>
              <li>CRUD</li>

              <li>Validation rules</li>

              <li>Communications channel mappings</li>

              <li>Field sets</li>

              <li>Compact layouts</li>

              <li>Audit trails</li>

            </ul>
          </td>

        </tr>
        <tr class="">
          <td data-label="Metadata Types" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e518 ">Feed Tracking</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e521 ">Feed Tracking does not migrate to Lightning unless an old article type with feed
            tracking is enabled.</td>

        </tr>
        <tr class="">
          <td data-label="Metadata Types" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e518 ">Field Metadata</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e521 ">
            <ul>
              <li>Formula fields</li>

              <li>Required field flags in the field definition</li>

              <li>Field-level security</li>

            </ul>
          </td>

        </tr>
        <tr class="">
          <td data-label="Metadata Types" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e518 ">Fields Sets</td>

          <td data-label="Description" class="slds-cell-wrap" style="vertical-align:top;" headers="d94731e521 ">Code that uses field sets</td>

        </tr>
      </tbody>
    </table>

Customizations based on article types don’t work after migration. In orgs with multiple article types, you must update customizations to use the new knowledge object. Consider these customizations:

- SOQL that queries the concrete entity name
- Visualforce pages that refer to old article types
- Code that uses field sets
- Apex code that refers to old article types
- Custom code using API calls referencing article types
- Customer application logic, such as current API code
- Some AppExchange packages
- Validation rules
- CRUD (per Article Type)
- Applications that use metadata APIs on field sets, compact layouts, and so forth
- Reports that point to old article types

![Important](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support-264-0-0-production-enus/dd14551c-a772-4db6-9a1d-d84df8df2980/images/icon_important.png)

Important The Lightning Knowledge Migration Tool helps you migrate to Lightning Knowledge, but it doesn’t guarantee that all your data migrates. For instance, corrupt data isn’t migrated, and you might not be aware of which data has minor corruptions. It’s important to verify the migrated data and assess the results during sandbox testing and production migration. Use the migration results report to identify which articles or files didn’t migrate, and assess whether the unmigrated data is blocking the migration.

- Although your sandbox org might contain corrupt data, your production org data might not be corrupt, or might have different corrupt data.
- If a record doesn’t load properly in either the Salesforce Classic or Lightning Knowledge interface, it can be due to data corruption.

![Note](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-service-support-264-0-0-production-enus/dd14551c-a772-4db6-9a1d-d84df8df2980/images/icon_note.png)

Note

- You can’t compare the article count from the migration summary page with SOQL results using `COUNT()`. Because of limitations with Workbench, SOQL queries using `COUNT()` don't return the same list of articles, article versions, version histories, and vote and view statistics.
- In orgs with multiple article types, the size of your knowledge base temporarily doubles during migration. Your File and Data storage limits are temporarily doubled when migration starts, and reset when you cancel or accept the migration results. During this period, both the Classic and Lightning Knowledge versions of each article are present in your org.

Now that you’ve learned about the Lightning Knowledge Migration Tool, it’s time to [plan and sandbox test your migration](https://help.salesforce.com/s/articleView?id=service.knowledge_migration_tool_plan.htm&release=264.0.0&type=5 "If you helped build your Classic knowledge base, you know that planning is critical. In fact, planning is the most important part of migrating to Lightning Knowledge.").

#### See Also

- [Sharing Considerations for Lightning Knowledge](https://help.salesforce.com/s/articleView?id=service.knowledge_sharing_considerations.htm&release=264.0.0&type=5 "Sharing gives you control and flexibility to set access to articles with organization-wide defaults, owner-based sharing, and criteria-based rules. Sharing is just one piece of the puzzle. It works with object permissions, app permission such as viewing draft articles, administrator access, and whether the article is available internally, externally, or publicly. Keep these considerations in mind when you plan your sharing model.")