Create or update multiple CMS items in a Webflow collection with validation and diff preview. Use when adding multiple blog posts, products, or updating fields across many items.
Create or update multiple CMS items with comprehensive validation, granular approval, and rollback capability.
ALWAYS use Webflow MCP tools for all operations:
data_sites_tool with action list_sites for listing available sitesdata_cms_tool with action get_collection_list for listing CMS collectionsdata_cms_tool with action get_collection_details for fetching collection schemasdata_cms_tool with action list_collection_items for retrieving existing itemsdata_cms_tool with action create_collection_items for creating items (draft or published)data_cms_tool with action update_collection_items for updating items (draft or published)data_cms_tool with action publish_collection_items for publishing draft itemswebflow_guide_tool to get best practices before startingcontext parameter (15-25 words, third-person perspective)data_cms_tool with action get_collection_list to show available collectionsdata_cms_tool with action get_collection_details to retrieve:
Ask operation type: Clarify what user wants to do:
Receive data from user: Accept data in flexible formats:
Parse and normalize: Convert user data into structured format
Fetch existing items (if updates involved): Use Webflow MCP's data_cms_tool with action list_collection_items to get current data
IMPORTANT - Efficient Item Lookup:
name parameter to filter (e.g., name: "Pikachu")slug parameter to filter*_live endpoints)User prompt:
Add 2 blog posts about Webflow MCP and update the first blog to say "Top" instead of "Best"
Step 1: Site & Collection Selection
📋 Bulk CMS Update Setup
Available Sites:
1. MCP Demo#1
2. MCP Demo#2
3. MCP Demo#3
Please select a site (1-3):
User selects: 1
Available Collections in MCP Demo#1:
└── Blog Posts (9 items)
Fields: name, slug, post-body, post-summary, main-image, thumbnail-image, featured, color
Proceed with Blog Posts collection? (yes/no)
User confirms: yes
Step 2: Data Collection
🔍 Collection Schema: Blog Posts
Required Fields:
- name (PlainText, max 256 chars)
- slug (PlainText, max 256 chars, alphanumeric only)
Optional Fields:
- post-body (RichText)
- post-summary (PlainText)
- main-image (Image)
- thumbnail-image (Image)
- featured (Switch, true/false)
- color (Color, hex format)
I'll parse your request:
- Create 2 new posts about Webflow MCP
- Update first post: "Best" → "Top"
Generating items...
Step 3: Validation & Preview
📋 Preview: Bulk CMS Update
Collection: Blog Posts
Operations: Create 2 items + Update 1 item
---
### 🆕 Items to Create (2)
[1] ✓ NEW POST
name: "Webflow MCP: The Future of Web Development"
slug: "webflow-mcp-future-web-development"
post-summary: "Discover how Webflow MCP is revolutionizing..."
post-body: "<h1>The Future is Here</h1><p>..."
featured: true
color: "#9B59B6"
✅ All validations passed
[2] ✓ NEW POST
name: "Why Webflow MCP Will Transform Your Workflow in 2026"
slug: "webflow-mcp-transform-workflow-2026"
post-summary: "Learn how Webflow MCP's integration..."
post-body: "<h1>Transform Your Workflow</h1><p>..."
featured: true
color: "#3498DB"
✅ All validations passed
---
### ✏️ Items to Update (1)
[3] ✓ UPDATE EXISTING
Item ID: 69615f84fc6ce1aa444d24d5
Slug: why-webflow-is-best-2026-ai
Changes:
name: "Why Webflow is the Best Choice for 2026" → "Why Webflow is the Top Choice for 2026"
✅ All validations passed
---
**Summary:**
- ✅ 2 items will be created
- ✅ 1 item will be updated
- ⚠️ 0 warnings
- ❌ 0 errors
**Publish Options:**
1. Publish immediately (recommended)
2. Save as drafts
Which items would you like to process?
- Type "all" to process all 3 items
- Type numbers to skip (e.g., "2" to skip item 2)
- Type "none" to cancel
Select publish option (1/2): _
Select items: _
User selects: 1, all
⚠️ You're about to:
- Create 2 new blog posts (published live)
- Update 1 existing blog post (changes published live)
Type "confirm" to proceed.
User confirms: confirm
Step 4: Execution & Results
🔄 Processing bulk update...
Creating items: ██████████ 100% (2/2)
Updating items: ██████████ 100% (1/1)
✅ Bulk CMS Update Complete!
---
### 🆕 Created Items (2)
✓ [1] "Webflow MCP: The Future of Web Development"
ID: 6961640c66de07bed9aacf3e
Slug: webflow-mcp-future-web-development
Published: Jan 9, 2026, 8:24 PM
✓ [2] "Why Webflow MCP Will Transform Your Workflow in 2026"
ID: 6961640c66de07bed9aacf41
Slug: webflow-mcp-transform-workflow-2026
Published: Jan 9, 2026, 8:24 PM
---
### ✏️ Updated Items (1)
✓ [3] "Why Webflow is the Top Choice for 2026"
ID: 69615f84fc6ce1aa444d24d5
Changed: title updated
Published: Jan 9, 2026, 8:24 PM
---
**Summary:**
- ✅ 2 items created successfully
- ✅ 1 item updated successfully
- ❌ 0 failures
- ⏱️ Completed in 3.2 seconds
**Total Items:** 11 (was 9)
📋 Rollback Available:
Last update: 3 items modified just now
Type "undo" within 5 minutes to revert all changes
Alternative: With Validation Warnings
📋 Preview: Bulk CMS Update
[1] ⚠️ NEW POST
name: "Test Post"
slug: "test"
post-summary: "Hi"
⚠️ Warning: post-summary too short (< 20 chars) - may affect SEO
⚠️ Warning: slug too generic - consider more descriptive slug
⚠️ Warning: missing post-body - content will be empty
✅ Required fields present (can proceed)
[2] ❌ NEW POST
name: "Another Post!!!"
slug: "another post"
❌ Error: slug contains spaces (must be alphanumeric with hyphens only)
❌ Error: name contains special characters not allowed
🔴 Cannot proceed - fix errors first
---
**Summary:**
- ✅ 1 item can be created (with warnings)
- ❌ 1 item has errors (cannot create)
Fix item 2 or skip it? (fix/skip)
Site & Collection Selection:
data_sites_tool with action list_sitesFlexible Input Formats: Accept data in multiple formats:
CREATE:
- name: "Post Title"
slug: "post-slug"
featured: true
"Add a blog post called 'Getting Started' with slug 'getting-started'"
name,slug,featured
"Post 1","post-1",true
"Post 2","post-2",false
- Post 1: "Title" (slug: title-slug)
- Post 2: "Another" (slug: another-slug)
Parsing Rules:
Efficient Item Lookup: When fetching existing items for updates, use filter parameters to minimize API calls:
# Good - Filter by name when you know the item name
data_cms_tool(action: "list_collection_items", collection_id, name: "Pikachu")
# Good - Filter by slug when you know the slug
data_cms_tool(action: "list_collection_items", collection_id, slug: "pikachu")
# Bad - Fetching all items then searching through results
data_cms_tool(action: "list_collection_items", collection_id) # Returns 100 items
# Then manually searching for "Pikachu" in results...
name or slug parameters when searching for specific itemsField Name Validation:
Required Fields:
name and slug are ALWAYS required for Webflow CMSField Type Validation:
PlainText:
RichText:
Image/File:
Switch (Boolean):
Color:
Reference Fields:
Slug Validation:
Constraint Validation:
Preview Format:
For Create Operations:
[1] ✓ NEW POST
field1: "value1"
field2: "value2"
field3: "value3"
✅ All validations passed
For Update Operations:
[2] ✓ UPDATE EXISTING
Item ID: xxx
Slug: existing-slug
Changes:
field1: "old value" → "new value"
field2: (no change)
field3: "old" → "new"
✅ All validations passed
For Items with Warnings:
[3] ⚠️ NEW POST
name: "Title"
⚠️ Warning: Missing optional field 'post-body'
⚠️ Warning: Slug may be too generic
✅ Can proceed (warnings only)
For Items with Errors:
[4] ❌ NEW POST
name: "Title!!!"
slug: "bad slug"
❌ Error: slug contains spaces
❌ Error: name has special characters
🔴 Cannot proceed - must fix errors
Granular Approval:
Publish Options:
*_live endpoints (recommended)Batch Processing:
Processing: ████████░░ 80% (40/50 items)
Error Handling:
For Single Item Failures:
Processing item 3/10...
❌ Failed: "Post Title"
Error: Slug already exists
→ Skipping to next item
Continue Processing:
For Critical Failures:
❌ Critical Error: API connection lost
Items processed before error: 7/50
- 5 created successfully
- 2 updated successfully
- 43 not processed
Retry failed items? (yes/no)
Success Report Format:
✅ Operation Complete
Created: 25 items
- Show first 5 with IDs
- "[+20 more]" if > 5
Updated: 10 items
- Show first 5 with IDs
- "[+5 more]" if > 5
Failed: 2 items
- "Item Name": Error reason
- "Item Name": Error reason
Total time: 12.5 seconds
Items per second: 2.8
Rollback Capability:
Store Before Changes:
{
"timestamp": "2026-01-09T20:24:44Z",
"operations": [
{
"type": "update",
"itemId": "xxx",
"originalValues": {
"name": "Old Title",
"featured": false
},
"newValues": {
"name": "New Title",
"featured": true
}
}
]
}
Offer Rollback:
📋 Rollback Available:
Last update: 15 items modified 2 minutes ago
Rollback will:
- Restore 10 updated items to previous values
- Delete 5 newly created items
⚠️ Type "undo" to rollback all changes
⚠️ Rollback expires in 3 minutes
Batch Size:
Progress Indicators:
Creating items...
Batch 1/3: ████████████████████ 100% (50/50)
Batch 2/3: ████████████████████ 100% (50/50)
Batch 3/3: ██████░░░░░░░░░░░░░░ 30% (15/50)
Rate Limiting:
Clear and Actionable:
❌ Bad:
"Error: validation failed"
✅ Good:
"Validation Error on item 3:
- Slug 'my post' contains spaces
- Change to: 'my-post' (alphanumeric with hyphens only)"
Error Categories:
Always:
Never:
Edge Cases:
User Experience: