This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Migration Process and Use Cases

This section has information about the migration process and common use cases.

1 - Migration Playbook

This article provides topics that should be covered in different phases of the Confluence to SharePoint migration.

Confluence to SharePoint Migration - General Guidance

Proof-of-Concept (PoC) Phase

  • Plan the transformation approach
    • Conduct migration-planning workshops (or another appropriate format)
    • Identify workloads
    • Engage external expertise if required
  • Familiarize the project team with SharePoint Online and Microsoft 365
    • These services can be overwhelming for both technical and non-technical stakeholders when newly introduced
    • Manually re-create representative Confluence workloads in SharePoint; involve key users to review the results
    • When assessing pages: experiment with SharePoint pages and web parts, attempt to reproduce selected Confluence pages, and note both possibilities and limitations (WikiTraccs is constrained by the same factors)
  • Evaluate migration / integration tooling
    • Assess “migrate versus integrate” for each workload
    • A first test migration with WikiTraccs will help determine whether automated tooling is appropriate

Decision Gate for WikiTraccs

  • Confirm which workloads will be migrated versus rebuilt manually in SharePoint Online, and where WikiTraccs adds value

Analysis Phase

  • Identify spaces to be migrated (recommendation: clean up first)
  • Map each Confluence space to its target SharePoint site
  • Quantify scope: number of spaces, pages, and attachments (count and size)
  • Decide whether permissions will be migrated (recommendation: do not migrate)
  • Map Confluence use cases and macros to SharePoint equivalents (see how WikiTraccs handles macros)
  • Nominate key users who will validate content during User-Acceptance Testing (UAT)
  • Define governance, compliance, and security requirements (site provisioning model, site lifecycle)
  • Establish communication and change-management plan (stakeholder matrix, training approach)

Test Migration Phase

  • Execute the test migration (see playbook below)
  • User-Acceptance Testing
    • Key users validate SharePoint pages generated by WikiTraccs
  • Refine settings, mappings, and - if needed - re-migrate selected content

Production Migration Phase

  • Execute the production migration (same playbook as test migration)
  • Monitor progress and address exceptions in real time

Hypercare Phase

  • Provide post-migration support and foster end-user adoption
  • Decommission Confluence, and archive migration artefacts

Migration Playbook for WikiTraccs

The following sections focus on using WikiTraccs as the migration tool.

Prepare the Confluence to SharePoint Migration

Grant Access to SharePoint Online

  • Register an Entra ID application so that WikiTraccs is allowed to create content in SharePoint, see Registering WikiTraccs as app in Entra ID
  • Install third-party apps in SharePoint to provide replacements for Confluence macros (have a look at WikiPakk, the SharePoint page tree)
  • Prepare a SharePoint target environment for migration tests
    • Option: Create and use a developer tenant by Microsoft
    • Option: Create and use a test tenant
    • Option: Create and use test sites on the production tenant
  • Provide a migration account for SharePoint Online (test environment, production environment)
  • Create one WikiTraccs site to hold metadata around the migration (“engine room” for WikiTraccs)
  • Create target sites in SharePoint where migrated pages will be created
    • Configure permissions of those sites
    • Make the migration account for SharePoint site collection administrator

Grant Access to Confluence

  • Provide a migration account for Confluence (test environment, production environment)
    • Note: As of the time of this writing WikiTraccs only reads in the source Confluence environment; so it should be safe to use the production environment for tests - WikiTraccs behaves like a user that clicks really fast
  • Set the language of the Confluence migration account
    • This defines the language that macro snapshots appear in, like the Attachments macro (see this comment on how to set the language)
  • Set high rate limits for Confluence to not get throttled by Confluence during the migration

Ensure Prerequisites for and Configure WikiTraccs

Other

Run the Confluence to SharePoint Migration Pass 1 - Content and Attachments

(Optional) Run the Confluence to SharePoint Migration Pass 2 - Author & Editor Metadata

  • Map Confluence users and groups to Entra ID principals
    • Start the update migration run (migration mode “update ‘created by’ and ‘modified by’”)
  • Optional: Configure permission mapping
    • Start the permission migration run (migration mode “update permissions”)
    • note: migrating permissions is not recommended due to technical differences in how Confluence and SharePoint handle permissions

Evaluate the Results of the Confluence to SharePoint Migration

  • Check the migration results
  • Either clean up or manually migrate Confluence pages that have more than 2 MB of text content or have overly long titles, see the Known Issues page for details.
  • Check feedback from key users
  • Search the documentation and get in touch if something seems not right
  • Enable Page Refinement mode in WikiTraccs (v1.28+) to analyze and update already migrated pages.
  • Start with Log Broken Links to create a report of links that point to non-existing SharePoint pages. See Log Broken Links.
  • If the report looks reasonable, run Fix Broken Links to automatically replace those links with the correct SharePoint URLs. See Fix Broken Links.

