> ## Documentation Index
> Fetch the complete documentation index at: https://docs.contentwrap.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Prerequisites

> Everything you need before migrating your Webflow content to Sanity with ContentWrap's CSV migration tool.

## What You'll Need

Before starting your migration, make sure you have:

### 1. Webflow Access

* **CMS Collections** - At least one collection with content to migrate
* **Export permissions** - Ability to export collections as CSV files
* **Admin or Editor role** - Required to access CMS export features

### 2. Sanity Project

You need an active Sanity project with at least one dataset.

* Project ID
* Dataset name (e.g., `production` or `staging`)
* Schema deployed to that dataset (required for v1)

See the Connect step for how to grab these in [sanity.io/manage](https://www.sanity.io/manage).

### 3. Sanity API Token

You'll need an API token with write permissions:

* **Sanity Free:** Editor
* **Growth/Enterprise:** Editor or Developer (both read/write)

Create and copy your token from **API → Add API token** in [sanity.io/manage](https://www.sanity.io/manage). Detailed steps live in the Connect guide.

<Warning>
  **Important:** Use a permission with **read/write** access (Editor or Developer). **Viewer** is read-only and cannot import content.
</Warning>

### 4. ContentWrap Account

Sign up for a free ContentWrap account to access MigrateKit:

<Card title="Sign Up" icon="user-plus" href="https://app.contentwrap.io/auth/sign-up">
  Create your ContentWrap account
</Card>

<Info>
  ContentWrap is the platform that powers MigrateKit. Your account gives you access to migration tools and, optionally, white-glove migration services.
</Info>

### 5. Add Your Sanity Project in ContentWrap

In ContentWrap, open the **Projects** tab and add:

* **Project ID** (copied from Sanity project header)
* **Dataset** (e.g., `production`, `staging`, or `development`)
* **API Token** (Editor or Developer)

Make sure the dataset already exists in Sanity (**Settings** → **Datasets**) and your schema is deployed to that dataset.

<Info>
  You can add multiple projects in ContentWrap. Select the project/dataset you want active during migration.
</Info>

## Optional But Recommended

### Test Dataset

For your first migration, use a Sanity **development** or **staging** dataset instead of production:

* Test the migration workflow without risk
* Refine field mappings and see results
* Delete and retry if needed
* Move to production once confident

### CSV Editor

While not required, a good CSV editor helps you review exports:

* **Google Sheets** - Free, handles UTF-8 well
* **LibreOffice Calc** - Free, better than Excel for CSVs
* **VS Code** - View raw CSV structure

<Warning>
  **Avoid Microsoft Excel** - It auto-formats dates and can corrupt CSV data. If you must use Excel, import CSVs as text to prevent formatting issues.
</Warning>

## Understanding Webflow Collection Structure

Familiarize yourself with your Webflow CMS collections:

| Element    | Description                | Example                       |
| ---------- | -------------------------- | ----------------------------- |
| Collection | A content type in Webflow  | Blog Posts, Authors, Products |
| Item       | A single piece of content  | One blog post, one author     |
| Field      | A property of an item      | Title, Body, Image, Date      |
| Reference  | Link to another collection | Post → Author relationship    |

<Info>
  **Reference fields** are not currently supported in ContentWrap. You'll need to recreate relationships in Sanity after migration. Multi-collection support with reference resolution is on the roadmap.
</Info>

## Ready to Start?

Once you have everything above, you're ready to begin:

<CardGroup cols={2}>
  <Card title="Quickstart" icon="rocket" href="/quickstart">
    Migrate your first collection in 10 minutes
  </Card>

  <Card title="Migration Guide" icon="map" href="/migration/overview">
    Detailed step-by-step instructions
  </Card>
</CardGroup>

## Need Help Getting Set Up?

<AccordionGroup>
  <Accordion title="I don't have a Sanity project yet">
    No problem! Follow Sanity's [Getting Started guide](https://www.sanity.io/docs/getting-started) to create your first project. It takes about 5 minutes.
  </Accordion>

  <Accordion title="I'm not sure which dataset to use">
    If your Sanity project is new, use the `production` dataset. If you already have content in production, create a `staging` or `development` dataset for testing migrations.
  </Accordion>

  <Accordion title="Can I migrate without a Sanity schema?">
    Not in v1. Your schema must already be deployed to the target dataset so ContentWrap can read it during mapping and import.
  </Accordion>

  <Accordion title="What if my API token expires?">
    Sanity API tokens don't expire by default. If you revoke a token, create a new one with the same permissions and update it in ContentWrap.
  </Accordion>
</AccordionGroup>
