Reference · Tools

Webflow

Manage CMS collection items in Webflow — create, read, update, delete, and list items

Action Marketing v1

The Webflow node manages CMS collection items: creating, reading, updating, deleting and listing them, including publishing live. A typical build is turning an approved draft in another system into a published Webflow post automatically.

Node type
Action
Parameters
13
Outputs
Output, Error
Credentials
Webflow OAuth2

Webflow

Manage CMS collection items in Webflow

Overview

Webflow is a website builder and CMS. This tool works with a Webflow site through the Webflow V2 API: create CMS collection items with custom field data, read a single item, list every item in a collection with pagination, update an item’s fields, delete an item, and publish the site itself. Items can be pushed live immediately or left staged for a later publish. The Site ID is used to locate the collection in the parameter panel and is not sent with item requests.

Category: Marketing
Tool Name: webflow
Version: 1

Appearance: Icon: si-webflow | Color: #4353FF

Node Type

Action — processes input items and produces output

Input / Output

DirectionPort(s)
InputInput
OutputOutput, Error

Credentials

This tool requires Webflow OAuth2 credentials. See the Credentials Guide for setup instructions.

Resources

ResourceValue
Itemitem
Sitesite

Operations

Item

OperationValueDescription
CreatecreateCreate a collection item from the field values you supply
DeletedeleteDelete a collection item by ID
GetgetRetrieve a single collection item by ID
Get ManygetAllList the items in a collection
UpdateupdateUpdate the field values of an existing collection item

Site

OperationValueDescription
PublishpublishPublish the site to its Webflow subdomain and/or custom domains

Parameters

Item: Create

ParameterTypeRequiredDefaultDescription
Site IDstringYesID of the Webflow site. For item operations, this is the site containing the collection. For site publish, this is the site to publish. Find in Webflow Dashboard > Site Settings > General > Site ID, or via the API: GET /v2/sites.
Collection IDstringYesID of the CMS collection. Find via Webflow API: GET /v2/sites/{siteId}/collections, or in the Webflow designer under CMS settings.
LivebooleanYesfalseWhether the item should be published on the live site immediately. When true, the tool creates the item then calls the publish endpoint to push it live. V2 removed the old /live route, so publishing is a separate API call.
FieldsfixedCollectionNo{}Field data for the collection item. Field IDs are the field slugs from your Webflow collection schema. Discover available fields via the API: GET /v2/collections/{collectionId}.
— FieldOne entry per field you want to set.
— — Field IDstringNoThe field slug (e.g. “name”, “slug”, “post-body”). Find field slugs via the API: GET /v2/collections/{collectionId} and look at the fields array.
— — Field ValuestringNoThe value to set for this field. Supports expressions like {{ $json.title }}.

Item: Delete

ParameterTypeRequiredDefaultDescription
Site IDstringYesID of the Webflow site containing the collection.
Collection IDstringYesID of the CMS collection. Find via Webflow API: GET /v2/sites/{siteId}/collections, or in the Webflow designer under CMS settings.
Item IDstringYesID of the CMS item to operate on. Supports expressions like {{ $json.itemId }}.

Item: Get

ParameterTypeRequiredDefaultDescription
Site IDstringYesID of the Webflow site containing the collection.
Collection IDstringYesID of the CMS collection. Find via Webflow API: GET /v2/sites/{siteId}/collections, or in the Webflow designer under CMS settings.
Item IDstringYesID of the CMS item to operate on. Supports expressions like {{ $json.itemId }}.

Item: Get Many

ParameterTypeRequiredDefaultDescription
Site IDstringYesID of the Webflow site containing the collection.
Collection IDstringYesID of the CMS collection. Find via Webflow API: GET /v2/sites/{siteId}/collections, or in the Webflow designer under CMS settings.
Return AllbooleanNofalseWhether to return all results or only up to a given limit.
LimitnumberNo100Max number of results to return. (shown when Return All is false)

Item: Update

ParameterTypeRequiredDefaultDescription
Site IDstringYesID of the Webflow site containing the collection.
Collection IDstringYesID of the CMS collection. Find via Webflow API: GET /v2/sites/{siteId}/collections, or in the Webflow designer under CMS settings.
Item IDstringYesID of the CMS item to operate on. Supports expressions like {{ $json.itemId }}.
LivebooleanYesfalseWhether the item should be published on the live site immediately. When true, the tool updates the item then calls the publish endpoint to push it live. V2 removed the old /live route, so publishing is a separate API call.
FieldsfixedCollectionNo{}Field data for the collection item. Field IDs are the field slugs from your Webflow collection schema. Discover available fields via the API: GET /v2/collections/{collectionId}.
— FieldOne entry per field you want to set.
— — Field IDstringNoThe field slug (e.g. “name”, “slug”, “post-body”). Find field slugs via the API: GET /v2/collections/{collectionId} and look at the fields array.
— — Field ValuestringNoThe value to set for this field. Supports expressions like {{ $json.title }}.

Site: Publish

ParameterTypeRequiredDefaultDescription
Site IDstringYesID of the Webflow site to publish. Find in Webflow Dashboard > Site Settings > General > Site ID, or via the API: GET /v2/sites.
Publish to Webflow SubdomainbooleanNotrueWhether to publish to the *.webflow.io subdomain. Independent of custom domains — both can be selected.
Custom DomainsstringNoComma-separated list of custom domain names to publish to. Leave empty to skip custom domains (still publishes to the webflow.io subdomain if that option is on). Domains must already be configured on the site in Webflow.

