How do I import CMS items from a CSV in Webflow?
Upload a CSV into a Webflow Collection, map columns to fields, and update existing items by Item ID.
Open the CMS panel, open the Collection, and click Import. Upload a CSV of up to 4 MB, confirm the header row, and map each column to a field or skip it. Rows that share an Item ID can update that item. Other rows come in as new items. The site plan limits how many items you can add. The header row does not count.
Shape the CSV so the fields can map
A CSV import adds many Collection items at once, or updates items you already have. Columns are fields. Rows are items. In Excel, save the sheet as the Comma Separated Values type. Other CSV types may not render correctly in Webflow.
The file can be up to 4 MB. The header row does not count as an item, and it does not count against the number of items your site plan allows.
If the sheet has only one column, add a comma after the header label, such as Name, so the file still imports.
Name and slug values must be plain text under 256 characters. If you do not map those two columns, the CMS generates them.
A few field types need a strict shape:
- A number cannot include letters, symbols, or commas. 10000 can map. 10,000 and $100 cannot.
- An image needs a direct URL that ends in a supported image extension. Images imported this way do not get responsive variants, so use files that are already sized, or upload them in Webflow instead.
- A video field accepts a YouTube or Vimeo URL. Other video URLs do not map.
- A reference is plain text, such as Charles Dickens. Webflow turns that into a slug and looks for a matching item. If the item uses a custom slug, put that slug in the cell or the reference will not import.
- A multi-reference or a multi-image cell separates values with semicolons.
- A file field does not import. Upload files after the other data is in.
- An option column turns every unique value into an option, up to 100. Values are case sensitive.
- A switch column needs two unique values. During mapping you choose which value means No.
Upload the file and choose what happens to matches
Webflow asks whether to create a backup when you import. You can accept that and get a pre-import backup. On a large site with many items, create the backup before you start, then click No to skip the backup step during the import. You can restore a pre-import backup later from Site settings, Backups.
Open the CMS panel, choose the Collection, and click Import. If the items belong in one locale, pick it from the Locale view dropdown first. Drop in the file. Confirm that the first row is the header. Continue. You can import into all locales or only the current one, then continue again.
If you skip the header, Webflow cannot see an Item ID or a column name. It creates a new item for every row.
When some rows share an Item ID with items already in the Collection, you get two choices. Link and update matching items and import remaining as new updates the matches and adds the rest. Import all as new items creates a new item for every row, including rows that already exist. Item IDs come from a Webflow CSV export. This update path does not apply to Ecommerce items.
Example: you fixed the summaries for 12 blog posts in a spreadsheet. Export those 12, edit them, and re-import with Link and update matching items. The other posts stay as they are.
Map each column, then stay until the import ends
If a header already matches a field name, Webflow maps it for you. For every other column, choose Do not import, Create new field, or Map to existing field. Field types that cannot accept the column are grayed out. A green dot means that column is mapped. You cannot map two columns onto a field that is already in use. Create a new field instead.
The preview on the right shows one row at a time. Move with the arrows, or open Display item and search by name. Turn on Skip import to leave a single row out.
Click Import. Stay in the Designer until every item finishes. If some rows fail, Webflow lists the item, the reason, and a link to an error report.
An empty required reference, or a reference that matches nothing, still imports the row, but as a Draft, with that field blank. If the reference is not required, the item is Staged for publish and the reference stays blank. Open those items before you treat the import as finished.
Check image URLs and references after the import
Broken image URLs do not map to image fields. Copy the URL column into a bulk URL checker. A 200 status means that URL returned no error. Replace or remove the others, save the CSV, and import again.
Then open one new item and one updated item. Read the name, the slug, one number, and one reference. Importing into the Collection is not the same as publishing the site. Check each item's status in the CMS, then publish when those items should be public.
Export a Collection when you need the Item IDs
Export is how you get a file of items already in the Collection, including the Item ID a later update needs. The file only includes the locale you are viewing.
To export the whole Collection, including archived items, open the CMS panel, open the Collection, and click Export. To export a subset, search, filter, or sort, click Select, choose the items, and click Export.
Most fields come out as plain text or URLs. Rich text comes out as HTML. Images and files come out as Webflow-hosted URLs that point at the site you exported from. If you delete that site, those assets break, including images inside rich text. Multi-reference fields export as a comma separated list. In a CSV you create yourself, separate multi-reference values with semicolons, then check the preview before you import.
If you import that file into another Webflow site, image fields come in as new images. File fields still do not import. Upload those on the new site.
Questions & answers
Why did every row become a new item?
Updates need a header row and an Item ID that matches an existing item, which a Webflow CSV export includes. If you skip the header, or choose Import all as new items, every row is created again.
What if a reference cell does not match an item?
A required reference that is empty or matches nothing still imports the row, as a Draft, with that field blank. If the reference is not required, the item is Staged for publish and the reference stays blank.
Do images imported from a URL get responsive variants?
No. An image brought in from a direct URL does not get responsive variants. Use an image that is already sized, or upload it in Webflow instead.
Can I update Ecommerce items this way?
No. Updating items through CSV import does not apply to Ecommerce items. Use this flow for regular CMS Collection items.
Sources & further reading
Need a hand with your Webflow site?
View membership
View membership