cms-collection-setup

Create a new CMS collection with custom fields, relationships, and proper configuration.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "cms-collection-setup" with this command: npx skills add webflow/webflow-skills/webflow-webflow-skills-cms-collection-setup

CMS Collection Setup

Create a new CMS collection with custom fields, relationships, and proper configuration.

Important Note

ALWAYS use Webflow MCP tools for all operations:

  • Use Webflow MCP's webflow_guide_tool to get best practices before starting

  • Use Webflow MCP's data_sites_tool with action list_sites to identify available sites

  • Use Webflow MCP's data_sites_tool with action get_site to retrieve site details and plan limits

  • Use Webflow MCP's data_cms_tool with action get_collection_list to check for naming conflicts

  • Use Webflow MCP's data_cms_tool with action create_collection to create the collection

  • Use Webflow MCP's data_cms_tool with action create_collection_static_field to create static fields

  • Use Webflow MCP's data_cms_tool with action create_collection_option_field to create option fields

  • Use Webflow MCP's data_cms_tool with action create_collection_reference_field to create reference/multi-reference fields

  • Use Webflow MCP's data_cms_tool with action get_collection_details to verify collection was created correctly

  • 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 Selection & Discovery

  • Get site information: Use Webflow MCP's data_sites_tool with action list_sites to identify target site

  • Confirm site: Ask user to select site if multiple available

  • Check plan limits: Use Webflow MCP's data_sites_tool with action get_site to verify collection limits

  • List existing collections: Use Webflow MCP's data_cms_tool with action get_collection_list to check for conflicts

  • Validate naming: Ensure new collection name doesn't conflict with existing

Phase 2: Requirements Gathering

  • Get collection details: Ask user for:

  • Collection display name (e.g., "Blog Posts")

  • Singular name (e.g., "Blog Post")

  • Optional: Custom slug (default: auto-generated from display name)

  • Get field definitions: For each field, gather:

  • Field name (e.g., "Author Name", "Publish Date")

  • Field type (Text, Rich Text, Image, Option, Reference, etc.)

  • Required vs optional

  • Any validation rules or help text

  • Identify relationships: Determine if collection needs:

  • Reference fields (one-to-many relationships)

  • Multi-reference fields (many-to-many relationships)

  • Option fields (controlled vocabulary)

Phase 3: Schema Validation & Planning

  • Validate field types: Check all field types are supported

  • Check field limits: Ensure within Webflow limits:

  • Max fields per collection: varies by plan

  • Max 5 multi-reference fields per collection

  • Plan creation order: Organize fields by dependency:

  • Create collections in order if references exist

  • Create referenced collections first

  • Create option fields before reference fields

  • Generate preview: Show complete schema with all fields

Phase 4: User Approval

  • Show complete preview: Display:

  • Collection name and slug

  • All fields with types and properties

  • Any relationships to other collections

  • Plan limit verification

  • Validate schema: Check for common issues:

  • Missing required fields (name, slug always required)

  • Invalid field types

  • Reference to non-existent collections

  • Exceeding plan limits

  • Request confirmation: Wait for explicit "create" approval

Phase 5: Collection Creation

  • Create collection: Use Webflow MCP's data_cms_tool with action create_collection with:

  • Display name

  • Singular name

  • Optional slug

  • Capture collection ID: Save for field creation

  • Show progress: Report collection created successfully

Phase 6: Field Creation

  • Create fields in order: For each field:

  • Use appropriate creation tool based on type

  • Static fields: data_cms_tool with action create_collection_static_field

  • Option fields: data_cms_tool with action create_collection_option_field

  • Reference fields: data_cms_tool with action create_collection_reference_field

  • Set field properties:

  • Display name

  • Required flag

  • Help text (if provided)

  • Validation rules (if applicable)

  • Show progress: Report each field created

  • Handle errors: If field creation fails, report and continue

Phase 7: Verification & Reporting

  • Verify collection: Use Webflow MCP's data_cms_tool with action get_collection_details to retrieve full schema

  • Confirm all fields: Check that all requested fields were created

  • Generate report: Show:

  • Collection ID

  • Collection name and slug

  • All fields created with IDs

  • Any failures or warnings

  • Provide next steps: Suggest:

  • Use bulk-cms-update to add initial items

  • Create collection pages in Designer

  • Set up relationships if applicable

