← Back to Documentation
Field Types & Data
SP Toolkit supports 30+ SharePoint field types with intelligent transformations for both same-tenant and cross-tenant migrations.
30+
Field Types Supported
20+
Full Support
2
Partial Support
Basic Types
| Field Type | Status | Same-Tenant | Cross-Tenant | Notes |
|---|---|---|---|---|
Text | Full Support | Direct copy. Single line of text. | ||
Note (Plain) | Full Support | Direct copy. Multiple lines of plain text. | ||
Note (Rich HTML) | Full Support | HTML normalized. Asset links adjusted. Rich text and enhanced rich text supported. | ||
Number | Full Support | Direct copy. Min/max and decimal constraints preserved. | ||
Currency | Full Support | Direct copy. Locale ID preserved. | ||
Boolean (Yes/No) | Full Support | Direct copy. | ||
DateTime | Full Support | ISO UTC normalization. Date-only semantics preserved. |
Choice Types
| Field Type | Status | Same-Tenant | Cross-Tenant | Notes |
|---|---|---|---|---|
Choice (Single) | Full Support | Direct copy. Fill-in choices supported. | ||
Choice (Multi) | Full Support | Schema-driven parse with safe ;# delimiter handling. |
Relational Types
| Field Type | Status | Same-Tenant | Cross-Tenant | Notes |
|---|---|---|---|---|
Lookup (Single) | Full Support | ID mapping + title fallback. Additional lookup fields validated. | ||
Lookup (Multi) | Full Support | All IDs mapped with title index cache. Circular dependency resolution. | ||
User/Person (Single) | Full Support | Cross-tenant resolution via email + login name. Fallback recording. | ||
User/Person (Multi) | Full Support | Batch resolution with Promise.all(). Cache optimized. |
Complex Types
| Field Type | Status | Same-Tenant | Cross-Tenant | Notes |
|---|---|---|---|---|
URL/Hyperlink | Full Support | Object format {Url, Description}. Metadata-gated wrapping. | ||
Image (Modern) | Full Support | Structure preserved. URL metadata maintained (no binary relocation). | ||
Location | Full Support | JSON structure preserved. | ||
Taxonomy (Managed Metadata) | Full Support | Basic normalization (Label|TermGuid format). No hierarchy auto-create. |
Special Cases
| Field Type | Status | Same-Tenant | Cross-Tenant | Notes |
|---|---|---|---|---|
Calculated | Partial | Field created but values not copied (read-only). Formula preserved in schema. | ||
Readonly (Created, Modified, Author, Editor) | Partial | Stripped from write operations. Metadata placeholder preserved. | ||
Attachments | Full Support | Optional. Direct binary upload or package workflow. | ||
File Versions | Full Support | Optional. Configurable cap (maxFileVersions). Chronological replay. | ||
List Item Versions | Full Support | Optional. Configurable cap (maxListItemVersions). |
Field Mapping & Transformation
Automatic Field Mapping
- Matches by internal name (case-insensitive)
- Falls back to display name matching
- Type compatibility validation with warnings
- Handles GUID variations (braces, case)
Manual Field Mapping
- Per-field dropdown selection
- Skip fields with __skip__ mapping
- Visual type compatibility indicators
- AI-suggested mappings (semantic + multilingual)
Data Transformation Rules
Transform field values during migration without modifying source data. Define rules to clean, normalize, or override values before writing to target lists.
Set Constant
Always set a field to a specific value, overriding source data.
Example: Set Status to "Migrated" for all items
Map Choice
Transform choice values from source to target nomenclature.
Example: "Active" → "In Progress", "Closed" → "Complete"
Conditional
Set values based on conditions (equals, contains, regex, etc.).
Example: If Department contains "Sales", set Region to "US-West"