# SharePoint migration connector
Migrates documents from source SharePoint sites to target SharePoint sites with full content type, permission, and metadata preservation.
DLL: Epona.Migrate.Sharepoint.dll
# What it does
- Site-to-site transfer — copies documents from source to target SharePoint environments
- Folder structure mapping — reorganizes content during migration
- Content type mapping — converts source content types to target types
- Permission migration — transfers folder and document-level permissions
- Version preservation — optionally migrates document version history
- Metadata mapping — maps source fields to target column names
- Date filtering — migrates only documents matching date ranges
- Error recovery — detailed logging for troubleshooting migration issues
# Prerequisites
- Source SharePoint site collection configured in Epona.Sharepoint configuration
- Target SharePoint site collection provisioned with document libraries
- Administrator credentials for both source and target environments
- Content types pre-configured in target SharePoint
# Deployment
- Copy
Epona.Migrate.Sharepoint.dllto the Epona.Migrate application directory - Restart Epona.Migrate or reload connectors
- Configure source and target SharePoint settings in the migration UI
# Configuration
# Global settings
# Name
- Type: string
- Required: Yes
- Description: Unique name for this migration configuration
# SourceSharepointConfigName
- Type: string
- Required: Yes
- Description: Name of the source SharePoint configuration to migrate from
# Debug
- Type: boolean
- Required: —
- Description: Enable debug logging
# Matter/code mapping
# ClientMatterSeparator
- Type: char
- Default:
@ - Description: Character separating client and matter codes in folder paths
# CombineClientAndMatterCodeToMatterCode
- Type: string
- Default: —
- Description: If set, combine client and matter into single code using this pattern
# Folder and content filtering
# ImportEmptyFolder
- Type: boolean
- Default:
false - Description: Import folders containing no documents
# CreateEmptyDirectories
- Type: boolean
- Default:
false - Description: Create empty folders in target
# Permission migration
# ImportFolderPermissions
- Type: boolean
- Default:
false - Description: Migrate folder-level permissions to target
# ImportDocumentPermissions
- Type: boolean
- Default:
false - Description: Migrate document-level permissions to target
# Document version handling
# ImportOnlyLatestVersion
- Type: boolean
- Default:
false - Description: Import only latest version of documents (skip version history)
# ImportDocumentMinimalDateTime
- Type: DateTime
- Default: —
- Description: Only import documents created or modified after this date
# ImportDocumentMinimalDateTimeUseModifyDate
- Type: boolean
- Default:
false - Description: Use modified date instead of created date for filtering
# Search and content type mapping
# UseSearchToFetchFolders
- Type: boolean
- Default:
false - Description: Use SharePoint Search API to enumerate folders (slower but may work better in large sites)
# ReplaceContentTypes
- Type: string
- Default:
Document=DMS Document - Description: Maps source content types to target types (format:
source=target;)
# Folder and path mapping
# ReplaceFolders
- Type: string
- Description: Path mapping for folder reorganization (format:
oldpath=newpath;)
# Metadata column mapping
# DocumentNumber
- Type: string
- Description: SharePoint column name for document number (without version)
# DocumentNumberVersion
- Type: string
- Description: SharePoint column name for document number with version
# DocumentVersion
- Type: string
- Description: SharePoint column name for version number only
# FieldMapping
- Type: string
- Description: Maps source fields to target column names (format:
sourceField=targetField;)
# FieldValueMapping
- Type: FieldValues (list)
- Description: Maps field values from source to target (e.g., status values, codes)
# Migration workflow
- Connect — authenticate to source and target SharePoint
- Enumerate — scan source folder structure and documents
- Filter — apply date range, folder, and content type rules
- Validate — verify content type mappings and folder mappings
- Plan — review scope, permissions, and metadata mapping
- Execute — transfer documents with versions, metadata, and permissions
- Verify — validate completeness and permission accuracy
# SharePoint specific features
# Source site configuration
The source SharePoint environment must be configured in the main Epona.Sharepoint configuration:
- Specify the source site collection URL
- Configure authentication method
- Set up the source as a separate SharePoint configuration entry
# Content type mapping
Source content types must be mapped to target content types:
- Default mapping:
Document=DMS Document - Custom types require explicit mapping
- Unmapped documents use default mapping
- All target content types must pre-exist in target site
# Folder organization
The migration connector can reorganize documents during transfer:
- Existing folder structure can be preserved
- Folder paths can be renamed or reorganized
- Empty folders may be created or skipped
- Matter hierarchy can be imposed during migration
# Permission transfer
SharePoint permissions are preserved from source to target:
- Folder-level permissions break inheritance
- Document-level permissions preserved where needed
- Permission translation handles role differences
- Broken inheritance is maintained in target
# Metadata mapping
Source fields are mapped to target columns:
- Field name mapping translates column names
- Field value mapping translates option values
- Built-in columns (Author, Created, Modified) preserved automatically
- Custom fields require explicit mapping
# Date-based filtering
Documents can be filtered by creation or modification date:
- Useful for phased migrations
- Can exclude recent documents during pilot
- Helpful for large migrations
# Troubleshooting
# Common issues
# Cannot connect to source
- Cause: Wrong configuration name
- Resolution: Verify SourceSharepointConfigName matches exactly
# Content type mapping fails
- Cause: Content type missing in target
- Resolution: Create missing content types in target before migration
# Permissions not transferred
- Cause: ImportFolderPermissions/ImportDocumentPermissions disabled
- Resolution: Enable permission options in configuration
# Slow enumeration
- Cause: Large site or UseSearchToFetchFolders=false
- Resolution: Enable Search API option or increase timeout settings
# Field mapping not working
- Cause: Column names mismatch
- Resolution: Verify exact column names in both source and target
# Related
- Migration overview — how document migration works
- Box connector — cloud content management alternative
- OpenText connector — enterprise document management alternative