> ## Documentation Index
> Fetch the complete documentation index at: https://docs.atako.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Webflow

> Connect Webflow to your Atako agents — 10 read and 4 write actions.

Let your agents manage the CMS of a Webflow site — read collections and their field schemas, create and update collection items, publish them or the whole site, and read pages, forms and form submissions.

## Connection

* **Authentication**: API key (Site API token).

<Note>
  Only a site administrator can create one. In your Webflow workspace, open the site's settings (gear icon) → Apps & integrations → scroll to API access → Generate API token. Name it and choose the scopes: Sites (read, plus write to publish the site), CMS (read and write), Pages (read) and Forms (read). Copy the token — a site token only reaches the site it was created for.

  See [Webflow's documentation](https://developers.webflow.com/data/reference/site-token).
</Note>

## Read actions (10)

| Action                  | Description                                                                                                                                                                                                                                                                                       |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `get_collection`        | Retrieve one collection with its field schema (each field's slug, type, display name and whether it is required). Read it before writing an item: the keys of fieldData are these field slugs.                                                                                                    |
| `get_collection_item`   | Retrieve one staged collection item with its fieldData. Optional: cmsLocaleId.                                                                                                                                                                                                                    |
| `get_site`              | Retrieve one site: name, short name, preview URL, last publish date, custom domains and locales (with their cmsLocaleId).                                                                                                                                                                         |
| `list_collection_items` | List the staged (draft and published) items of a collection with their fieldData. Optional: cmsLocaleId (CMS locale id from get\_site), name (exact item name), slug (exact item slug), sortBy (createdOn, lastPublished, lastUpdated, name, slug), sortOrder (asc, desc), offset, limit (1-100). |
| `list_collections`      | List the CMS collections of a site (id, display name, slug) — their ids are what collection\_id accepts.                                                                                                                                                                                          |
| `list_custom_domains`   | List the custom domains of a site — their ids are what customDomains accepts on publish\_site.                                                                                                                                                                                                    |
| `list_form_submissions` | List the submissions of one form (submitted data and date). A form placed in a component counts as a distinct form per instance. Optional: offset, limit (1-100).                                                                                                                                 |
| `list_forms`            | List the forms of a site (id, display name, fields) — their ids are what form\_id accepts. Optional: offset, limit (1-100).                                                                                                                                                                       |
| `list_pages`            | List the pages of a site (id, title, slug, SEO and Open Graph metadata, draft/archived state) — their ids are what pageId accepts on publish\_site. Optional: localeId, offset, limit (1-100).                                                                                                    |
| `list_sites`            | List the sites the token can access (a site token returns its own site) — their ids are what site\_id accepts. Also a cheap way to check the connection works.                                                                                                                                    |

## Write actions (4)

| Action                     | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `create_collection_item`   | Create one item in a collection (staged: it goes live with publish\_collection\_items or publish\_site). Arguments: collection\_id (string); fieldData (object, required: name (string) and slug (string, URL-safe, unique in the collection), plus any other field keyed by its field slug from get\_collection, e.g. \{"name":"Hello","slug":"hello","post-body":"\<p>Hi\</p>"}; rich text is an HTML string, a reference is an item id string, a multi-reference an array of item id strings, an option field takes the option id); isDraft (optional boolean, default true; false queues the item for the next publish); isArchived (optional boolean, default false); cmsLocaleId (optional string, CMS locale id from get\_site). |
| `publish_collection_items` | Publish staged items of a collection to the live site (primary locale). Arguments: collection\_id (string); itemIds (array of item id strings, at least one, from list\_collection\_items).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| `publish_site`             | Publish the whole site, or one page, to its domains — at most one successful publish per minute. Arguments: site\_id (string); customDomains (optional array of custom domain id strings from list\_custom\_domains); publishToWebflowSubdomain (optional boolean, true publishes to the webflow\.io subdomain); at least one of the two is required; pageId (optional string, page id from list\_pages, to publish only that page).                                                                                                                                                                                                                                                                                                    |
| `update_collection_item`   | Update a staged collection item — only the fields sent in fieldData change. Arguments: collection\_id (string); item\_id (string); fieldData (optional object keyed by field slugs from get\_collection, e.g. \{"name":"New title","summary":"…"}; changing slug breaks links to the old one); isDraft (optional boolean; true on a published item holds the changes back without unpublishing it); isArchived (optional boolean); cmsLocaleId (optional string). The change reaches the live site after publish\_collection\_items or publish\_site.                                                                                                                                                                                   |

## Permissions

Every action above must be explicitly granted to an agent before it can be used. See [Permissions](/integrations/permissions) for the grant model and [Security](/integrations/security) for how credentials are protected.