Field Type Reference

Static Field Types

PlainText - Short text (max 256 chars) or long text

  • Use for: Titles, names, descriptions, excerpts

  • Properties: maxLength validation (256 for short)

  • Example: "Title", "Author Name", "Excerpt"

RichText - Formatted text with HTML

  • Use for: Blog content, bios, articles, long descriptions

  • Properties: No length limit

  • Example: "Post Content", "Bio", "Description"

Email - Email address

  • Use for: Contact emails, author emails

  • Properties: Email format validation

  • Example: "Contact Email", "Author Email"

Phone - Phone number

  • Use for: Contact numbers

  • Properties: E.164 format

  • Example: "Phone Number", "Mobile"

Link - External URL or internal link

  • Use for: Website links, social media, external resources

  • Properties: URL validation

  • Example: "Website", "LinkedIn Profile"

Number - Numeric values

  • Use for: Prices, ratings, counts, order numbers

  • Properties: Integer or decimal

  • Example: "Price", "Rating", "Order"

Image - Single image

  • Use for: Featured images, photos, thumbnails

  • Properties: Max 4MB per image

  • Example: "Featured Image", "Photo", "Thumbnail"

MultiImage - Multiple images (up to 25)

  • Use for: Galleries, product photos

  • Properties: Max 25 images, 4MB each

  • Example: "Gallery", "Product Photos"

File - File upload

  • Use for: PDFs, documents, downloads

  • Properties: Max 4MB per file

  • Example: "Resume PDF", "Brochure", "Manual"

Video - Video embed (YouTube/Vimeo)

  • Use for: Video content

  • Properties: Embed URL

  • Example: "Tutorial Video", "Demo"

DateTime - Date and/or time

  • Use for: Publish dates, event dates, deadlines

  • Properties: ISO 8601 format

  • Example: "Publish Date", "Event Date"

Switch - Boolean (true/false)

  • Use for: Featured flags, visibility toggles

  • Properties: Boolean value

  • Example: "Featured", "Published", "Active"

Color - Color value

  • Use for: Theme colors, accents, brand colors

  • Properties: Hex format

  • Example: "Brand Color", "Accent Color"

Option Field Type

Option - Single choice from predefined list

  • Use for: Status, category, type, priority

  • Properties: List of option names

  • Example: "Status" (Draft, Review, Published)

  • Creation: Use data_cms_tool with action create_collection_option_field with options array

Example:

{ "type": "Option", "displayName": "Status", "metadata": { "options": [ {"name": "Draft"}, {"name": "In Review"}, {"name": "Published"} ] } }

Reference Field Types

Reference - Link to one item in another collection (one-to-many)

  • Use for: Author → Post, Category → Post, Brand → Product

  • Properties: Collection ID of referenced collection

  • Example: "Author" (reference to Authors collection)

  • Creation: Use data_cms_tool with action create_collection_reference_field with collectionId

MultiReference - Link to multiple items in another collection (many-to-many)

  • Use for: Post → Tags, Product → Features, Project → Technologies

  • Properties: Collection ID of referenced collection

  • Limit: Max 5 multi-reference fields per collection

  • Example: "Tags" (reference to Tags collection)

  • Creation: Use data_cms_tool with action create_collection_reference_field with collectionId

Reference Field Example:

{ "type": "Reference", "displayName": "Author", "metadata": { "collectionId": "abc123..." } }

Multi-Reference Field Example:

{ "type": "MultiReference", "displayName": "Tags", "metadata": { "collectionId": "xyz789..." } }

Examples

Example 1: Simple Blog Collection

User prompt:

Create a Blog Posts collection with title, content, author, and publish date

Step 1: Discovery

🔍 CMS Collection Setup

Available sites:

  1. Company Website
  2. Blog Site

Which site? (1/2)

Step 2: After User Selects Site

📊 Existing Collections on Company Website:

Currently: 0 collections Plan limit: 20 collections (CMS Plan)

✅ You have capacity to create new collections.


📋 Collection Requirements

Display Name: Blog Posts Singular Name: Blog Post Slug: blog-posts (auto-generated)

Fields to create:

  1. Title - Text (required)
  2. Content - Rich Text (required)
  3. Author - Text
  4. Publish Date - Date/Time (required)

Is this correct? (yes/no) If you want to add/modify fields, describe the changes.

Step 3: Preview

📋 Preview: Create "Blog Posts" Collection

Collection: ├── Display Name: Blog Posts ├── Singular Name: Blog Post ├── Slug: blog-posts └── Site: Company Website

Fields (6 total): ├── name (PlainText, required) ← Auto-created ├── slug (PlainText, required) ← Auto-created ├── title (PlainText, required) ├── content (RichText, required) ├── author (PlainText) └── publish-date (DateTime, required)

✅ Validation Passed:

  • Collection name available
  • Within plan limits (0/20 collections)
  • All field types valid
  • No dependency issues

⚠️ Type "create" to proceed.

Step 4: Creation

🔄 Creating Collection...

✅ Collection created: Blog Posts (ID: 64f1a2b3...)

Adding fields... ├── ✅ title (PlainText) ├── ✅ content (RichText) ├── ✅ author (PlainText) └── ✅ publish-date (DateTime)

Progress: ████████████████████ 100% (4/4 fields)

🎉 Collection Setup Complete!

Collection: Blog Posts ID: 64f1a2b3... Fields: 6 (2 auto-created + 4 custom)


💡 Next Steps:

  1. Use bulk-cms-update to add initial blog posts
  2. Create collection template page in Designer
  3. Set up collection list page for blog index
  4. Configure SEO settings for dynamic pages

Example 2: Collection with Relationships

User prompt:

Create a Products collection with name, price, description, images, brand, and tags

Step 1: After Initial Gathering

📋 Collection Analysis

I see you want:

  • Brand: This should be a reference field
  • Tags: This should be a multi-reference field

This requires creating additional collections first:

  1. Brands collection
  2. Tags collection

Then we can create Products with references to them.

