Setu Recipes: reusable workflows across every app.Browse templates

Integrations / Webflow

Webflow

Website builder and CMS: sites, collections and collection items.

7 actions OAuth 2 4 read2 write1 destructive Calls api.webflow.com

Connect

TypeScript
const conn = await setu.connections.initiate({ userId: "user_1", toolkit: "webflow" });
console.log(conn.connectUrl); // show this to your user
await conn.waitUntilActive();

Permissions requested

ScopeWhy it is requested
sites:readSee your Webflow sites
cms:readRead CMS collections and items
cms:writeCreate, update and delete CMS items

Actions

Create collection itemwritewebflow.create_itemCreate a CMS item as a draft (or queued for publishing). field_data must include name and slug plus the collection's fields.

Needs scope: cms:write

InputTypeDescription
collection_idstringRequired
field_dataobjectRequiredField values keyed by field slug; name and slug are required
is_draftbooleanOptionalDefault true
is_archivedbooleanOptional
TypeScript
await setu.execute({
  userId: "user_1",
  action: "webflow.create_item",
  input: {
    "collection_id": "<collection_id>",
    "field_data": {}
  },
});
Delete collection itemdestructivewebflow.delete_itemPermanently delete a CMS collection item.

Needs scope: cms:write

InputTypeDescription
collection_idstringRequired
item_idstringRequired
TypeScript
await setu.execute({
  userId: "user_1",
  action: "webflow.delete_item",
  input: {
    "collection_id": "<collection_id>",
    "item_id": "<item_id>"
  },
  confirm: true,
});
Get collection itemreadwebflow.get_itemGet one CMS collection item with all its field data.

Needs scope: cms:read

InputTypeDescription
collection_idstringRequired
item_idstringRequired
TypeScript
await setu.execute({
  userId: "user_1",
  action: "webflow.get_item",
  input: {
    "collection_id": "<collection_id>",
    "item_id": "<item_id>"
  },
});
List collectionsreadwebflow.list_collectionsList the CMS collections of a Webflow site (id, name and slug).

Needs scope: cms:read

InputTypeDescription
site_idstringRequiredSite id from list_sites
TypeScript
await setu.execute({
  userId: "user_1",
  action: "webflow.list_collections",
  input: {
    "site_id": "<site_id>"
  },
});
List collection itemsreadwebflow.list_itemsList items in a CMS collection, with optional name or slug match and paging.

Needs scope: cms:read

InputTypeDescription
collection_idstringRequired
limitintegerOptionalMax 100
offsetintegerOptional
namestringOptionalExact item name
slugstringOptionalExact item slug
TypeScript
await setu.execute({
  userId: "user_1",
  action: "webflow.list_items",
  input: {
    "collection_id": "<collection_id>"
  },
});
List sitesreadwebflow.list_sitesList the Webflow sites the connection can access, with ids and names.

Needs scope: sites:read

No input.

TypeScript
await setu.execute({
  userId: "user_1",
  action: "webflow.list_sites",
  input: {},
});
Update collection itemwritewebflow.update_itemUpdate fields of a CMS item, or change its draft or archived state.

Needs scope: cms:write

InputTypeDescription
collection_idstringRequired
item_idstringRequired
field_dataobjectOptionalFields to change, keyed by field slug
is_draftbooleanOptional
is_archivedbooleanOptional
TypeScript
await setu.execute({
  userId: "user_1",
  action: "webflow.update_item",
  input: {
    "collection_id": "<collection_id>",
    "item_id": "<item_id>"
  },
});