Repeat as Needed

Repeat the migration as needed. You can delete any SharePoint page that has been migrated from Confluence to SharePoint and restart the migration. Missing pages will be detected and remigrated.

Clean Up

Proceed with the following steps after having finished the migration:

  • Delete the locally stored attachment files that WikiTraccs downloaded during the migration; you can find those attachments in the attachment registry
  • Archive the WikiTraccs site
    • Don’t delete the site; restrict access instead
    • WikiTraccs stores the raw storage format XML for each migrated Confluence page, so it’s recommended to keep the site around in case you need to check or further process raw page contents at a later time

Decision Overview

The following table summarizes key decisions to be made during a Confluence-to-SharePoint migration, recommendations, and where you need to take action.

#Decision TopicRecommendationClient Action RequiredReference
1Hardware & Software PrerequisitesMeet minimum specs.Validate workstation(s).Prerequisites
2Network Endpoints / Locked-Down EnvironmentEnsure outbound connectivity or offline setup.Open endpoints or use alternative download method.Locked-Down Environments
3Confluence Authentication MethodInteractive Login preferred; Personal Token if necessary (Confluence 7.9+).Choose authentication method based on environment constraints.Authentication Overview
4Selector → Site MappingComplete before migration to ensure valid link transformation.Prepare and maintain the space inventory mapping.Selector-to-Site Mapping
5Permission MigrationNo - differences between Confluence and SharePoint often make a 1-to-1 copy impractical.Decide Yes/No; configure principal mapping if “Yes” and run second pass.Mapping Principals and Migrating Permissions
6Confluence Macro ReviewReview macro usage and transformation approach.Identify macros in use; plan transformation strategy.Known Confluence Macros
7Blog Post MigrationYes, if blog content is valuable; No if not needed.Decide Yes/No; toggle setting.Settings dialog (in-app)
8Comments Migration (Footer Comments)Yes; disable if page size issues.Decide Yes/No; toggle setting.Settings dialog (in-app)
9Download External ImagesYes; requires internet access.Decide Yes/No; toggle setting.External Images
10Generate Draw.io Preview ImagesYes - improves diagram visibility; requires Chrome WebDriver & internet access.Decide Yes/No; toggle setting; ensure prerequisites.Draw.io Preview Images
11Whiteboard Migration (Confluence Cloud)Yes - export as image (experimental).Decide Yes/No; toggle setting.Whiteboard Migration
12Historic Page Version MigrationNo - not supported by WikiTraccs due to Confluence and SharePoint limitations.Acknowledge limitation; decide on manual export if needed.Historic Versions
13Third-Party SharePoint Apps (e.g., WikiPakk)Install if macro equivalents are needed.Evaluate and install apps.WikiPakk Page Tree

2 - Recipes

This article’s children provide recipes for common situations.

2.1 - Confluence Macro Usage

This article explains how to determine which Confluence macros are in use and how frequently they are used.

In the Confluence Administration, in the vertical left menu, click Macro Usage.

This will open a page that displays which macros are in use and the number of pages on which they appear:

The link to this page is admin/pluginusage.action (on-premises) or admin/macro-usage (Cloud).

Clicking on any of the macro names opens a search results page showing pages that use this macro.

The link for this kind of macro search is dosearchsite.action?cql=macro = "aura-tab" (here searching for the aura-tab macro).

Feel free to provide me with this list, e.g. for a demo or just for informational purposes.

2.2 - Getting a list of pages per space [on-premises]

This article contains information on how to get the pages per space for an on-premises Confluence instance.

Getting pages per space

This script returns a list of page metadata like content ID and title.

Run the following SQL script on the Confluence database. IMPORTANT: Replace MYSPACEKEY with the key of the space you want to get the page info for:

select contentid, contenttype, title, content_status, spacekey
from content left join spaces on content.spaceid = spaces.spaceid
where (contenttype='PAGE' or contenttype='BLOGPOST') and prevver is null and content_status='current' and spacekey='MYSPACEKEY';

Note: the space key is case SeNsItIvE.

Getting the page count per space

This script returns the page count for a space.

Run the following SQL script on the Confluence database. IMPORTANT: Replace MYSPACEKEY with the key of the space you want to get the page count for:

select count(*)
from content left join spaces on content.spaceid = spaces.spaceid
where (contenttype='PAGE' or contenttype='BLOGPOST') and prevver is null and content_status='current' and spacekey='MYSPACEKEY';

