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
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
| Scope | Why it is requested |
|---|---|
sites:read | See your Webflow sites |
cms:read | Read CMS collections and items |
cms:write | Create, 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
| Input | Type | Description | |
|---|---|---|---|
collection_id | string | Required | |
field_data | object | Required | Field values keyed by field slug; name and slug are required |
is_draft | boolean | Optional | Default true |
is_archived | boolean | Optional |
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
| Input | Type | Description | |
|---|---|---|---|
collection_id | string | Required | |
item_id | string | Required |
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
| Input | Type | Description | |
|---|---|---|---|
collection_id | string | Required | |
item_id | string | Required |
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
| Input | Type | Description | |
|---|---|---|---|
site_id | string | Required | Site id from list_sites |
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
| Input | Type | Description | |
|---|---|---|---|
collection_id | string | Required | |
limit | integer | Optional | Max 100 |
offset | integer | Optional | |
name | string | Optional | Exact item name |
slug | string | Optional | Exact item slug |
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.
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
| Input | Type | Description | |
|---|---|---|---|
collection_id | string | Required | |
item_id | string | Required | |
field_data | object | Optional | Fields to change, keyed by field slug |
is_draft | boolean | Optional | |
is_archived | boolean | Optional |
await setu.execute({
userId: "user_1",
action: "webflow.update_item",
input: {
"collection_id": "<collection_id>",
"item_id": "<item_id>"
},
});