Webflow
Sync data to Webflow CMS collection items. Use Zeotap to push product catalogs, blog posts, team directories, or any structured content to your Webflow site via the CMS API v2.
Prerequisites
- A Webflow account with a published site
- A CMS collection configured in the target site
- A Webflow API token with
CMS:writescope - The site ID and collection ID (found in Webflow site and collection settings)
Authentication
Webflow uses an API Token for authentication.
- Log in to your Webflow dashboard
- Navigate to Site Settings > Apps & Integrations > API Access
- Generate a new API token with the
CMS:writescope - Copy the token and paste it into the API Token field in Zeotap
Required Scopes
CMS:write— create, update, and delete CMS collection items
Configuration
| Field | Type | Required | Description |
|---|---|---|---|
| Site ID | Text | Yes | The Webflow site ID. Found in Site Settings > General > API. |
| Collection ID | Text | Yes | The CMS collection ID to sync items to. Found in the collection settings panel. |
Supported Operations
Sync Modes
| Mode | Supported | Description |
|---|---|---|
| Insert | Yes | Creates new CMS items in the collection |
| Update | Yes | Updates existing CMS items by item ID |
| Upsert | Yes | Creates items without a primary key, updates items with one |
| Mirror | Yes | Full sync with creates, updates, and deletes for removed items |
Audience Sync Modes
Webflow does not support audience sync modes. CMS collections are not membership-based lists.
Features
- Field Mapping: Yes — map source fields to Webflow CMS field slugs
- Schema Introspection: No — field names must be configured manually using Webflow CMS field slugs
Required Mapping Fields
| Field | Description |
|---|---|
name | The display name for the CMS item |
slug | URL-safe identifier for the CMS item (used in the published URL) |
Default Destination Fields
| Field | Type | Description |
|---|---|---|
name | string | Item display name |
slug | string | URL-safe slug |
How It Works
Zeotap writes data to Webflow CMS collections using the v2 REST API bulk endpoints:
- Insert mode: Items are sent via
POST /v2/collections/{collection_id}/items/bulkwithisDraft: falseso they are immediately publishable - Update mode: Items are sent via
PATCH /v2/collections/{collection_id}/itemswith the Webflow item ID and updated field data - Upsert mode: Rows with a primary key (Webflow item ID) are updated; rows without one are created as new items
- Mirror mode: New and changed items are created or updated; items marked as removed are deleted via
DELETE /v2/collections/{collection_id}/items
Batch Processing
- Items are sent in batches of up to 100 items per request (the Webflow API maximum)
- Failed batches are retried automatically with exponential backoff
- The API returns
429 Too Many Requestswhen rate limits are exceeded, and Zeotap respects theRetry-Afterheader
Publishing
Items created or updated via the API are staged (draft) by default. Zeotap sets isDraft: false on created items. To make changes visible on your live site, you may need to publish the site after the sync completes, depending on your Webflow publishing settings.
Rate Limits
Webflow enforces rate limits per API token:
| Plan | Requests Per Minute |
|---|---|
| Starter / Basic | 60 |
| CMS / Business / eCommerce | 120 |
| Enterprise | Custom |
If a 429 response is received, Zeotap automatically retries with exponential backoff, respecting the Retry-After header when present.
Best Practices
- Use descriptive slugs: Slugs form part of the published URL. Changing a slug after publication breaks existing links.
- Keep collections focused: Sync to a single collection per destination. Create separate destinations for different collections.
- Monitor rate limits: For large collections on Starter/Basic plans, syncs may take longer due to the 60 requests/minute limit.
- Set up primary keys: For upsert and update modes, ensure your source data includes the Webflow item ID as the primary key.
- Test with drafts first: Use a staging site to verify your field mappings before syncing to production.
Troubleshooting
Authentication failed: invalid API token
Verify that the API token is correct and has the CMS:write scope. Tokens can be regenerated in Site Settings > Apps & Integrations > API Access. Expired or revoked tokens return a 401 error.
Site not found
The site ID is incorrect or the site has been deleted. Find the correct site ID in Site Settings > General > API. The site ID is a 24-character alphanumeric string.
Collection not found
The collection ID is incorrect or the collection has been deleted. Open the CMS collection in Webflow, and find the collection ID in the collection settings panel or the URL.
Rate limited (429 Too Many Requests)
Your Webflow plan’s rate limit has been exceeded. Zeotap retries automatically. For high-volume syncs, consider upgrading to a CMS or Business plan for higher rate limits (120 requests/minute).
Items not appearing on the live site
CMS items created via the API may need to be published. Check your Webflow publishing settings, or manually publish the site after the sync completes. Zeotap creates items with isDraft: false, but they still need to be published to the live site.
Slug conflicts
Each CMS item must have a unique slug within the collection. If a create request fails with a slug conflict, ensure your source data generates unique slugs. Webflow appends a number suffix to duplicate slugs automatically in some cases, but the API may reject exact duplicates.
Field mapping errors
Verify that destination field names match the Webflow CMS field slugs (not display names). Field slugs are lowercase with hyphens (e.g., product-name, hero-image). Open the collection field settings in Webflow to find the correct slug for each field.
Large batch failures
If an entire chunk of 100 items fails, check the error message for details. Common causes include invalid field types (e.g., sending a string to a number field), missing required CMS fields, or exceeding Webflow’s item size limits.