Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Automate Webflow CMS collections, site publishing, page management, asset uploads, and ecommerce orders via Rube MCP (Composio). Always search tools first for current schemas.
.claude/skills/davepoon-webflow-automation/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 229% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 94% | 0% |
| case-21 | ✓→✗ | ▼ Worse | 391% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 201% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 440% | 0% |
Automate Webflow operations including CMS collection management, site publishing, page inspection, asset uploads, and ecommerce order retrieval through Composio's Webflow toolkit.
Toolkit docs: composio.dev/toolkits/webflow
RUBE_MANAGE_CONNECTIONS with toolkit webflowRUBE_SEARCH_TOOLS first to get current tool schemasGet Rube MCP: Add https://rube.app/mcp as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.
RUBE_SEARCH_TOOLS respondsRUBE_MANAGE_CONNECTIONS with toolkit webflowWhen to use: User wants to create, update, list, or delete items in Webflow CMS collections (blog posts, products, team members, etc.)
Tool sequence:
WEBFLOW_LIST_WEBFLOW_SITES - List sites to find the target site_id Prerequisite]WEBFLOW_LIST_COLLECTIONS - List all collections for the site Prerequisite]WEBFLOW_GET_COLLECTION - Get collection schema to find valid field slugs Prerequisite for create/update]WEBFLOW_LIST_COLLECTION_ITEMS - List existing items with filtering and pagination Optional]WEBFLOW_GET_COLLECTION_ITEM - Get a specific item's full details Optional]WEBFLOW_CREATE_COLLECTION_ITEM - Create a new item with field data Required for creation]WEBFLOW_UPDATE_COLLECTION_ITEM - Update an existing item's fields Required for updates]WEBFLOW_DELETE_COLLECTION_ITEM - Permanently remove an item Optional]WEBFLOW_PUBLISH_SITE - Publish changes to make them live Optional]Key parameters for CREATE_COLLECTION_ITEM:
collection_id: 24-character hex string from LIST_COLLECTIONSfield_data: Object with field slug keys (NOT display names); must include name and slugfield_data.name: Display name for the itemfield_data.slug: URL-friendly identifier (lowercase, hyphens, no spaces)is_draft: Boolean to create as draft (default false)Key parameters for UPDATE_COLLECTION_ITEM:
collection_id: Collection identifieritem_id: 24-character hex MongoDB ObjectId of the existing itemfields: Object with field slug keys and new valueslive: Boolean to publish changes immediately (default false)Field value types:
{"url": "...", "alt": "...", "fileId": "..."}Pitfalls:
slug from the collection schema, NOT display namesGET_COLLECTION first to retrieve the schema and identify correct field slugsCREATE_COLLECTION_ITEM requires name and slug in field_dataUPDATE_COLLECTION_ITEM cannot create new items; it requires a valid existing item_iditem_id must be a 24-character hexadecimal MongoDB ObjectId^[a-z0-9]+(?:-[a-z0-9]+)*$PUBLISH_SITE or set live: true to push to productionWhen to use: User wants to list sites, inspect site configuration, or publish staged changes
Tool sequence:
WEBFLOW_LIST_WEBFLOW_SITES - List all accessible sites Required]WEBFLOW_GET_SITE_INFO - Get detailed site metadata including domains and settings Optional]WEBFLOW_PUBLISH_SITE - Deploy all staged changes to live site Required for publishing]Key parameters for PUBLISH_SITE:
site_id: Site identifier from LIST_WEBFLOW_SITEScustom_domains: Array of custom domain ID strings (from GET_SITE_INFO)publish_to_webflow_subdomain: Boolean to publish to {shortName}.webflow.iocustom_domains or publish_to_webflow_subdomain must be specifiedPitfalls:
PUBLISH_SITE republishes ALL staged changes for selected domains -- verify no unintended drafts are pendingpublish_to_webflow_subdomain: truecustom_domains expects domain IDs (hex strings), not domain namesWhen to use: User wants to list pages, inspect page metadata, or examine page DOM structure
Tool sequence:
WEBFLOW_LIST_WEBFLOW_SITES - Find the target site_id Prerequisite]WEBFLOW_LIST_PAGES - List all pages for a site with pagination Required]WEBFLOW_GET_PAGE - Get detailed metadata for a specific page Optional]WEBFLOW_GET_PAGE_DOM - Get the DOM/content node structure of a static page Optional]Key parameters:
site_id: Site identifier (required for list pages)page_id: 24-character hex page identifierlocale_id: Optional locale filter for multi-language siteslimit: Max results per page (max 100)offset: Pagination offsetPitfalls:
LIST_PAGES paginates via offset/limit; iterate when sites have many pages^[0-9a-fA-F]{24}$GET_PAGE_DOM returns the node structure, not rendered HTMLWhen to use: User wants to upload images, files, or other assets to a Webflow site
Tool sequence:
WEBFLOW_LIST_WEBFLOW_SITES - Find the target site_id Prerequisite]WEBFLOW_UPLOAD_ASSET - Upload a file with base64-encoded content Required]Key parameters:
site_id: Site identifierfile_name: Name of the file (e.g., "logo.png")file_content: Base64-encoded binary content of the file (NOT a placeholder or URL)content_type: MIME type (e.g., "image/png", "image/jpeg", "application/pdf")md5: MD5 hash of the raw file bytes (32-character hex string)asset_folder_id: Optional folder placementPitfalls:
file_content must be actual base64-encoded data, NOT a variable reference or placeholdermd5 must be computed from the raw bytes, not from the base64 stringWhen to use: User wants to view ecommerce orders from a Webflow site
Tool sequence:
WEBFLOW_LIST_WEBFLOW_SITES - Find the site with ecommerce enabled Prerequisite]WEBFLOW_LIST_ORDERS - List all orders with optional status filtering Required]WEBFLOW_GET_ORDER - Get detailed information for a specific order Optional]Key parameters:
site_id: Site identifier (must have ecommerce enabled)order_id: Specific order identifier for detailed retrievalstatus: Filter orders by statusPitfalls:
Webflow uses 24-character hexadecimal IDs throughout:
WEBFLOW_LIST_WEBFLOW_SITES -- find by name, capture idWEBFLOW_LIST_COLLECTIONS with site_idWEBFLOW_LIST_COLLECTION_ITEMS with collection_idWEBFLOW_LIST_PAGES with site_idWEBFLOW_GET_SITE_INFO -- found in customDomains arrayWEBFLOW_GET_COLLECTION -- found in collection fields arrayWebflow uses offset-based pagination:
offset: Starting index (0-based)limit: Items per page (max 100)Typical CMS content creation flow:
580e63fc8c9a982ac9b8b745^[0-9a-fA-F]{24}$slug values, NOT display namesauthor-nameGET_COLLECTION to discover correct field slugsPUBLISH_SITE deploys ALL staged changes, not just specific itemssites:read, cms:read, cms:write, pages:readDELETE_COLLECTION_ITEM permanently removes CMS itemsPUBLISH_SITE makes all staged changes live immediately| Task | Tool Slug | Key Params | |------|-----------|------------| | List sites | WEBFLOW_LIST_WEBFLOW_SITES | (none) | | Get site info | WEBFLOW_GET_SITE_INFO | site_id | | Publish site | WEBFLOW_PUBLISH_SITE | site_id, custom_domains or publish_to_webflow_subdomain | | List collections | WEBFLOW_LIST_COLLECTIONS | site_id | | Get collection schema | WEBFLOW_GET_COLLECTION | collection_id | | List collection items | WEBFLOW_LIST_COLLECTION_ITEMS | collection_id, limit, offset | | Get collection item | WEBFLOW_GET_COLLECTION_ITEM | collection_id, item_id | | Create collection item | WEBFLOW_CREATE_COLLECTION_ITEM | collection_id, field_data | | Update collection item | WEBFLOW_UPDATE_COLLECTION_ITEM | collection_id, item_id, fields | | Delete collection item | WEBFLOW_DELETE_COLLECTION_ITEM | collection_id, item_id | | List pages | WEBFLOW_LIST_PAGES | site_id, limit, offset | | Get page | WEBFLOW_GET_PAGE | page_id | | Get page DOM | WEBFLOW_GET_PAGE_DOM | page_id | | Upload asset | WEBFLOW_UPLOAD_ASSET | site_id, file_name, file_content, content_type, md5 | | List orders | WEBFLOW_LIST_ORDERS | site_id, status | | Get order | WEBFLOW_GET_ORDER | site_id, order_id |
Powered by Composio
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-04 | fail→pass | 6,691 | 5,114 | -24% | 1 | 1 | 0% | 1,246 | 4,105 | +229% | 0 | 0 | — |
case-01 | fail→fail | 4,791 | 4,420 | -8% | 1 | 1 | 0% | 459 | 3,353 | +631% | 0 | 0 | — |
case-02 | fail→fail | 2,489 | 4,794 | +93% | 1 | 1 | 0% | 426 | 3,399 | +698% | 0 | 0 | — |
case-03 | fail→fail | 10,957 | 4,370 | -60% | 1 | 1 | 0% | 2,012 | 3,293 | +64% | 0 | 0 | — |
case-05 | pass→pass | 7,570 | 5,339 | -29% | 1 | 1 | 0% | 1,397 | 4,210 | +201% | 0 | 0 | — |
case-06 | pass→pass | 63,631 | 2,185 | -97% | 1 | 1 | 0% | 662 | 3,574 | +440% | 0 | 0 | — |
case-07 | fail→pass | 11,784 | 4,738 | -60% | 1 | 1 | 0% | 1,967 | 3,822 | +94% | 0 | 0 | — |
case-08 | pass→pass | 8,132 | 3,107 | -62% | 1 | 1 | 0% | 1,418 | 3,753 | +165% | 0 | 0 | — |
case-09 | pass→pass | 9,596 | 4,238 | -56% | 1 | 1 | 0% | 1,591 | 3,778 | +137% | 0 | 0 | — |
case-10 | pass→pass | 9,215 | 5,277 | -43% | 1 | 1 | 0% | 1,602 | 3,934 | +146% | 0 | 0 | — |
case-11 | pass→pass | 6,968 | 4,941 | -29% | 1 | 1 | 0% | 1,261 | 4,012 | +218% | 0 | 0 | — |
case-12 | pass→pass | 9,821 | 5,357 | -45% | 1 | 1 | 0% | 1,750 | 3,906 | +123% | 0 | 0 | — |
case-13 | pass→pass | 6,076 | 4,437 | -27% | 1 | 1 | 0% | 1,355 | 3,936 | +190% | 0 | 0 | — |
case-14 | pass→pass | 9,967 | 1,902 | -81% | 1 | 1 | 0% | 1,763 | 3,405 | +93% | 0 | 0 | — |
case-15 | pass→pass | 8,585 | 5,273 | -39% | 1 | 1 | 0% | 1,492 | 4,068 | +173% | 0 | 0 | — |
case-16 | pass→pass | 10,313 | 3,784 | -63% | 1 | 1 | 0% | 1,691 | 3,849 | +128% | 0 | 0 | — |
case-17 | pass→pass | 6,964 | 7,629 | +10% | 1 | 1 | 0% | 1,266 | 3,866 | +205% | 0 | 0 | — |
case-18 | pass→pass | 10,412 | 4,751 | -54% | 1 | 1 | 0% | 1,161 | 3,870 | +233% | 0 | 0 | — |
case-19 | pass→pass | 5,189 | 3,349 | -35% | 1 | 1 | 0% | 674 | 3,717 | +451% | 0 | 0 | — |
case-20 | pass→pass | 9,791 | 7,321 | -25% | 1 | 1 | 0% | 1,628 | 4,226 | +160% | 0 | 0 | — |
case-21 | pass→fail | 4,244 | 5,736 | +35% | 1 | 1 | 0% | 685 | 3,361 | +391% | 0 | 0 | — |
case-22 | pass→pass | 9,574 | 5,407 | -44% | 1 | 1 | 0% | 1,271 | 3,799 | +199% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 18 counted toward the lift figure. The other 4 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +5 percentage points is the difference between those two pass rates over the 18 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.