Skip to main content

Text Field Types

string

Use for: Short text content (titles, names, labels) Webflow examples: Name, Title, Category, Tag, Author Name Conversion:
  • Trims whitespace
  • Preserves Unicode characters
  • Removes null bytes
Example:
{
  "title": "My Blog Post",
  "category": "Technology"
}
Limitations:
  • No character limit in Sanity (but keep under 200 chars for usability)
  • Single line only (use text for multi-line)

text

Use for: Long plain text (descriptions, notes, excerpts) Webflow examples: Excerpt, Meta Description, Summary, Notes Conversion:
  • Preserves line breaks
  • Trims leading/trailing whitespace
  • Supports multi-line content
Example:
{
  "excerpt": "This is a longer description\nthat spans multiple lines\nand preserves formatting."
}
Differences from string:
  • Multi-line support
  • Usually rendered as textarea in Studio
  • Better for longer content

portableText

Use for: Rich text with formatting (blog posts, descriptions) Webflow examples: Post Body, Description, Content, Rich Text, Article Body Conversion:
  • Parses HTML structure
  • Converts to Portable Text blocks
  • Preserves formatting (bold, italic, links)
  • Handles headings, lists, images
Example:
{
  "content": [
    {
      "_type": "block",
      "style": "h2",
      "children": [{"text": "Introduction"}]
    },
    {
      "_type": "block",
      "children": [
        {"text": "This is "},
        {"text": "bold", "marks": ["strong"]},
        {"text": " text."}
      ]
    }
  ]
}
Learn more: HTML Conversion

Number Field Types

number

Use for: Numeric values (prices, counts, ratings, percentages) Webflow examples: Price, Quantity, Rating, Order, Count Conversion:
  • Parses integers and decimals
  • Handles thousand separators (1,0001000)
  • Preserves decimal precision
Example:
{
  "price": 99.99,
  "rating": 4.5,
  "quantity": 100
}
Notes:
  • Stored as JSON number
  • No currency symbol (add in frontend)
  • Decimal precision preserved

Boolean Field Type

boolean

Use for: True/false toggles (featured, published, active) Webflow examples: Featured, Published, Active, In Stock, Visible Conversion:
CSV ValueBoolean
true, True, TRUEtrue
false, False, FALSEfalse
yes, Yes, YES, 1true
no, No, NO, 0, (empty)false
Example:
{
  "featured": true,
  "published": false,
  "inStock": true
}

Date/Time Field Types

datetime

Use for: Dates with time (published date, event time, timestamps) Webflow examples: Published Date, Event Date Time, Updated At Conversion:
  • Parses ISO 8601 format (2024-01-15T10:30:00.000Z)
  • Converts to UTC
  • Validates date range (1900-2100)
Example:
{
  "publishedAt": "2024-01-15T10:30:00.000Z",
  "eventStart": "2024-06-20T14:00:00.000Z"
}
Webflow format: Webflow exports dates like 2024-01-15T10:30:00.000Z which convert directly.
Excel corrupts dates! Don’t open CSVs in Excel—it changes the format and breaks the import.

date

Use for: Date only, no time (birth date, release date) Less common - Most use cases work better with datetime. Use this only when time component is truly irrelevant. Example:
{
  "birthDate": "1990-05-15"
}

URL Field Types

url

Use for: Web URLs, external links Webflow examples: Website, External Link, Source URL, Video URL Conversion:
  • Validates URL format
  • Preserves full URL
  • Accepts http:// and https://
Example:
{
  "website": "https://example.com",
  "sourceUrl": "https://webflow.com/article"
}

slug

Use for: URL-friendly identifiers (page slugs, permalinks) Webflow examples: Slug, URL Slug Conversion:
  • Lowercases value
  • Replaces spaces with hyphens
  • Removes special characters
  • Formats as Sanity slug object
Example:
{
  "slug": {
    "_type": "slug",
    "current": "my-blog-post"
  }
}
Webflow value: my-blog-post Sanity value: {current: "my-blog-post"}
Slugs are stored as objects in Sanity, not plain strings. MigrateKit handles this conversion automatically.

Asset Field Types

image

Use for: Single images (cover image, hero image, thumbnail) Webflow examples: Main Image, Hero Image, Thumbnail, Featured Image Conversion:
  1. Downloads image from Webflow CDN URL
  2. Checks for duplicates (reuses existing)
  3. Uploads to Sanity assets
  4. Creates asset reference
Example:
{
  "coverImage": {
    "_type": "image",
    "asset": {
      "_ref": "image-abc123xyz-1920x1080-jpg",
      "_type": "reference"
    }
  }
}
Supported formats: JPG, PNG, GIF, SVG, WebP

file

Use for: Documents, PDFs, downloads Webflow examples: PDF Download, Attachment, Document Conversion: Similar to images:
  1. Downloads from URL
  2. Uploads to Sanity
  3. Creates reference
Example:
{
  "pdfDownload": {
    "_type": "file",
    "asset": {
      "_ref": "file-xyz789-pdf",
      "_type": "reference"
    }
  }
}
Supported formats: PDF, DOC, DOCX, XLS, XLSX, ZIP, etc.

Advanced Field Types

array

Use for: Multiple values (tags, categories, multiple images) Webflow examples: Tags (comma-separated), Gallery (multiple images) Conversion:
  • Splits comma-separated values
  • Creates array of specified type
Example (array of strings): CSV: "webflow,sanity,migration"
{
  "tags": ["webflow", "sanity", "migration"]
}
Example (array of images): CSV: "https://cdn/img1.jpg,https://cdn/img2.jpg"
{
  "gallery": [
    {"_type": "image", "asset": {"_ref": "image-abc..."}},
    {"_type": "image", "asset": {"_ref": "image-def..."}}
  ]
}

reference

Not currently supported in MigrateKit MVPReference fields (relationships to other collections) must be manually recreated in Sanity Studio after import.Workaround:
  • Map as string to preserve the ID/slug
  • Manually link references in Sanity after migration
  • See Limitations for details

Field Type Decision Guide

Use this flowchart to choose the right field type:

Common Mapping Patterns

Blog Post

{
  "_type": "post",
  "title": "string",
  "slug": "slug",
  "content": "portableText",
  "coverImage": "image",
  "publishedAt": "datetime",
  "featured": "boolean",
  "tags": "array of string"
}

Product

{
  "_type": "product",
  "name": "string",
  "slug": "slug",
  "description": "portableText",
  "price": "number",
  "images": "array of image",
  "inStock": "boolean"
}

Author

{
  "_type": "author",
  "name": "string",
  "slug": "slug",
  "bio": "portableText",
  "photo": "image",
  "email": "string",
  "website": "url"
}

Learn More