{"slug":"webflow-automation-2","title":"webflow-automation","summary":"Automate Webflow CMS collections, site publishing, page management, asset uploads, and ecommerce orders via Rube MCP (Composio). Always search tools first for current schemas.","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-14T20:53:50.982272Z","repo":{"url":"https://github.com/davepoon/buildwithclaude","stars":3494,"forks":514,"license":"MIT","updatedAt":"2026-09-17T11:58:48Z"},"bodyHtml":"<hr>\n<h2>name: webflow-automation\ndescription: Automate Webflow CMS collections, site publishing, page management, asset uploads, and ecommerce orders via Rube MCP (Composio). Always search tools first for current schemas.\nrequires:\nmcp: [rube]\ncategory: development-code</h2>\n<h1>Webflow Automation via Rube MCP</h1>\n<p>Automate Webflow operations including CMS collection management, site publishing, page inspection, asset uploads, and ecommerce order retrieval through Composio's Webflow toolkit.</p>\n<p><strong>Toolkit docs</strong>: <a href=\"https://composio.dev/toolkits/webflow\">composio.dev/toolkits/webflow</a></p>\n<h2>Prerequisites</h2>\n<ul>\n<li>Rube MCP must be connected (RUBE_SEARCH_TOOLS available)</li>\n<li>Active Webflow connection via <code>RUBE_MANAGE_CONNECTIONS</code> with toolkit <code>webflow</code></li>\n<li>Always call <code>RUBE_SEARCH_TOOLS</code> first to get current tool schemas</li>\n</ul>\n<h2>Setup</h2>\n<p><strong>Get Rube MCP</strong>: Add <code>https://rube.app/mcp</code> as an MCP server in your client configuration. No API keys needed — just add the endpoint and it works.</p>\n<ol>\n<li>Verify Rube MCP is available by confirming <code>RUBE_SEARCH_TOOLS</code> responds</li>\n<li>Call <code>RUBE_MANAGE_CONNECTIONS</code> with toolkit <code>webflow</code></li>\n<li>If connection is not ACTIVE, follow the returned auth link to complete Webflow OAuth</li>\n<li>Confirm connection status shows ACTIVE before running any workflows</li>\n</ol>\n<h2>Core Workflows</h2>\n<h3>1. Manage CMS Collection Items</h3>\n<p><strong>When to use</strong>: User wants to create, update, list, or delete items in Webflow CMS collections (blog posts, products, team members, etc.)</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>WEBFLOW_LIST_WEBFLOW_SITES</code> - List sites to find the target site_id [Prerequisite]</li>\n<li><code>WEBFLOW_LIST_COLLECTIONS</code> - List all collections for the site [Prerequisite]</li>\n<li><code>WEBFLOW_GET_COLLECTION</code> - Get collection schema to find valid field slugs [Prerequisite for create/update]</li>\n<li><code>WEBFLOW_LIST_COLLECTION_ITEMS</code> - List existing items with filtering and pagination [Optional]</li>\n<li><code>WEBFLOW_GET_COLLECTION_ITEM</code> - Get a specific item's full details [Optional]</li>\n<li><code>WEBFLOW_CREATE_COLLECTION_ITEM</code> - Create a new item with field data [Required for creation]</li>\n<li><code>WEBFLOW_UPDATE_COLLECTION_ITEM</code> - Update an existing item's fields [Required for updates]</li>\n<li><code>WEBFLOW_DELETE_COLLECTION_ITEM</code> - Permanently remove an item [Optional]</li>\n<li><code>WEBFLOW_PUBLISH_SITE</code> - Publish changes to make them live [Optional]</li>\n</ol>\n<p><strong>Key parameters for CREATE_COLLECTION_ITEM</strong>:</p>\n<ul>\n<li><code>collection_id</code>: 24-character hex string from LIST_COLLECTIONS</li>\n<li><code>field_data</code>: Object with field slug keys (NOT display names); must include <code>name</code> and <code>slug</code></li>\n<li><code>field_data.name</code>: Display name for the item</li>\n<li><code>field_data.slug</code>: URL-friendly identifier (lowercase, hyphens, no spaces)</li>\n<li><code>is_draft</code>: Boolean to create as draft (default false)</li>\n</ul>\n<p><strong>Key parameters for UPDATE_COLLECTION_ITEM</strong>:</p>\n<ul>\n<li><code>collection_id</code>: Collection identifier</li>\n<li><code>item_id</code>: 24-character hex MongoDB ObjectId of the existing item</li>\n<li><code>fields</code>: Object with field slug keys and new values</li>\n<li><code>live</code>: Boolean to publish changes immediately (default false)</li>\n</ul>\n<p><strong>Field value types</strong>:</p>\n<ul>\n<li>Text/Email/Link/Date: string</li>\n<li>Number: integer or float</li>\n<li>Boolean: true/false</li>\n<li>Image: <code>{\"url\": \"...\", \"alt\": \"...\", \"fileId\": \"...\"}</code></li>\n<li>Multi-reference: array of reference ID strings</li>\n<li>Multi-image: array of image objects</li>\n<li>Option: option ID string</li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li>Field keys must use the exact field <code>slug</code> from the collection schema, NOT display names</li>\n<li>Always call <code>GET_COLLECTION</code> first to retrieve the schema and identify correct field slugs</li>\n<li><code>CREATE_COLLECTION_ITEM</code> requires <code>name</code> and <code>slug</code> in <code>field_data</code></li>\n<li><code>UPDATE_COLLECTION_ITEM</code> cannot create new items; it requires a valid existing <code>item_id</code></li>\n<li><code>item_id</code> must be a 24-character hexadecimal MongoDB ObjectId</li>\n<li>Slug must be lowercase alphanumeric with hyphens: <code>^[a-z0-9]+(?:-[a-z0-9]+)*$</code></li>\n<li>CMS items are staged; use <code>PUBLISH_SITE</code> or set <code>live: true</code> to push to production</li>\n</ul>\n<h3>2. Manage Sites and Publishing</h3>\n<p><strong>When to use</strong>: User wants to list sites, inspect site configuration, or publish staged changes</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>WEBFLOW_LIST_WEBFLOW_SITES</code> - List all accessible sites [Required]</li>\n<li><code>WEBFLOW_GET_SITE_INFO</code> - Get detailed site metadata including domains and settings [Optional]</li>\n<li><code>WEBFLOW_PUBLISH_SITE</code> - Deploy all staged changes to live site [Required for publishing]</li>\n</ol>\n<p><strong>Key parameters for PUBLISH_SITE</strong>:</p>\n<ul>\n<li><code>site_id</code>: Site identifier from LIST_WEBFLOW_SITES</li>\n<li><code>custom_domains</code>: Array of custom domain ID strings (from GET_SITE_INFO)</li>\n<li><code>publish_to_webflow_subdomain</code>: Boolean to publish to <code>{shortName}.webflow.io</code></li>\n<li>At least one of <code>custom_domains</code> or <code>publish_to_webflow_subdomain</code> must be specified</li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li><code>PUBLISH_SITE</code> republishes ALL staged changes for selected domains -- verify no unintended drafts are pending</li>\n<li>Rate limit: 1 successful publish per minute</li>\n<li>For sites without custom domains, must set <code>publish_to_webflow_subdomain: true</code></li>\n<li><code>custom_domains</code> expects domain IDs (hex strings), not domain names</li>\n<li>Publishing is a production action -- always confirm with the user first</li>\n</ul>\n<h3>3. Manage Pages</h3>\n<p><strong>When to use</strong>: User wants to list pages, inspect page metadata, or examine page DOM structure</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>WEBFLOW_LIST_WEBFLOW_SITES</code> - Find the target site_id [Prerequisite]</li>\n<li><code>WEBFLOW_LIST_PAGES</code> - List all pages for a site with pagination [Required]</li>\n<li><code>WEBFLOW_GET_PAGE</code> - Get detailed metadata for a specific page [Optional]</li>\n<li><code>WEBFLOW_GET_PAGE_DOM</code> - Get the DOM/content node structure of a static page [Optional]</li>\n</ol>\n<p><strong>Key parameters</strong>:</p>\n<ul>\n<li><code>site_id</code>: Site identifier (required for list pages)</li>\n<li><code>page_id</code>: 24-character hex page identifier</li>\n<li><code>locale_id</code>: Optional locale filter for multi-language sites</li>\n<li><code>limit</code>: Max results per page (max 100)</li>\n<li><code>offset</code>: Pagination offset</li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li><code>LIST_PAGES</code> paginates via offset/limit; iterate when sites have many pages</li>\n<li>Page IDs are 24-character hex strings matching pattern <code>^[0-9a-fA-F]{24}$</code></li>\n<li><code>GET_PAGE_DOM</code> returns the node structure, not rendered HTML</li>\n<li>Pages include both static and CMS-driven pages</li>\n</ul>\n<h3>4. Upload Assets</h3>\n<p><strong>When to use</strong>: User wants to upload images, files, or other assets to a Webflow site</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>WEBFLOW_LIST_WEBFLOW_SITES</code> - Find the target site_id [Prerequisite]</li>\n<li><code>WEBFLOW_UPLOAD_ASSET</code> - Upload a file with base64-encoded content [Required]</li>\n</ol>\n<p><strong>Key parameters</strong>:</p>\n<ul>\n<li><code>site_id</code>: Site identifier</li>\n<li><code>file_name</code>: Name of the file (e.g., <code>\"logo.png\"</code>)</li>\n<li><code>file_content</code>: Base64-encoded binary content of the file (NOT a placeholder or URL)</li>\n<li><code>content_type</code>: MIME type (e.g., <code>\"image/png\"</code>, <code>\"image/jpeg\"</code>, <code>\"application/pdf\"</code>)</li>\n<li><code>md5</code>: MD5 hash of the raw file bytes (32-character hex string)</li>\n<li><code>asset_folder_id</code>: Optional folder placement</li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li><code>file_content</code> must be actual base64-encoded data, NOT a variable reference or placeholder</li>\n<li><code>md5</code> must be computed from the raw bytes, not from the base64 string</li>\n<li>This is a two-step process internally: generates an S3 pre-signed URL, then uploads</li>\n<li>Large files may encounter timeouts; keep uploads reasonable in size</li>\n</ul>\n<h3>5. Manage Ecommerce Orders</h3>\n<p><strong>When to use</strong>: User wants to view ecommerce orders from a Webflow site</p>\n<p><strong>Tool sequence</strong>:</p>\n<ol>\n<li><code>WEBFLOW_LIST_WEBFLOW_SITES</code> - Find the site with ecommerce enabled [Prerequisite]</li>\n<li><code>WEBFLOW_LIST_ORDERS</code> - List all orders with optional status filtering [Required]</li>\n<li><code>WEBFLOW_GET_ORDER</code> - Get detailed information for a specific order [Optional]</li>\n</ol>\n<p><strong>Key parameters</strong>:</p>\n<ul>\n<li><code>site_id</code>: Site identifier (must have ecommerce enabled)</li>\n<li><code>order_id</code>: Specific order identifier for detailed retrieval</li>\n<li><code>status</code>: Filter orders by status</li>\n</ul>\n<p><strong>Pitfalls</strong>:</p>\n<ul>\n<li>Ecommerce must be enabled on the Webflow site for order endpoints to work</li>\n<li>Order endpoints are read-only; no create/update/delete for orders through these tools</li>\n</ul>\n<h2>Common Patterns</h2>\n<h3>ID Resolution</h3>\n<p>Webflow uses 24-character hexadecimal IDs throughout:</p>\n<ul>\n<li><strong>Site ID</strong>: <code>WEBFLOW_LIST_WEBFLOW_SITES</code> -- find by name, capture <code>id</code></li>\n<li><strong>Collection ID</strong>: <code>WEBFLOW_LIST_COLLECTIONS</code> with <code>site_id</code></li>\n<li><strong>Item ID</strong>: <code>WEBFLOW_LIST_COLLECTION_ITEMS</code> with <code>collection_id</code></li>\n<li><strong>Page ID</strong>: <code>WEBFLOW_LIST_PAGES</code> with <code>site_id</code></li>\n<li><strong>Domain IDs</strong>: <code>WEBFLOW_GET_SITE_INFO</code> -- found in <code>customDomains</code> array</li>\n<li><strong>Field slugs</strong>: <code>WEBFLOW_GET_COLLECTION</code> -- found in collection <code>fields</code> array</li>\n</ul>\n<h3>Pagination</h3>\n<p>Webflow uses offset-based pagination:</p>\n<ul>\n<li><code>offset</code>: Starting index (0-based)</li>\n<li><code>limit</code>: Items per page (max 100)</li>\n<li>Increment offset by limit until fewer results than limit are returned</li>\n<li>Available on: LIST_COLLECTION_ITEMS, LIST_PAGES</li>\n</ul>\n<h3>CMS Workflow</h3>\n<p>Typical CMS content creation flow:</p>\n<ol>\n<li>Get site_id from LIST_WEBFLOW_SITES</li>\n<li>Get collection_id from LIST_COLLECTIONS</li>\n<li>Get field schema from GET_COLLECTION (to learn field slugs)</li>\n<li>Create/update items using correct field slugs</li>\n<li>Publish site to make changes live</li>\n</ol>\n<h2>Known Pitfalls</h2>\n<h3>ID Formats</h3>\n<ul>\n<li>All Webflow IDs are 24-character hexadecimal strings (MongoDB ObjectIds)</li>\n<li>Example: <code>580e63fc8c9a982ac9b8b745</code></li>\n<li>Pattern: <code>^[0-9a-fA-F]{24}$</code></li>\n<li>Invalid IDs return 404 errors</li>\n</ul>\n<h3>Field Slugs vs Display Names</h3>\n<ul>\n<li>CMS operations require field <code>slug</code> values, NOT display names</li>\n<li>A field with displayName \"Author Name\" might have slug <code>author-name</code></li>\n<li>Always call <code>GET_COLLECTION</code> to discover correct field slugs</li>\n<li>Using wrong field names silently ignores the data or causes validation errors</li>\n</ul>\n<h3>Publishing</h3>\n<ul>\n<li><code>PUBLISH_SITE</code> deploys ALL staged changes, not just specific items</li>\n<li>Rate limited to 1 publish per minute</li>\n<li>Must specify at least one domain target (custom or webflow subdomain)</li>\n<li>This is a production-affecting action; always confirm intent</li>\n</ul>\n<h3>Authentication Scopes</h3>\n<ul>\n<li>Different operations require different OAuth scopes: <code>sites:read</code>, <code>cms:read</code>, <code>cms:write</code>, <code>pages:read</code></li>\n<li>A 403 error typically means missing OAuth scopes</li>\n<li>Check connection permissions if operations fail with authorization errors</li>\n</ul>\n<h3>Destructive Operations</h3>\n<ul>\n<li><code>DELETE_COLLECTION_ITEM</code> permanently removes CMS items</li>\n<li><code>PUBLISH_SITE</code> makes all staged changes live immediately</li>\n<li>Always confirm with the user before executing these actions</li>\n</ul>\n<h2>Quick Reference</h2>\n<table>\n<thead>\n<tr>\n<th>Task</th>\n<th>Tool Slug</th>\n<th>Key Params</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>List sites</td>\n<td><code>WEBFLOW_LIST_WEBFLOW_SITES</code></td>\n<td>(none)</td>\n</tr>\n<tr>\n<td>Get site info</td>\n<td><code>WEBFLOW_GET_SITE_INFO</code></td>\n<td><code>site_id</code></td>\n</tr>\n<tr>\n<td>Publish site</td>\n<td><code>WEBFLOW_PUBLISH_SITE</code></td>\n<td><code>site_id</code>, <code>custom_domains</code> or <code>publish_to_webflow_subdomain</code></td>\n</tr>\n<tr>\n<td>List collections</td>\n<td><code>WEBFLOW_LIST_COLLECTIONS</code></td>\n<td><code>site_id</code></td>\n</tr>\n<tr>\n<td>Get collection schema</td>\n<td><code>WEBFLOW_GET_COLLECTION</code></td>\n<td><code>collection_id</code></td>\n</tr>\n<tr>\n<td>List collection items</td>\n<td><code>WEBFLOW_LIST_COLLECTION_ITEMS</code></td>\n<td><code>collection_id</code>, <code>limit</code>, <code>offset</code></td>\n</tr>\n<tr>\n<td>Get collection item</td>\n<td><code>WEBFLOW_GET_COLLECTION_ITEM</code></td>\n<td><code>collection_id</code>, <code>item_id</code></td>\n</tr>\n<tr>\n<td>Create collection item</td>\n<td><code>WEBFLOW_CREATE_COLLECTION_ITEM</code></td>\n<td><code>collection_id</code>, <code>field_data</code></td>\n</tr>\n<tr>\n<td>Update collection item</td>\n<td><code>WEBFLOW_UPDATE_COLLECTION_ITEM</code></td>\n<td><code>collection_id</code>, <code>item_id</code>, <code>fields</code></td>\n</tr>\n<tr>\n<td>Delete collection item</td>\n<td><code>WEBFLOW_DELETE_COLLECTION_ITEM</code></td>\n<td><code>collection_id</code>, <code>item_id</code></td>\n</tr>\n<tr>\n<td>List pages</td>\n<td><code>WEBFLOW_LIST_PAGES</code></td>\n<td><code>site_id</code>, <code>limit</code>, <code>offset</code></td>\n</tr>\n<tr>\n<td>Get page</td>\n<td><code>WEBFLOW_GET_PAGE</code></td>\n<td><code>page_id</code></td>\n</tr>\n<tr>\n<td>Get page DOM</td>\n<td><code>WEBFLOW_GET_PAGE_DOM</code></td>\n<td><code>page_id</code></td>\n</tr>\n<tr>\n<td>Upload asset</td>\n<td><code>WEBFLOW_UPLOAD_ASSET</code></td>\n<td><code>site_id</code>, <code>file_name</code>, <code>file_content</code>, <code>content_type</code>, <code>md5</code></td>\n</tr>\n<tr>\n<td>List orders</td>\n<td><code>WEBFLOW_LIST_ORDERS</code></td>\n<td><code>site_id</code>, <code>status</code></td>\n</tr>\n<tr>\n<td>Get order</td>\n<td><code>WEBFLOW_GET_ORDER</code></td>\n<td><code>site_id</code>, <code>order_id</code></td>\n</tr>\n</tbody>\n</table>\n<hr>\n<p><em>Powered by <a href=\"https://composio.dev\">Composio</a></em></p>\n","files":[{"path":"SKILL.md","sizeBytes":11342,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-14T20:56:10.322335Z","sha256":"4D634BAE79D7963F96D9F007F75CE18AD62A1E5877062F146580A49554FDC368","sizeBytes":4064},"review":null,"source":{"repositoryUrl":"https://github.com/davepoon/buildwithclaude","path":"plugins/all-skills/skills/webflow-automation","license":"MIT","commit":"2e757dae349898c0b761bd8926acdacb35f21954","subtreeSha":"13929E779AEA40A9E0AD23B7D7095CBAFCF307CDDBC24F9218DFFC58C28777B0","lastSyncedAt":"2026-09-19T13:50:10.625828Z"},"reviewedAt":"2026-09-14T21:02:15.073788Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/davepoon/buildwithclaude/tree/main/plugins/all-skills/skills/webflow-automation"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install davepoon-buildwithclaude@llmmart"},{"target":"git","command":"git clone https://github.com/davepoon/buildwithclaude.git"}]}