All Operations

ParameterTypeRequiredDefaultDescription
Max ConcurrencynumberNo10Maximum number of items to process concurrently.

Output Data

The API response is merged onto the input item JSON — the returned fields are copied over the item’s existing fields, so upstream data survives. Binary data on the input item is forwarded unchanged.

Item counts:

  • create, get, update, delete and publish produce exactly one output item per input item.
  • getAll fans out — one output item per collection item returned. With Return All on, the node pages through the whole collection; with it off, it returns at most Limit items.

What lands on the item:

OperationMerged onto the item
createThe created item record as Webflow returns it, including its id
getThe requested item record
getAllOne item record per result
updateThe updated item record
deletesuccesstrue when Webflow confirms the delete, false otherwise
publishThe publish response from Webflow, or success: true when the response carries no body

Inside an item record, your CMS field values live under fieldData, keyed by field slug. Reference them downstream by expression, e.g. {{ $json.id }} or {{ $json.fieldData.slug }}. In the rare case where the API returns a bare value rather than an object, it is placed on result instead.

With Live on, create and update make a second call to publish the affected item; the output item still carries the create/update response, not the publish response.

Usage Examples

  • Create a new blog post in a Webflow CMS collection
  • List all items in a Webflow collection
  • Update a product item in Webflow and publish live
  • Delete a CMS item from a Webflow collection
  • Get a specific CMS item by ID from Webflow

Example Configuration

Create a blog post and publish it immediately:

{
  "type": "webflow",
  "parameters": {
    "resource": "item",
    "operation": "create",
    "siteId": "62a1b2c3d4e5f6a7b8c9d0e1",
    "collectionId": "62b2c3d4e5f6a7b8c9d0e1f2",
    "live": true,
    "fieldsUi": {
      "fieldValues": [
        { "fieldId": "name", "fieldValue": "{{ $json.title }}" },
        { "fieldId": "slug", "fieldValue": "{{ $json.slug }}" },
        { "fieldId": "post-body", "fieldValue": "{{ $json.html }}" }
      ]
    }
  }
}

Read one item by ID:

{
  "type": "webflow",
  "parameters": {
    "resource": "item",
    "operation": "get",
    "siteId": "62a1b2c3d4e5f6a7b8c9d0e1",
    "collectionId": "62b2c3d4e5f6a7b8c9d0e1f2",
    "itemId": "{{ $json.itemId }}"
  }
}

List a whole collection, one output item per record:

{
  "type": "webflow",
  "parameters": {
    "resource": "item",
    "operation": "getAll",
    "siteId": "62a1b2c3d4e5f6a7b8c9d0e1",
    "collectionId": "62b2c3d4e5f6a7b8c9d0e1f2",
    "returnAll": true
  }
}

Update a product’s price without publishing it yet:

{
  "type": "webflow",
  "parameters": {
    "resource": "item",
    "operation": "update",
    "siteId": "62a1b2c3d4e5f6a7b8c9d0e1",
    "collectionId": "62b2c3d4e5f6a7b8c9d0e1f2",
    "itemId": "{{ $json.itemId }}",
    "live": false,
    "fieldsUi": {
      "fieldValues": [
        { "fieldId": "price", "fieldValue": "{{ $json.price }}" }
      ]
    }
  }
}

Publish the site to the Webflow subdomain and two custom domains:

{
  "type": "webflow",
  "parameters": {
    "resource": "site",
    "operation": "publish",
    "siteId": "62a1b2c3d4e5f6a7b8c9d0e1",
    "publishToWebflowSubdomain": true,
    "customDomains": "www.example.com, example.com"
  }
}

Error Handling

ModeBehavior
stopHalts workflow on first error
continueSkips failed items, passes successful ones through
errorPortRoutes failed items to Error output port

Tips

Manage Webflow CMS collection items: create, read, update, delete, and list items with support for live publishing.

Notes

  • name is mandatory on item create. Webflow V2 requires it inside the field data, so the Fields collection must contain an entry with Field ID name or the item fails before the request is sent.
  • Field IDs are slugs, not labels. A field shown as “Post Body” in the designer is addressed as post-body. Read them from GET /v2/collections/{collectionId}.
  • Publishing is a separate call in V2. Turning Live on creates or updates the item first and publishes it afterwards; a failure at the publish step leaves the item saved but unpublished.
  • Site publish needs a target. Turning Publish to Webflow Subdomain off while leaving Custom Domains empty selects nothing, and the node reports that rather than silently succeeding. Custom domains must already be attached to the site in Webflow.
  • Site ID is not sent with item requests — it exists so the parameter panel can find your collections. Collection ID is what addresses the data.
  • Get Many fans out. Downstream nodes receive one item per record, so there is no need for a Split Out node after it.

Frequently asked questions

Why does my item creation fail immediately?

`name` is mandatory on create. Webflow V2 requires it inside the field data, so the Fields collection must contain an entry with Field ID `name` or the item fails before the request is sent.

What form do field IDs take?

Slugs, not labels. A field shown as "Post Body" in the Webflow designer has a slug that differs from that label — use the slug.

Can it publish as well as create?

Yes, live publishing is supported, so content can go straight out rather than sitting as a draft.

How do I react to Webflow events?

Use the Webflow Trigger, which fires on form submissions, CMS changes, e-commerce orders and site publishes.

Build with the Webflow node

Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Webflow OAuth2 credentials first.

Open BusyBot

Last updated . Spotted something wrong? Tell us.