Home > Appendices > Configurations for Customized Features > Customized Features for SharePoint Online/OneDrive Migration
Export to PDFFly provides multiple customized features for SharePoint Online/OneDrive Migration. Refer to the following information to use the features:
- **AllowFolderStructureChange** – After a folder (A) is newly created in the destination during the migration, you renamed the folder (renamed to B) or move the folder to its parent folder or subfolder, and created a new folder with the same name as the original folder (new folder named A). If you run a new migration job to migrate the source data, the structure of the renamed folder (B) and newly created folder (A) may be different from the source structure after the migration.
- If you want to fix the structure of the renamed folder (B) and newly created folder (A) in the destination to the same structure as the source, you can add the **AllowFolderStructureChange=true** string to the **Customized features** section to enable this feature and rerun a full migration job.
- **AllowUseNotExistChoice** – Define whether to add the Choice column value to the migrated object in the destination, when the value meets both two conditions below:
- The Choice column value of the source object is deleted in column settings.
- No column value configured for the destination Choice column in column settings is the same as the source deleted column value.
By default, this feature is disabled. Fly will not add the Choice column value to the migrated object in the destination. The value in the Choice column of the migrated object in the destination will be left blank. A warning message will be reported for the object to indicate that the object has been migrated, but errors exist in the object's settings.
If you want to add the Choice column value to the migrated object in the destination, you can add the **AllowUseNotExistChoice=true** string to the **Customized features** section to enable this feature.
- **EnsureUserWithLoginName** – Define whether to use the user principal name (UPN) to map users that are not included in user mappings when all user property options are disabled in the migration policy. By default, Fly will use the UPN to map these users to ensure they can be successfully migrated.
- If you do not want to use the UPN to map these users, you can add the **EnsureUserWithLoginName=false** string to disable the feature.
- **ExcludeWorkflowRelated** – Define the migration scope of the workflow related lists, including workflow history lists and workflow task lists, and the content of workflow related lists in the migration. (The content of workflow related lists includes the content related to the workflows and the content that does not relate to the workflows.)
By default, Fly will not migrate the workflow related lists to improve the migration performance.
If you want to migrate the workflow related lists and the content of workflow related lists, you can add the **ExcludeWorkflowRelated=0** string to the **Customized features** section. The migration performance will slow down.
> ***Note**: Data in workflow history lists cannot be migrated.
You can also add the **ExcludeWorkflowRelated=2** string to only migrate the workflow related lists and the content that does not relate to the workflows in the lists. The content related to the workflows in the lists will not be migrated, and the migration performance will be improved.
If you have configured any of the feature string values above in previous migration jobs, and do not want to migrate the workflow related lists in the current migration job, you can change the feature string value to **1**.
- **GetRetentionLabelRetryDelaySeconds** – Define the waiting time for Fly to retrieve the retention label in the destination tenant when you migrate source objects with retention labels applied to a newly created destination site collection.
By default, Fly will retrieve retention labels 3 times and wait for 3 seconds each time. If the retention label is not retrieved in 3 times, the object can be migrated, but the migration of the retention label will fail.
If you want to update the waiting time, add the **GetRetentionLabelRetryDelaySeconds=" "** string and enter your desired time as the value. The unit is Second. For example, **GetRetentionLabelRetryDelaySeconds=10**.
- **IsAutoMapAssociateGroupUnderWebLevel** (Only available for SharePoint Online Migration) – Define whether to use the SharePoint group type to map Owners, Members, and Visitors groups of source sites, lists, and folders to their corresponding destination groups. This feature is not available for mappings of site collection to site collection.
By default, this feature is disabled. These source groups will be mapped to the corresponding destination groups based on their display names. If there are no groups with the same display name as the source groups in the destination, the source groups will be created as new groups in the destination.
If you want to use the SharePoint group type to map these groups to corresponding destination groups, you can add the **IsAutoMapAssociateGroupUnderWebLevel=true** string to the **Customized features** section to enable this feature. If there are groups with the same display name as the source groups in the destination, Fly will map these source groups to the destination based on their display names. If there are no groups with the same display name, Fly will map these source groups to the destination based on their group types.
- **IsBackupMeetingRecords** – Define whether to migrate **Recordings** folder that stores the meeting records. By default, the **Recordings** folder will not be migrated.
- If you want to migrate the folder, you can add the **IsBackupMeetingRecords=true** string to the **Customized features** section to disable this feature.
- **IsCheckAdminUrl** – Define whether to check if the domain names of the source and destination site collection URLs in project mappings are the same as the SharePoint central admin URL configured in the service account or app profile. This is to verify whether the source and destination site collections are in the same tenant as the service account or app profile.
By default, the feature is enabled. Fly will make the check in the migration. If any site collection is not in the same tenant as the service account or app profile, the migration job will fail.
If you do not want to make the check in the migration, you can add the **IsCheckAdminUrl=false** string to the **Customized features** section to disable this feature.
- **IsFindLabelWhenNotConfigLabelMapping** – Define whether to apply a sensitivity label with the same name as the source sensitivity label to the destination object when the sensitivity label (Label A) applied to the source object does not match the source sensitivity label configured in the selected label mapping. By default, Fly will apply a sensitivity label with the same name as the source sensitivity label to the destination object in this case.
If you do not want to apply a sensitivity label with the same name as the source sensitivity label to the destination object in the above case, you can add the **IsFindLabelWhenNotConfigLabelMapping=false** string to the **Customized features** section to disable this feature. Then, the migration of all objects with the sensitivity label (Label A) applied will fail.
- **IsIgnoreRestoreImageTagsValueCauseItemError** – Define whether to ignore the **SP-RestoreImageTagsValueCauseItemError** error code in the following situation:
If the **Image tags** column of source object has values, but no **Image Tags** column exists in the destination, the column will be skipped in the migration since the column cannot be created in the destination by Fly. By default, Fly will not only report an error code to this column, but also report the **SP-RestoreImageTagsValueCauseItemError** error code to the object to indicate that object has been migrated, but the **Image Tags** column value of the object failed in the migration.
If you want to ignore the **SP-RestoreImageTagsValueCauseItemError** error code in the migration report, you can add the **IsIgnoreRestoreImageTagsValueCauseItemError=true** string in the **Customized feature** section. After migration, Fly will only report an error code to the source column.
- **IsKeepSourceAssociateGroupTitle** (Only available for SharePoint Online Migration) – Define whether to keep the titles of Owners, Members, and Visitors groups of source site collections, sites, lists, and folders to the destination during the migration.
By default, this feature is disabled. The titles of these source groups will be replaced by the titles of corresponding destination groups.
If you want to keep the titles of these source groups to the destination, you can add the **IsKeepSourceAssociateGroupTitle=true** string to the **Customized features** section to enable this feature.
- **IsKeepSourceListTitle** – If the destination list configured in the project mapping does not exist, Fly will directly create the configured destination list as a new one. This feature is to define whether to use the source list name as the destination newly created list name.
By default, this feature is disabled. If the destination list does not exist, Fly will use the list name in the configured destination list URL as the destination newly created list name.
If you want to use the source list name as the destination newly created list name, you can add the **IsKeepSourceListTitle=true** string to the **Customized features** section to enable this feature.
- **IsMigrateMIPProtectionTemplateAsLabel** – Define whether to migrate the protection template applied to files as sensitivity labels. By default, this feature is disabled. The protection template applied to files will not be migrated.
If you want to migrate the protection template applied to files based on the option you selected in the **Select how to manage sensitivity labels of** **files** section of migration policy, you can add the **IsMigrateMIPProtectionTemplateAsLabel=true** string to the **Customized features** section to enable this feature.
- **IsMigrateRetentionLabel** – Define whether to migrate the retention labels of folders/files/items to the migration. By default, if the objects are applied with retention labels, Fly will migrate the objects together with the retention labels applied to them.
If you do not want to migrate the retention labels applied to the objects, you can add the **IsMigrateRetentionLabel=false** string in the **Customized feature** section.
- **IsReMigrateUsePlaceholderObject** – Source objects have been migrated and some user/group properties of these objects have been replaced with a place holder account in the destination. After you configure user mappings for these users/groups, if you run an incremental migration job to replace the destination place holder account with active destination users or groups, the objects cannot be migrated since there are no updates on them.
If you want to migrate these objects, you can add the **IsReMigrateUsePlaceholderObject=true** string to the **Customized features** section to enable this feature.
- **IsRepairExportedManifestFiles** – Define whether to migrate unconventional data caused by issues such as poor network or data itself. For example, the data that has two same versions in the manifest. By default, Fly will try to fix the data and migrate the data to the destination.
- We recommend you keep this feature enabled. If you do not want to fix and migrate the data, you can add the **IsRepairExportedManifestFiles=false** string to the **Customized features** section to disable this feature. The migration of these unconventional data will fail.
- **IsRestoreImageTags** (Only available for SharePoint Online Migration) – Define whether to migrate values in the **Image Tags** column of source images. By default, Fly will not migrate values in the **Image Tags** column of source images.
- If you want to migrate values in the **Image Tags** column of source images, you can add the **IsRestoreImageTags=true** string to the **Customized features** section to enable this feature.
- **IsSkipGroupHomePage** (Only available for SharePoint Online Migration) – Define whether to migrate the home pages of site collections associated with Microsoft 365 Groups.
By default, the feature is enabled. The home pages of site collections associated with Microsoft 365 Groups will be skipped and web parts of these home pages will not be migrated to the destination.
If you want to migrate the home pages of site collections associated with Microsoft 365 Groups, you can add the **IsSkipGroupHomePage=false** string to the **Customized features** section to disable this feature. Note that after the migration, when you click **New** on the home page in the destination, some features will not display.
- **IsSkipMasterPageLibrary** – Define whether to migrate the list template of the **Master** **Page** type to the destination. By default, the templates will be skipped in the migration.
If you want to migrate the templates, you can add the **IsSkipMasterPageLibrary=false** string in the **Customized feature** section.
- **IsSkipOneDriveAnyoneSharedLink** – Define whether to migrate the links shared with anyone in OneDrive sites to the destination. By default, the links shared with anyone in OneDrive sites will be migrated to the destination, and an email will be sent to the owner of the OneDrive in the destination.
If you do not want to migrate the links shared with anyone, you can add the **IsSkipOneDriveAnyoneSharedLink=true** string in the **Customized feature** section.
IsSkipPreservationHoldLibrary – Define whether to try to migrate the Preservation Hold Library. By default, the library will be skipped in the migration.
If you do want to migrate the library, you can add the IsSkipPreservationHoldLibrary=false in the Customized feature section.
*Note: We do not recommend you migrate the Preservation Hold Library.
IsTrimLabelNameSpace – Define whether to remove the space at the beginning and end of sensitivity labels in the source and destination during the migration. By default, the space will not be removed.
If you want to remove the space at the beginning and end of sensitivity labels during the migration, you can add the IsTrimLabelNameSpace=true string in the Customized feature section.
PreserveNullValue – Define whether to keep empty for the column values of migrated folder/files/items in the destination if the current column values of source folder/files/items are empty.
By default, this feature is enabled. The column values of migrated folder/files/items in the destination will be kept empty.
If you do not want to keep empty for the column values of the migrated folder/files/items in the destination, you can add the PreserveNullValue=false string to the Customized features section to disable this feature. If the source folder/files/items had column values and the values were deleted before the migration, the last column value will be added to the migrated folder/files/items in the destination.
- **ReadSensitivityLabelFromPDFFile** – Define whether to process sensitivity labels applied on PDF files. By default, this feature is disabled. Fly will not process sensitivity labels applied on PDF files in the migration and the files may be inaccessible after the migration.
- If you want to process sensitivity labels applied on PDF files, you can add the **ReadSensitivityLabelFromPDFFile=true** string to the **Customized features** section to enable this feature.
- > ***Note**: Due to Microsoft API limitations, Fly can only use the SharePoint REST API to retrieve sensitivity labels displayed in the libraries where the PDF files are stored. If the sensitivity labels are not displayed in the libraries, Fly cannot process these sensitivity labels in the migration.
- **RemoveConflictingFileBeforeOverwrite** – Defines whether to back up and delete the destination conflicting file before migrating the source file when there is a destination file with the same relative URL but a different unique ID as the source file, or with the same unique ID but a different relative URL as the source file.
- By default, this feature is not enabled. Neither the source file with the same relative URL nor with the same unique ID as the destination file cannot be migrated.
If you want to migrate the source file with the **Overwrite** or **Overwrite by last modified time** content level conflict resolution configured in the migration policy, you can add the **RemoveConflictingFileBeforeOverwrite=true** string to the **Customized features** section to enable this feature. Fly will back up and delete the conflicting file in the destination before migrating the source file.
> ***Note**: The backed up file will be renamed to **filename-shortguid_bak.extension**.
> ***Note**: With this feature enabled, if you only configure a Fly app profile / custom app profile / delegated app profile for the source or destination connection to migrate the file, destination users who are shared with the file will receive an email notification of the file location change after the migration.
- > ***Note**: With this feature enabled, even if the modified time of the destination conflicting file is later than that of the source file, the destination file will still be backed up and deleted.
- **RestoreManagedNavigationSetting** – Define whether to migrate the source managed navigation settings of site collections to the destination.
By default, this feature is disabled. The source managed navigation settings of site collections will not be migrated to the destination. Fly will keep the destination navigation setting for the site collections.
If you want to migrate the source managed navigation settings of site collections, you can add the **RestoreManagedNavigationSetting=true** string to the **Customized features** section to enable this feature. The migration performance will slow down.
- **RetryTimesOfThrottlingError** – Define the retry times for Fly when the job is throttled by Microsoft 365 in the migration.
- By default, when the migration job is throttled by Microsoft 365, Fly will retry 5 times. If the job is still throttled after 5 retries, the job will fail.
- If you want to update the retry times, add the **RetryTimesOfThrottlingError=**" " string and enter a positive integer as the value. For example, **RetryTimesOfThrottlingError=10**.
- **SearchUsedTermSetInWeb** – This defines whether to migrate all global term groups in the source tenant. By default, Fly will only migrate term sets that are used by managed metadata columns in the source site collection.
If you want to migrate all global term groups in the source tenant, you can add the **SearchUsedTermSetInWeb=false** string to the **Customized feature** section.
- **SpecialFileTypes** – Configure this feature string to avoid misreporting from Microsoft APIs for the migration of files. If the migration of your files was misreported by Microsoft APIs, you can add the **SpecialFileTypes=”** **“** string and enter a file type as the value to the **Customized feature** section. For example, **SpecialFileTypes=docx**. If you configure multiple file types, separate types with a semicolon (;\). For example, **SpecialFileTypes=xlsx;pptx;docx**. Then, Fly will change the suffix of files to **.bat** during the migration and correct the suffix after the files have been migrated to the destination.
- > ***Note**: With this customized feature configured, the migration performance will slow down.
- **TermSetIdsCanNotBeSearched** – Configure this feature string to migrate the term sets that are only used in Nintex form controls to the destination. Otherwise, the migration of the Nintex form related to the Nintex form controls will fail.
To define which term sets will be migrated to the destination, you can add the **TermSetIdsCanNotBeSearched** string to the **Customized features** section in the format of *TermSetIdsCanNotBeSearched**=Guid**1;Guid2;Guid**3…*.
**Guid** refers to the unique identifier of a term set. To find the unique identifier of the term set, you can navigate to **SharePoint admin center** > **Content services** > **Term store**, click the desired term set, and the unique identifier of the term set will be displayed in the right pane. If you configure multiple Guids, separate Guids with a semicolon (;\).
With this string configured, if you select the **Managed metadata service** option in the migration policy, the term sets defined in the string will be migrated to the destination. If you deselect the **Managed metadata service** option, make sure term sets with the same term hierarchy and name as the configured term sets exist in the destination, the term sets defined in the string will be mapped to the destination ones in the migration.
- **TrimWhiteSpaceForObjectName** – Define whether Fly can trim the space before/after the folder/file names.
By default, this feature is not enabled. If there is a redundant space before/after the source folder/file name, which is not allowed by the destination, the migration of the folders/files will fail.
If you want to trim the space in the migration jobs, you can add the **TrimWhiteSpaceForObjectName=true** string to the **Customized features** section to enable this feature.
- **ValidateFileSize** – Define whether to compare the size of the file downloaded from the source with the file size displayed in the source during the migration.
By default, this feature is enabled. If the deviation between the downloaded file size and the file size displayed in the source exceeds the allowed deviation configured in the **ValidateFileSizeErrorInByte** customized feature, the migration of the file will fail.
If you do not want to compare the size of the file downloaded from the source with the file size displayed in the source, you can add the **ValidateFileSize=false** string to the **Customized features** section to disable this feature.
> ***Note**: If the downloaded file size and the file size displayed in the source are different, it indicates that the downloaded source file may be broken. If you disable this feature, Fly will migrate the broken file without comparing the file sizes, which may cause the file cannot be opened after the migration. Therefore, we do not recommend you disable this feature.
- **ValidateFileSizeErrorInByte** – Define the allowed deviation between the size of the file downloaded from the source with the file size displayed in the source when you enable the **ValidateFileSize** customized feature.
By default, the allowed deviation is 5 bytes. If you want to customize the allowed deviation, you can add the **ValidateFileSizeErrorInByte=" "** string and enter a desired number as the value to the **Customized features** section. The unit is **Byte**.