Skip to main content

Upload Your CSV

1

Access MigrateKit

Navigate to MigrateKit in your ContentWrap dashboard (app.contentwrap.io) or visit /migratekit
2

Upload your file

Drag and drop your CSV or click to browse
MigrateKit detects Webflow format and shows a preview
3

Review the preview

Verify:
  • Total rows matches expectations
  • All columns are detected
  • Sample data looks correct

Understanding the Mapping Interface

The mapping screen has two panels:

Left: Sanity Schema

Define your Sanity structure:
  • Document type name
  • Field names and types
  • Required field settings

Right: Webflow Data

Your CSV from Webflow:
  • Column names
  • Sample data
  • Detected data types

Name Your Document Type

First, choose a name for your Sanity document type:
  • Good Names
  • Invalid Names
  • blogPost
  • article
  • author
  • product
Use camelCase: lowercase start, capitalize subsequent words, no spaces or hyphens

Map Your Fields

Connect each Webflow column to a Sanity field:

Auto-Mapping

MigrateKit suggests mappings based on:
  • Column names (e.g., Nametitle)
  • Data types detected in your CSV
  • Common Webflow patterns
Review suggestions and adjust as needed.

Manual Mapping

For each Webflow column:
1

Select the column

Click a Webflow column on the right to see sample data
2

Create or select a Sanity field

On the left, click + Add Field or select an existing field
3

Configure the field

Set:
  • Field name: Sanity field name (e.g., content, heroImage)
  • Field type: Choose from Sanity types
  • Required: Whether field must have a value

Quick Field Type Reference

Webflow Column TypeSanity Field TypeNotes
Name, TitlestringShort text
Rich Text, BodyportableTextHTML auto-converts
Main ImageimageSingle image
SlugslugURL-friendly ID
Published DatedatetimeWith time
Price, CountnumberNumeric values
Featured, ActivebooleanTrue/false
WebsiteurlWeb URLs
See Field Types Reference for a complete list with examples

Field Configuration Options

Required Fields

Mark fields as required if they must have a value:
Important: If a required field has empty values in some CSV rows, those rows will fail to import

Field Renaming

Use different names in Sanity than Webflow:
WebflowSanityWhy
NametitleMore semantic
Post BodycontentCleaner
Main ImageheroImageMore descriptive

Fields to Skip

Don’t map these Webflow columns (MigrateKit uses them internally):
  • Collection ID
  • Item ID
  • Locale ID
Optionally skip Webflow timestamps (Sanity manages its own):
  • Created On (Sanity creates _createdAt)
  • Updated On (Sanity creates _updatedAt)
  • Published On (Sanity creates _publishedAt)
You CAN map these to custom fields if you want to preserve original Webflow dates

Special Field Types

Use for: Webflow rich text fields with HTMLMigrateKit automatically converts:
  • Headings (H1-H6)
  • Paragraphs and line breaks
  • Bold, italic, underline
  • Lists (ordered and unordered)
  • Links
  • Embedded images
Learn more: HTML Conversion
Use for: Webflow image columnsDuring import, MigrateKit:
  1. Downloads images from Webflow CDN
  2. Checks for duplicates (reuses if exists)
  3. Uploads to your Sanity project
  4. Creates proper image references
Use for: Webflow slug columnMigrateKit:
  • Sanitizes values (removes special characters)
  • Formats for Sanity’s slug type ({current: "value"})
  • Preserves URL-friendly format
Use for: Comma-separated values (tags, categories, multiple images)Map to array and specify item type:
  • Array of strings
  • Array of images
  • Array of numbers

Validation

MigrateKit validates your mappings before import:
  • Document type name is valid
  • No duplicate field names
  • Field types match data
  • Required fields are mapped
  • Values can convert to target types
  • Required fields have data
  • Dates are parseable
  • Numbers are numeric
  • URLs are valid
Review sample transformed documents:
  • First 3-5 documents shown
  • Check Portable Text rendering
  • Verify image references
  • Confirm data looks correct

Common Validation Issues

“Field type mismatch”Data doesn’t match chosen type (e.g., text in a number field).Fix: Change field type or clean data in CSV.
“Required field has empty values”Some rows missing data for a required field.Fix: Make field optional, fill missing values, or skip those rows.
“Invalid Portable Text”HTML couldn’t be converted properly.Fix: Check HTML for malformed tags or unsupported structures. See Troubleshooting.

Next Step

Once fields are mapped and validated:

Step 3: Connect Sanity

Link your Sanity project with API credentials