# 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.

- **Type:** Skill
- **Install:** `agentstack add skill-webflow-webflow-skills-bulk-cms-update`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [webflow](https://agentstack.voostack.com/s/webflow)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [webflow](https://github.com/webflow)
- **Source:** https://github.com/webflow/webflow-skills/tree/main/plugins/webflow-skills/skills/bulk-cms-update

## Install

```sh
agentstack add skill-webflow-webflow-skills-bulk-cms-update
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Bulk CMS Update

Create or update multiple CMS items with comprehensive validation, granular approval, and rollback capability.

## Important Note

**ALWAYS use Webflow MCP tools for all operations:**
- Use Webflow MCP's `data_sites_tool` with action `list_sites` for listing available sites
- Use Webflow MCP's `data_cms_tool` with action `get_collection_list` for listing CMS collections
- Use Webflow MCP's `data_cms_tool` with action `get_collection_details` for fetching collection schemas
- Use Webflow MCP's `data_cms_tool` with action `list_collection_items` for retrieving existing items
- Use Webflow MCP's `data_cms_tool` with action `create_collection_items` for creating items (draft or published)
- Use Webflow MCP's `data_cms_tool` with action `update_collection_items` for updating items (draft or published)
- Use Webflow MCP's `data_cms_tool` with action `publish_collection_items` for publishing draft items
- Use Webflow MCP's `webflow_guide_tool` to get best practices before starting
- DO NOT use any other tools or methods for Webflow operations
- All tool calls must include the required `context` parameter (15-25 words, third-person perspective)

## Instructions

### Phase 1: Site & Collection Selection
1. **Get site**: Identify the target site. If user does not provide site ID, ask for it.
2. **List collections**: Use Webflow MCP's `data_cms_tool` with action `get_collection_list` to show available collections
3. **Ask user to select collection**: User specifies which collection to work with
4. **Fetch collection schema**: Use Webflow MCP's `data_cms_tool` with action `get_collection_details` to retrieve:
   - All field definitions with types
   - Required vs optional fields
   - Field validations (max length, patterns, etc.)
   - Reference field targets

### Phase 2: Data Collection & Parsing
5. **Ask operation type**: Clarify what user wants to do:
   - Create new items only
   - Update existing items only
   - Both create and update
6. **Receive data from user**: Accept data in flexible formats:
   - Structured format (JSON-like)
   - Natural language descriptions
   - CSV-style data
   - Bullet lists
7. **Parse and normalize**: Convert user data into structured format
8. **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:**
   - When searching for specific items by name, ALWAYS use the `name` parameter to filter (e.g., `name: "Pikachu"`)
   - When searching by slug, use the `slug` parameter to filter
   - NEVER fetch all items first and then search through the results - this wastes API calls and tokens
   - Only fetch the full list when you need to display all items or don't know which specific items to target

### Phase 3: Validation & Analysis
9. **Validate all data**:
   - **Field names**: Check all field names exist in schema
   - **Required fields**: Ensure all required fields are provided
   - **Field types**: Validate data types match schema
   - **Constraints**: Check max lengths, patterns, allowed values
   - **Slugs**: Ensure slugs are unique and valid
   - **Reference fields**: Verify referenced items exist
10. **Detect conflicts**:
    - Duplicate slugs (within batch or with existing items)
    - Missing required fields
    - Invalid data types
    - Constraint violations
11. **Analyze impact**:
    - Count creates vs updates
    - Identify which fields will change
    - Calculate batch size and processing time

### Phase 4: Preview & Granular Approval
12. **Generate detailed preview**:
    - Show each item with validation status
    - Display warnings for any issues
    - For updates, show diffs (old → new)
    - For creates, show all field values
    - Number each item for selective approval
13. **Present granular approval options**:
    - Allow user to select specific items to process
    - Options: "all", "none", specific numbers, number ranges
    - Show estimated processing time
14. **Offer publish options**:
    - Publish immediately (use `*_live` endpoints)
    - Create as drafts (use regular endpoints + manual publish)

### Phase 5: Execution & Reporting
15. **Store rollback data**: Before any changes, save:
    - Original values for all updated items
    - Timestamp
    - Operation details
16. **Process in batches**:
    - Maximum 50 items per batch
    - Show progress indicator
    - Handle rate limits gracefully
17. **Execute operations**: Use appropriate Webflow MCP tools based on user choice
18. **Handle errors gracefully**:
    - Continue processing on single item failures
    - Track successes and failures separately
    - Provide detailed error messages
19. **Generate comprehensive report**:
    - Summary (success/failure counts)
    - Detailed results per item
    - Item IDs for created/updated items
    - Error details for failed items
20. **Offer rollback option**: Allow user to undo changes if needed

## Examples

**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: "The Future is Here..."
    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: "Transform Your Workflow..."
    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 ( 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:**
```json
{
  "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
```

### Performance Optimization

**Batch Size:**
- Default: 50 items per batch
- Adjust based on field complexity
- Heavy images: 20 items per batch
- Simple text fields: 100 items per batch

**Progress Indicators:**
```
Creating items...
Batch 1/3: ████████████████████ 100% (50/50)
Batch 2/3: ████████████████████ 100% (50/50)
Batch 3/3: ██████░░░░░░░░░░░░░░ 30% (15/50)
```

**Rate Limiting:**
- Respect Webflow API rate limits
- Pause between batches if needed
- Show user why waiting
- Retry failed requests automatically (max 3 attempts)

### Error Messages

**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:**
- 🔴 **Critical**: Cannot proceed at all (API down, invalid auth)
- ❌ **Error**: This item cannot be processed (fix or skip)
- ⚠️ **Warning**: Can proceed but not recommended (missing optional fields)
- 💡 **Suggestion**: Best practices (slug too generic, summary too short)

### Best Practices

**Always:**
- ✅ Show preview before any changes
- ✅ Require explicit confirmation
- ✅ Validate all data thoroughly
- ✅ Process in batches for large operations
- ✅ Report successes and failures separately
- ✅ Offer rollback for recent changes
- ✅ Use granular approval for flexibility

**Never:**
- ❌ Apply changes without user confirmation
- ❌ Fail entire batch for single item error
- ❌ Assume field names or values
- ❌ Process without validating first
- ❌ Hide validation warnings from user

**Edge Cases:**
- Duplicate slugs: Auto-append number (post-title-2)
- Missing optional fields: Leave empty (don't invent values)
- Large batches: Warn about processing time
- Reference fields: Validate targets exist
- Image fields: Accept URLs or file IDs

**User Experience:**
- Show collection schema upfront
- Number items for easy reference
- Use visual hierarchy (├── └──)
- Provide actionable error messages
- Estimate processing time
- Allow cancellation mid-process

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [webflow](https://github.com/webflow)
- **Source:** [webflow/webflow-skills](https://github.com/webflow/webflow-skills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-webflow-webflow-skills-bulk-cms-update
- Seller: https://agentstack.voostack.com/s/webflow
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
