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

# Webflow

> Sites, pages, CMS collections, items, assets, forms, and webhooks.

Webflow is included in Archal's environment catalog. Use it in a sandbox for sites, pages, CMS collections, items, assets, forms, and webhooks.

|                 |                                                |
| --------------- | ---------------------------------------------- |
| Environment ID  | `webflow`                                      |
| Transport       | REST and MCP                                   |
| State           | JSON                                           |
| Contract        | `archal.environment-state.webflow` version `1` |
| Channel         | Preview                                        |
| Curated samples | 5                                              |

Preview means the environment is included for testing, but its upstream coverage is incomplete. Verify the operations your test depends on.

## Compatibility boundary

**Local catalog validation:** All five published samples passed. Checks cover the state contract, relationships, artifact hash, secret scan, and size limit.

<Note>
  Local catalog validation is not hosted proof. Archal checks current certification, reset, and isolation evidence before admitting new sandboxes. Use the authenticated environment catalog for live availability.
</Note>

* Does not claim arbitrary CMS item create/update, publish, asset, or webhook reset behavior.

## Curated starting states

List the five samples with `archal sample list webflow`. Each sample is a versioned starting state with a representative read, mutation, expected diff, reset expectation, and verified artifact hash.

<AccordionGroup>
  <Accordion title="Webflow site baseline">
    List one site and create a collection on that retained site through the verified v2 surface.

    **Sample ID:** `webflow.site-baseline.v1`

    **Category:** `minimal`

    **Starting state:** 2 records across `sites`: 1, `users`: 1

    **Supported surface:** Stateful site, collection, and user reads with a narrower modeled write surface.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.sites`

    **First read:** `GET /v2/sites`. Expected result: HTTP 200.

    **Representative mutation:** `POST /v2/sites/65a1b2c3d4e5f67890123456/collections`. Expected result: HTTP 200.

    **Mutation input**

    ```json theme={null}
    {
      "displayName": "Integration Guides",
      "singularName": "Integration Guide",
      "slug": "integration-guides"
    }
    ```

    **Expected diff:** changes include `_webflowV2Collections`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Does not claim arbitrary CMS item create/update, publish, asset, or webhook reset behavior.

    **Start this sample**

    ```bash theme={null}
    archal sample show webflow.site-baseline.v1 --raw > archal-webflow-site-baseline.json
    archal state validate webflow archal-webflow-site-baseline.json
    archal session create webflow \
      --state webflow=archal-webflow-site-baseline.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show webflow.site-baseline.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/webflow/site-baseline/state.json` and is 952 bytes. The CLI verifies SHA-256 `e26b82b3a1dd720a77185b5ff2b03fa097b72a8d61eb8c2a609cff30639f88d9` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Webflow content team">
    Exercise one site, its blog and author collections, and one authenticated content operator.

    **Sample ID:** `webflow.content-team.v1`

    **Category:** `small-team`

    **Starting state:** 4 records across `collections`: 2, `sites`: 1, `users`: 1

    **Supported surface:** Stateful site, collection, and user reads with a narrower modeled write surface.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.sites`

    **First read:** `GET /v2/sites`. Expected result: HTTP 200.

    **Representative mutation:** `POST /v2/sites/65a1b2c3d4e5f67890123456/collections`. Expected result: HTTP 200.

    **Mutation input**

    ```json theme={null}
    {
      "displayName": "Integration Guides",
      "singularName": "Integration Guide",
      "slug": "integration-guides"
    }
    ```

    **Expected diff:** changes include `_webflowV2Collections`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Does not claim arbitrary CMS item create/update, publish, asset, or webhook reset behavior.

    **Start this sample**

    ```bash theme={null}
    archal sample show webflow.content-team.v1 --raw > archal-webflow-content-team.json
    archal state validate webflow archal-webflow-content-team.json
    archal session create webflow \
      --state webflow=archal-webflow-content-team.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show webflow.content-team.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/webflow/content-team/state.json` and is 2,542 bytes. The CLI verifies SHA-256 `a76b4ca1c1a13ecd08431d780d6ca6b4399cab20dd919d82f3f6930b0d54e938` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Webflow populated site portfolio">
    Exercise site and collection listing over four sites, five collections, and one authenticated user.

    **Sample ID:** `webflow.site-portfolio.v1`

    **Category:** `populated`

    **Starting state:** 10 records across `collections`: 5, `sites`: 4, `users`: 1

    **Supported surface:** Stateful site, collection, and user reads with a narrower modeled write surface.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.sites`

    **First read:** `GET /v2/sites`. Expected result: HTTP 200.

    **Representative mutation:** `POST /v2/sites/65a1b2c3d4e5f67890123456/collections`. Expected result: HTTP 200.

    **Mutation input**

    ```json theme={null}
    {
      "displayName": "Integration Guides",
      "singularName": "Integration Guide",
      "slug": "integration-guides"
    }
    ```

    **Expected diff:** changes include `_webflowV2Collections`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Does not claim arbitrary CMS item create/update, publish, asset, or webhook reset behavior.

    **Start this sample**

    ```bash theme={null}
    archal sample show webflow.site-portfolio.v1 --raw > archal-webflow-site-portfolio.json
    archal state validate webflow archal-webflow-site-portfolio.json
    archal session create webflow \
      --state webflow=archal-webflow-site-portfolio.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show webflow.site-portfolio.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/webflow/site-portfolio/state.json` and is 6,784 bytes. The CLI verifies SHA-256 `faac43b247cc81932677aabcfc4f1213b6cd8117a42a06af4e9c2f4a83eb8538` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Webflow unpublished site">
    Verify a valid site whose lastPublished value is null without claiming publish support.

    **Sample ID:** `webflow.unpublished-site.v1`

    **Category:** `edge-case`

    **Starting state:** 2 records across `sites`: 1, `users`: 1

    **Supported surface:** Stateful site, collection, and user reads with a narrower modeled write surface.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.sites`

    **First read:** `GET /v2/sites`. Expected result: HTTP 200.

    **Representative mutation:** `POST /v2/sites/65a1b2c3d4e5f67890123456/collections`. Expected result: HTTP 200.

    **Mutation input**

    ```json theme={null}
    {
      "displayName": "Integration Guides",
      "singularName": "Integration Guide",
      "slug": "integration-guides"
    }
    ```

    **Expected diff:** changes include `_webflowV2Collections`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Does not claim arbitrary CMS item create/update, publish, asset, or webhook reset behavior.

    **Start this sample**

    ```bash theme={null}
    archal sample show webflow.unpublished-site.v1 --raw > archal-webflow-unpublished-site.json
    archal state validate webflow archal-webflow-unpublished-site.json
    archal session create webflow \
      --state webflow=archal-webflow-unpublished-site.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show webflow.unpublished-site.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/webflow/unpublished-site/state.json` and is 930 bytes. The CLI verifies SHA-256 `034f3071f99a3b136d0ac70bd9b910f9b31fabbf06c2e4a3c8425ebbfd6da796` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>

  <Accordion title="Webflow collection-creation workflow">
    Read a site and its existing collection, create one provider-native v2 collection, and verify diff, reset, and isolation.

    **Sample ID:** `webflow.collection-creation-workflow.v1`

    **Category:** `workflow`

    **Starting state:** 3 records across `collections`: 1, `sites`: 1, `users`: 1

    **Supported surface:** Stateful site, collection, and user reads with a narrower modeled write surface.

    **Required capabilities:** `state.read`, `state.load`, `state.reset`, `rest.sites`

    **First read:** `GET /v2/sites`. Expected result: HTTP 200.

    **Representative mutation:** `POST /v2/sites/65a1b2c3d4e5f67890123456/collections`. Expected result: HTTP 200.

    **Mutation input**

    ```json theme={null}
    {
      "displayName": "Integration Guides",
      "singularName": "Integration Guide",
      "slug": "integration-guides"
    }
    ```

    **Expected diff:** changes include `_webflowV2Collections`. Exact match required: no. Hosted promotion must observe every listed path after the provider-native mutation; dynamic provider ids and timestamps are excluded from exact matching.

    **Expected reset:** restores loaded sample.

    **Known limits**

    * Does not claim arbitrary CMS item create/update, publish, asset, or webhook reset behavior.

    **Start this sample**

    ```bash theme={null}
    archal sample show webflow.collection-creation-workflow.v1 --raw > archal-webflow-collection-creation-workflow.json
    archal state validate webflow archal-webflow-collection-creation-workflow.json
    archal session create webflow \
      --state webflow=archal-webflow-collection-creation-workflow.json
    ```

    **Inspect the raw state**

    ```bash theme={null}
    archal sample show webflow.collection-creation-workflow.v1 --raw
    ```

    The packaged JSON artifact is `samples/states/webflow/collection-creation-workflow/state.json` and is 1,753 bytes. The CLI verifies SHA-256 `80b8e12561c42968c1550a3add8caf8ffa7025a0420c5c7806156007b38e1971` before printing it.

    Catalog validation: **Passed**. Hosted availability is determined by Archal's live certification and admission system, not this static page.
  </Accordion>
</AccordionGroup>

## Use custom state

Start from a sample when possible. For custom state, inspect the contract with `archal environment describe webflow`, then validate the file before creating a sandbox:

```bash theme={null}
archal state validate webflow state.json
```

Loading state replaces the current collections and establishes a new reset baseline. See [Starting state](/sandboxes/starting-state) before replacing state in an existing sandbox.