Would you like me to: A) Create all three collections (Brands, Tags, Products) B) Just create Products (you'll add relationships later) C) Modify the requirements

Your choice? (A/B/C)

Step 2: After User Selects "A"

📋 Preview: Create 3 Collections


1. Brands Collection

Fields (4 total): ├── name (PlainText, required) ← Auto ├── slug (PlainText, required) ← Auto ├── logo (Image) └── description (PlainText)


2. Tags Collection

Fields (3 total): ├── name (PlainText, required) ← Auto ├── slug (PlainText, required) ← Auto └── color (Color)


3. Products Collection

Fields (9 total): ├── name (PlainText, required) ← Auto ├── slug (PlainText, required) ← Auto ├── price (Number, required) ├── description (RichText) ├── images (MultiImage) ├── brand (Reference → Brands) └── tags (MultiReference → Tags)


Creation Order:

  1. Brands (no dependencies)
  2. Tags (no dependencies)
  3. Products (references 1 & 2)

✅ Validation:

  • All collections available
  • Within plan limits (0/20 collections)
  • Multi-reference limit: 1/5 ✅
  • All dependencies resolvable

⚠️ Type "create" to proceed with all 3 collections.

Step 3: Creation

🔄 Creating Collections...

[1/3] Creating Brands... ✅ Brands collection created (ID: abc123...) ├── ✅ logo (Image) └── ✅ description (PlainText)

[2/3] Creating Tags... ✅ Tags collection created (ID: def456...) └── ✅ color (Color)

[3/3] Creating Products... ✅ Products collection created (ID: ghi789...) ├── ✅ price (Number) ├── ✅ description (RichText) ├── ✅ images (MultiImage) ├── ✅ brand (Reference → Brands) └── ✅ tags (MultiReference → Tags)

Progress: ████████████████████ 100% (3/3 collections)

🎉 All Collections Created!

Summary: ├── Brands (ID: abc123...) ├── Tags (ID: def456...) └── Products (ID: ghi789...)


💡 Next Steps:

  1. Add brand items first (use bulk-cms-update)
  2. Add tag items (use bulk-cms-update)
  3. Then add products with brand/tag references
  4. Create collection pages in Designer

Example 3: Team Members with Option Field

User prompt:

Create a Team Members collection with name, role (dropdown: Designer, Developer, Manager), bio, photo, email

Step 1: Preview

📋 Preview: Create "Team Members" Collection

Collection: ├── Display Name: Team Members ├── Singular Name: Team Member └── Slug: team-members

Fields (7 total): ├── name (PlainText, required) ← Auto ├── slug (PlainText, required) ← Auto ├── role (Option, required) │ Options: │ ├── Designer │ ├── Developer │ └── Manager ├── bio (RichText) ├── photo (Image) └── email (Email)

✅ Validation Passed

⚠️ Type "create" to proceed.

Step 2: Creation

🔄 Creating Collection...

✅ Collection created: Team Members (ID: jkl012...)

Adding fields... ├── ✅ role (Option: 3 options) ├── ✅ bio (RichText) ├── ✅ photo (Image) └── ✅ email (Email)

Progress: ████████████████████ 100% (4/4 fields)

🎉 Collection Setup Complete!

Collection: Team Members Fields: 6 (2 auto + 4 custom)

Field Details:

  • role: Option field with 3 choices • Designer • Developer • Manager

💡 Next Steps:

  1. Add team member items
  2. Create team page in Designer
  3. Consider adding:
    • LinkedIn profile (Link field)
    • Years of experience (Number field)
    • Specializations (MultiReference to Skills collection)

Example 4: Complex E-commerce Setup

User prompt:

Create an e-commerce setup with Products, Categories, Brands, and Features

Step 1: Requirements Clarification

📋 E-commerce Collection Planning

I'll create 4 collections:

  1. Categories - Product categories
  2. Brands - Product brands
  3. Features - Product features (e.g., "Waterproof", "Wireless")
  4. Products - Main product catalog

Relationships:

  • Product → Category (Reference)
  • Product → Brand (Reference)
  • Product → Features (MultiReference)

Fields per collection:

Categories:

  • Name, Slug (auto)
  • Description
  • Parent Category (self-reference for hierarchy)
  • Icon

Brands:

  • Name, Slug (auto)
  • Logo
  • Description

Features:

  • Name, Slug (auto)
  • Icon
  • Description

Products:

  • Name, Slug (auto)
  • Price
  • Sale Price
  • Description
  • Images (MultiImage)
  • Category (Reference → Categories)
  • Brand (Reference → Brands)
  • Features (MultiReference → Features)
  • In Stock (Switch)
  • SKU (PlainText)

Is this structure good? (yes/modify/cancel)

Step 2: Preview (User says "yes")

📋 Preview: Create E-commerce Collections


Collection 1: Categories

Fields (5 total): ├── name (PlainText, required) ├── slug (PlainText, required) ├── description (PlainText) ├── parent-category (Reference → Categories) ← Self-reference └── icon (Image)


Collection 2: Brands

Fields (4 total): ├── name (PlainText, required) ├── slug (PlainText, required) ├── logo (Image) └── description (PlainText)


Collection 3: Features

Fields (4 total): ├── name (PlainText, required) ├── slug (PlainText, required) ├── icon (Image) └── description (PlainText)


Collection 4: Products

Fields (12 total): ├── name (PlainText, required) ├── slug (PlainText, required) ├── price (Number, required) ├── sale-price (Number) ├── description (RichText) ├── images (MultiImage) ├── category (Reference → Categories) ├── brand (Reference → Brands) ├── features (MultiReference → Features) ├── in-stock (Switch) └── sku (PlainText)


Creation Order:

  1. Categories (self-reference OK)
  2. Brands (no dependencies)
  3. Features (no dependencies)
  4. Products (references 1, 2, 3)

✅ Validation:

  • Within plan limits (0/20 collections)
  • Multi-reference count: 1/5 ✅
  • All field types valid
  • Self-reference supported

⚠️ Type "create" to proceed with all 4 collections.

Step 3: Creation with Progress

🔄 Creating E-commerce Collections...

[1/4] Creating Categories... ✅ Categories created (ID: aaa111...) Progress: ████████░░░░░░░░░░░░ 25%

[2/4] Creating Brands... ✅ Brands created (ID: bbb222...) Progress: ████████████░░░░░░░░ 50%

[3/4] Creating Features... ✅ Features created (ID: ccc333...) Progress: ████████████████░░░░ 75%

[4/4] Creating Products... ✅ Products created (ID: ddd444...) Progress: ████████████████████ 100%


🎉 E-commerce Setup Complete!

Collections Created (4): ├── Categories (ID: aaa111..., 5 fields) ├── Brands (ID: bbb222..., 4 fields) ├── Features (ID: ccc333..., 4 fields) └── Products (ID: ddd444..., 12 fields)

Relationships Configured:

  • Products → Categories (one-to-many)
  • Products → Brands (one-to-many)
  • Products → Features (many-to-many)
  • Categories → Parent Category (self-reference)

💡 Recommended Content Order:

  1. Add categories first (including parent relationships)
  2. Add brands
  3. Add features
  4. Finally add products (with all references)

💡 Next Steps:

  1. Use bulk-cms-update for initial data
  2. Create product template page
  3. Create product listing page with filters
  4. Set up category landing pages
  5. Configure e-commerce integration

Guidelines

Phase 1: Discovery Best Practices

Site Selection:

  • Always use sites_list to get available sites

  • Never assume site ID

  • Verify user has correct site selected

Plan Limit Checking:

Check limits before creation:

  • Starter: 1 collection, 50 items
  • Basic: 2 collections, 200 items
  • CMS: 20 collections, 2,000 items
  • Business: 40 collections, 10,000 items
  • Enterprise: Custom

Warn user if approaching limits.

Naming Conflict Prevention:

  • Check existing collection names

  • Suggest alternative names if conflict

  • Validate slug availability

Phase 2: Requirements Gathering Best Practices

Display Name vs Singular Name:

Display Name: Plural form shown in CMS Singular Name: Singular form for individual items

Examples:

  • Display: "Blog Posts" → Singular: "Blog Post"
  • Display: "Team Members" → Singular: "Team Member"
  • Display: "Products" → Singular: "Product"
  • Display: "Categories" → Singular: "Category"

Field Naming Conventions:

✅ Good names:

  • author-name (descriptive, hyphenated)
  • publish-date (clear purpose)
  • featured-image (specifies which)
  • main-content (explains use)

❌ Bad names:

  • text1 (meaningless)
  • field (too generic)
  • data (unclear)
  • img (which image?)

Detecting Relationships:

If user says: "... with author" → Likely reference field "... with tags" → Likely multi-reference field "... with category" → Likely reference field "... with related products" → Likely multi-reference field

Ask clarifying questions:

  • Is [author] the same across items? → Reference
  • Can items have multiple [tags]? → Multi-reference
  • Do you have a [Categories] collection? → Check existence

Phase 3: Schema Validation Best Practices

Field Type Validation:

Common field type mappings:

User says... → Field type: "title", "name" → PlainText "description", "summary" → PlainText (long) "content", "bio", "article" → RichText "photo", "image", "thumbnail" → Image "gallery", "photos" → MultiImage "document", "PDF", "file" → File "video" → Video "link", "URL", "website" → Link "email" → Email "phone", "mobile" → Phone "price", "cost", "amount" → Number "date", "published", "deadline" → DateTime "featured", "active", "published" → Switch "status", "type", "category" → Option (if fixed choices) "color", "theme" → Color

Multi-Reference Limit Check:

Count multi-reference fields requested:

If > 5: ⚠️ Warning: Collection Limit Exceeded

Webflow allows max 5 multi-reference fields per collection.

You requested: 7 multi-reference fields

Options:

  1. Choose 5 most important relationships
  2. Convert some to reference fields (one-to-many)
  3. Create bridging collections
  4. Use option fields for simple categorization

Which would you prefer?

Dependency Resolution:

For reference fields:

  1. Check if referenced collection exists
  2. If not, add to creation queue
  3. Create in correct order

Example: Products needs:

  • Categories collection (create first)
  • Brands collection (create first) Then create Products

Phase 4: Preview Best Practices

Complete Preview Format:

📋 Preview: Create "[Collection Name]"

Collection Details: ├── Display Name: [Name] ├── Singular Name: [Singular] ├── Slug: [slug] └── Site: [Site Name]

Fields ([X] total): ├── name (PlainText, required) ← Auto-created ├── slug (PlainText, required) ← Auto-created ├── [field-1] ([Type], [required/optional]) ├── [field-2] ([Type], [required/optional]) │ [Additional info if Option or Reference] └── [field-n] ([Type], [required/optional])

Relationships: ├── [field] → [Collection] (Reference) └── [field] → [Collection] (MultiReference)

✅ Validation Results:

  • Collection name available: Yes
  • Within plan limits: X/Y collections
  • Multi-reference count: X/5
  • All field types valid: Yes
  • Dependencies resolved: Yes

⚠️ Type "create" to proceed.

Validation Checks:

Before showing preview:

  1. ✅ Collection name available
  2. ✅ Within plan collection limit
  3. ✅ All field types supported
  4. ✅ Multi-reference limit ≤ 5
  5. ✅ Referenced collections exist or queued
  6. ✅ No circular dependencies
  7. ✅ Field names follow conventions

Phase 5: Creation Best Practices

Collection Creation:

Required fields:

  • displayName (required)
  • singularName (required)
  • slug (optional, auto-generated if omitted)

Always include both names for clarity: ✅ {"displayName": "Blog Posts", "singularName": "Blog Post"} ❌ {"displayName": "Blog Posts"} (missing singular)

Error Handling:

If collection creation fails: ❌ Collection Creation Failed

Error: [Error message from API]

Common causes:

  • Collection name already exists
  • Invalid characters in name/slug
  • Plan limit reached
  • API authentication issue

Would you like to:

  1. Try a different collection name
  2. Check existing collections
  3. Upgrade plan
  4. Cancel operation

Phase 6: Field Creation Best Practices

Field Creation Order:

Create fields in this order:

  1. Static fields (Text, Rich Text, Number, etc.)
  2. Option fields (with options defined)
  3. Reference fields (after referenced collections exist)

For each field:

  • Set displayName
  • Set isRequired flag
  • Add helpText if provided by user
  • Set validation rules if applicable

Field Creation Tools:

Field Type → Tool to use:

PlainText, RichText, Email, Phone, Link, Number, Image, MultiImage, File, Video, DateTime, Switch, Color → collection_fields_create_static

Option → collection_fields_create_option (requires metadata.options array)

Reference, MultiReference → collection_fields_create_reference (requires metadata.collectionId)

Progress Reporting:

For each field created: ✅ [field-name] ([FieldType])

If field fails: ❌ [field-name] - [Error message]

Continue with remaining fields even if one fails. Report all failures at end.

Option Field Creation:

{ "type": "Option", "displayName": "Status", "isRequired": false, "metadata": { "options": [ {"name": "Draft"}, {"name": "Published"}, {"name": "Archived"} ] } }

Notes:

  • Options have name property
  • Options cannot have ID (auto-generated)
  • Minimum 2 options required
  • Maximum: unlimited

Reference Field Creation:

{ "type": "Reference", "displayName": "Author", "isRequired": true, "metadata": { "collectionId": "abc123..." } }

For MultiReference: { "type": "MultiReference", "displayName": "Tags", "metadata": { "collectionId": "def456..." } }

Notes:

  • Must provide collectionId of referenced collection
  • Referenced collection must already exist
  • Max 5 MultiReference fields per collection

Phase 7: Verification Best Practices

Post-Creation Verification:

After creating collection and fields:

  1. Call data_cms_tool with action get_collection_details with collection ID
  2. Verify all fields present
  3. Check field properties match request
  4. Confirm relationships configured correctly

Final Report Format:

🎉 Collection Setup Complete!

Collection: [Name] ID: [collection-id] Slug: [slug]

Fields Created ([X]): ├── name (PlainText, required) ← Auto ├── slug (PlainText, required) ← Auto ├── [field-1] ([Type]) ├── [field-2] ([Type]) └── [field-n] ([Type])

[If relationships exist] Relationships: ├── [field] → [Collection] └── [field] → [Collection]

[If any failures] ⚠️ Failed Fields ([Y]): ├── [field]: [error] └── [field]: [error]


💡 Next Steps: [Relevant suggestions based on collection type]

Next Steps Suggestions:

For any collection:

  1. Use bulk-cms-update to add initial items
  2. Create collection template page in Designer
  3. Create collection list page
  4. Configure SEO settings

For collections with relationships: 5. Create referenced collections first 6. Add items in dependency order 7. Test relationship displays

For e-commerce: 5. Set up payment integration 6. Configure inventory management 7. Create checkout flow

Phase 8: Error Handling

Common Errors:

  1. Collection Name Conflict:

❌ Collection Already Exists

A collection named "Blog Posts" already exists on this site.

Existing collection:

  • Name: Blog Posts
  • ID: xyz789...
  • Created: 2025-12-15

Would you like to:

  1. Choose a different name

  2. View existing collection

  3. Add fields to existing collection

  4. Cancel

  5. Plan Limit Reached:

❌ Plan Limit Reached

Cannot create collection. You've reached your plan limit.

Current: 20/20 collections (CMS Plan)

Options:

  1. Upgrade to Business Plan (40 collections)
  2. Delete unused collections
  3. Contact Webflow support

Would you like me to show your existing collections?

  1. Invalid Field Type:

❌ Invalid Field Type

Field type "dropdown" is not supported by Webflow.

Did you mean:

  • "Option" - Single choice from list
  • "Reference" - Link to another collection
  • "MultiReference" - Link to multiple items

Which would you like to use?

  1. Referenced Collection Not Found:

❌ Referenced Collection Not Found

Cannot create reference field to "Authors" collection.

Issue: "Authors" collection doesn't exist yet.

Solutions:

  1. Create "Authors" collection first
  2. Remove reference field for now
  3. Let me create both collections in order

Your choice? (1/2/3)

  1. Multi-Reference Limit Exceeded:

❌ Too Many Multi-Reference Fields

You requested 6 multi-reference fields. Webflow limit: 5 per collection

Requested:

  1. Tags
  2. Categories
  3. Related Products
  4. Features
  5. Certifications
  6. Compatible Products ← Exceeds limit

Choose 5 to keep, or convert one to Reference field.

Phase 9: Advanced Scenarios

Self-Referencing Collections:

Example: Categories with parent categories

Collection: Categories Fields: ├── name (PlainText, required) ├── slug (PlainText, required) ├── parent-category (Reference → Categories) └── level (Number) - 1, 2, 3 for hierarchy

Implementation: { "type": "Reference", "displayName": "Parent Category", "isRequired": false, "metadata": { "collectionId": "[same-collection-id]" } }

Note: Must create collection first, then add self-reference field

Multi-Collection Setup:

When creating multiple related collections:

  1. Identify dependencies:

    • Which collections reference others?
    • What's the creation order?
  2. Create in order:

    • Independent collections first
    • Dependent collections after
  3. Show overall progress: [1/4] Creating Categories... [2/4] Creating Brands... [3/4] Creating Tags... [4/4] Creating Products...

  4. Report collectively: All 4 collections created successfully!

Complex Option Fields:

For complex dropdowns:

User: "Create status field with Draft, In Review, Approved, Published, Archived"

Option field with 5 choices: { "type": "Option", "displayName": "Status", "isRequired": true, "metadata": { "options": [ {"name": "Draft"}, {"name": "In Review"}, {"name": "Approved"}, {"name": "Published"}, {"name": "Archived"} ] } }

Tip: Use workflow order for options

Production Checklist

Before considering collection setup complete:

✅ Discovery

  • Site selected and confirmed

  • Plan limits checked

  • Existing collections listed

  • No naming conflicts

  • User has appropriate permissions

✅ Requirements

  • Display name gathered

  • Singular name gathered

  • All fields defined with types

  • Required vs optional specified

  • Relationships identified

✅ Validation

  • All field types valid

  • Multi-reference count ≤ 5

  • Referenced collections exist or queued

  • No circular dependencies

  • Field names follow conventions

  • Within plan limits

✅ Preview

  • Complete schema shown

  • All fields listed with properties

  • Relationships displayed

  • Validation results shown

  • User confirmation obtained

✅ Creation

  • Collection created successfully

  • Collection ID captured

  • All fields created

  • Field creation errors handled

  • Progress shown to user

✅ Verification

  • Collection retrieved and verified

  • All fields present

  • Field properties correct

  • Relationships configured

  • Any errors reported

✅ Reporting

  • Final summary provided

  • Collection ID shared

  • Fields listed

  • Failures reported (if any)

  • Next steps suggested

✅ Error Handling

  • Collection conflicts handled

  • Plan limits checked

  • Invalid field types caught

  • Missing references detected

  • Partial failures reported

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

cms-best-practices

No summary provided by upstream source.

Repository SourceNeeds Review
General

link-checker

No summary provided by upstream source.

Repository SourceNeeds Review
General

safe-publish

No summary provided by upstream source.

Repository SourceNeeds Review