webflow/webflow-mcp:bulk-cms-update
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.
npx skills add https://github.com/webflow/webflow-skills --skill webflow-mcp:bulk-cms-update
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:data_cms_tool with action list_collection_items to get current dataIMPORTANT - Efficient Item Lookup:
name parameter to filter (e.g., name: "Pikachu")slug parameter to filter10. Detect conflicts:
11. Analyze impact:
12. Generate detailed preview:
13. Present granular approval options:
14. Offer publish options:
*_live endpoints)15. Store rollback data: Before any changes, save:
16. Process in batches:
17. Execute operations: Use appropriate Webflow MCP tools based on user choice
18. Handle errors gracefully:
19. Generate comprehensive report:
20. Offer rollback option: Allow user to undo changes if needed
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:
Take webflow/webflow-mcp:bulk-cms-update from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.