Note: the space key is case SeNsItIvE.

Getting the most recent page change per space

This script returns the timestamp of the most recently modified page or blog post for every space.

Run the following SQL script on the Confluence database.

SELECT
    spaces.spacekey,
    MAX(content.lastmoddate) AS most_recent_change_date
FROM
    content
LEFT JOIN
    spaces ON content.spaceid = spaces.spaceid
WHERE
    (content.contenttype = 'PAGE' OR content.contenttype = 'BLOGPOST')
    AND content.prevver IS NULL
    AND content.content_status = 'current'
GROUP BY
    spaces.spacekey
ORDER BY
    most_recent_change_date DESC;

2.3 - Find out why some pages won't migrate

This article contains information about possible causes of pages not migrating, how to find out more about those pages and specific issues, and how to solve those issues.

Sample Situation

You have migrated a Confluence space that contains 3000 pages. Yet, when looking at the target site’s Site Pages library, you can only see 2900 pages. That’s 100 pages missing.

What’s up with those 100 missing pages? Why won’t they migrate?

What are possible root causes?

There are many reasons why pages fail to migrate. Some of them are temporary.

Here is a list of common issues:

  • Connection Issues
    • when downloading content from Confluence, there was a service or connection issue
    • when creating a page in SharePoint Online, there was a service or connection issue and page or attachment creation failed
  • Not enough Disk Space
    • there is not enough disk space for WikiTraccs to download all page attachments
  • “Interesting” Page Content
    • a page contains content that WikiTraccs has never seen before and that it can’t handle well

WikiTraccs has mechanisms built-in to deal with some of those issues. For example, attachment upload and SharePoint page creation will be retried a couple of times to work around temporary connection issues. Missing disk space will cause the migration to be paused, until space is available again.

What to try first?

The first thing you should do is run the migration again, until the number of migrated pages stabilizes.

After the first migration run, 100 pages might be missing (for example due to unstable networking conditions). The second migration run might migrate another 50 pages. And the third migration run doesn’t change that.

Now what you are dealing with is the 50 pages that are still missing.

How to diagnose this?

The first thing we need is to look at the progress log files: Using progress log files to get insights.

Use the __30-aggregated-info progress log file to learn about the expected number of pages and the missing number of pages.

Use the __10-not-yet-migrated-pages progress log file to learn which pages are missing. This file contains page IDs that can be used to look up those pages in the common log files.

Take note that new progress log files are created with each migration run and that each space (or CQL selector) gets its own set of progress log files. So make sure to look at the most recent ones.

The ultimate tool to diagnosing why a page didn’t migrate are the common log files: Common log files.

Using the page IDs from the __10-not-yet-migrated-pages progress log file, we can look up corresponding log messages in the common log file(s) of a migration run.

Ultimately, the common log files should tell what was going on with those pages.

How to solve this?

Sometimes the common log files show something obvious, like a system being down, an authentication failing, or connection errors. This might help you inferring solutions.

But often it’s easier to send me the log files via email, for further diagnosis: [email protected].

Make sure to send the progress log files and also the common log files for a migration run.

2.4 - How to Make Sure the Space Inventory Shows All Spaces

This article contains information about possible causes of pages not migrating, how to find out more about those pages and specific issues, and how to solve those issues.

Sample Situation

You open the Confluence Space Inventory, which is a SharePoint list that contains basic information about all Confluence spaces.

The Space Inventory list is created by WikiTraccs and populated with rows when you click the Update Space Inventory and WikiTraccs Site button:

Click to update the Space Inventory.

Let’s say you did this, look at the Space Inventory, and information about some spaces is missing.

What are possible root causes?

The most common causes are permission-related; the migration account might not be allowed to see all spaces.

Other possible causes include:

  • there have been new spaces created since the last update of the Space Inventory
  • you are looking at the wrong (outdated) SharePoint site and Space Inventory list, which can happen when experimenting and handling a lot of test sites (note: yes, this happened)
  • space permissions or migration user permissions changed since the last update of the Space Inventory

What to try first?

You should update the Space Inventory.

When WikiTraccs shows the login dialog for Confluence, make sure to log in to Confluence with an account that is allowed to access all spaces. Or, if you are using token authentication, make sure to use the Personal Access Token of a migration user that is allowed to see all spaces.

Update the Space Inventory by clicking the Update Space Inventory and WikiTraccs Site button. You can click that button as often as you want, WikiTraccs will check every time if your spaces are present.

How to detect this situation in the first place?

Look up the Confluence space count in the Confluence administration and compare this number with the number of rows in the Space Inventory list. They should match.

Note: WikiTraccs adds information about both current and archived spaces to the Space Inventory.