SPMT True History Mode
Preserve the original Created, Modified, CreatedBy, and ModifiedBy metadata on SharePoint destinations during migration. Opt in per migration profile; applies to every file in the run.
Why it matters
A migration done with the default SharePoint REST API overwrites every item’s Created and Modified timestamps with the time of the migration, and stamps the service account as the author. For most consumer use cases this is harmless, but for compliance, records management, litigation hold, eDiscovery, and content-type retention policies it is a disaster. You land with a library where every document was authored yesterday by a machine account.
True History Mode uses SharePoint’s SPMT (SharePoint Migration Tool) metadata-preservation APIs to write original timestamps and principal identities. The result looks like the content was always there, authored by the original people.
When to enable it
- Records management · retention — if a retention policy triggers off
CreatedorModified, you need the original timestamps. - Compliance / eDiscovery — an auditor looking at a migrated document needs to see when it was actually authored.
- Content-type expirations — some legal content types expire on a fixed interval from
Created. Mis-stamped items will expire en masse on migration day. - User-facing sort / filter — users expect to sort by
Modifiedand see the most recently touched content first, not everything sorted by migration timestamp.
How to enable it
- Open the project in MigrationFox.
- Go to the migration profile settings.
- Under Destination · Metadata, toggle SPMT True History Mode.
- Save the profile. The next migration run applies it.
You can also enable it via API when creating a job:
{
"projectId": "proj_9f4c",
"mode": "COPY",
"destination": {
"spmt_true_history": true
}
}
Supported sources
The feature preserves metadata from any source where Created, Modified, and author identity are available:
| Source | Created / Modified | CreatedBy / ModifiedBy |
|---|---|---|
| SharePoint (tenant-to-tenant) | Yes | Yes, with user mapping |
| Google Drive | Yes | Yes, with user mapping |
| OneDrive | Yes | Yes, with user mapping |
| Dropbox | Yes | Yes, with user mapping |
| Box | Yes | Yes, with user mapping |
| SFTP | Modified only | No (no author field) |
| SMB file share | Yes | Yes, mapped from NTFS owner SID |
| S3 / Azure Blob | Modified only | No (object metadata-only) |
CAVEATS
True History Mode requires the destination site to have the Site Collection App Catalog disabled and the SPMT transport enabled (it is on by default in all modern SharePoint Online tenants). If either condition is not met, the job falls back to standard metadata and emits a warning on the run report.
User mapping
For CreatedBy / ModifiedBy preservation, the destination tenant must know who the source author was. Upload a user-mapping CSV (sourceUpn,destinationUpn) and reference it on the project. Any source principal not in the mapping falls back to the service account identity and is flagged in the rehearsal report under the permissionRisk category.
Performance impact
True History Mode uses the SPMT transport, which is slightly slower per-item than the standard Graph upload endpoint due to the two-phase commit on metadata. On a typical run, expect a 5–12% runtime increase. The Migration Rehearsal runtime prediction factors this in.
Related
- Migration Rehearsal dry-run — gives you a runtime prediction before the real run
- Rehearsal verdict reference — the 10 issue categories including
permissionRisk - Folder restructuring — companion feature for mega-site cleanup