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

# Webflow Webhook Setup Guide

> Configure Webflow to deliver events to StackOne.

## Prerequisites

The connector should already be set up, with a Connector Profile and a Linked Account. See [Getting Started](/connectors/webflow#getting-started) on the Webflow connector page.

<section data-guide-section data-guide-scopes="">
  <h2>Automatic webhook subscription</h2>

  <p>StackOne creates and manages the Webflow webhooks automatically when the account is connected, and deletes them when the account is disconnected. You don't need to create any webhook in Webflow.</p>

  <Steps>
    <Step title="Check token and scope requirements">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>The connection must be able to manage webhooks on the site.</p>

        <ul>
          <li><strong>OAuth 2.0</strong> connections need the `sites:write` scope, plus the read scope for each event you enable: `forms:read`, `sites:read`, `pages:read`, `cms:read`, `ecommerce:read` or `comments:read`.</li>
          <li><strong>Site Token</strong> connections can manage webhooks on the token's own site.</li>
        </ul>
      </div>
    </Step>

    <Step title="Select events in StackOne">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Enable the webhook events you want on the Webflow connector in StackOne. Webflow allows one trigger type per webhook, so StackOne creates one webhook on the site for each selected event.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Find your Site ID</h2>

  <p>Webflow webhooks belong to a single site. The <strong>Site ID</strong> identifies that site, and StackOne creates the webhooks on it. Webhooks cannot be created while <strong>Webhook Site ID</strong> is empty.</p>

  <Steps>
    <Step title="Open the site menu">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to your <a href="https://webflow.com/dashboard" target="_blank" rel="noopener noreferrer">Webflow account</a>. On the <strong>All projects</strong> page, find the site's card and click its <strong>Site settings</strong> menu (the three-dot button next to the site name).</p>

        <img src="https://mintcdn.com/stackone-60/_ZPheFTraWUhQIbn/connectors/webflow/images/events-site-card-menu.png?fit=max&auto=format&n=_ZPheFTraWUhQIbn&q=85&s=7742c58bb68397c0a97572e3bfd035dc" alt="The All projects page with the three-dot Site settings button on a site card highlighted" width="1280" height="800" data-path="connectors/webflow/images/events-site-card-menu.png" />
      </div>
    </Step>

    <Step title="Open the site settings">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Click <strong>Settings</strong> in the menu. The site settings open on the <strong>General</strong> tab.</p>

        <img src="https://mintcdn.com/stackone-60/_ZPheFTraWUhQIbn/connectors/webflow/images/events-site-settings-menu.png?fit=max&auto=format&n=_ZPheFTraWUhQIbn&q=85&s=86f28ad4924434d8c194f9baa9582093" alt="The site card menu open with the Settings item highlighted" width="1280" height="800" data-path="connectors/webflow/images/events-site-settings-menu.png" />
      </div>
    </Step>

    <Step title="Copy the Site ID">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Scroll down to the <strong>Overview</strong> section and copy the value next to <strong>Site ID</strong>.</p>

        <ul>
          <li>Enter it in <strong>Webhook Site ID</strong> on the linked account in StackOne Hub.</li>
          <li>For a <strong>Site Token</strong> connection, use the ID of the site the token was generated for.</li>
        </ul>

        <img src="https://mintcdn.com/stackone-60/_ZPheFTraWUhQIbn/connectors/webflow/images/events-site-id.png?fit=max&auto=format&n=_ZPheFTraWUhQIbn&q=85&s=45a877ea120bbae9023aa1d008274f2d" alt="The Overview section of the General settings with the Site ID row highlighted" width="1280" height="800" data-path="connectors/webflow/images/events-site-id.png" />
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Available webhook events</h2>

  <p>The following Webflow events can be enabled. Only events selected in StackOne are subscribed, and Webflow does not deliver events that are not subscribed.</p>

  <Steps>
    <Step title="Form events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events on form submissions.</p>

        <ul>
          <li><strong>Form Submission</strong> (`form_submission`) — Fired when a form on the site is submitted</li>
        </ul>
      </div>
    </Step>

    <Step title="Site and page events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events on site publishing and pages.</p>

        <ul>
          <li><strong>Site Publish</strong> (`site_publish`) — Fired when the site, or a single page of it, is published</li>
          <li><strong>Page Created</strong> (`page_created`) — Fired when a page is created</li>
          <li><strong>Page Metadata Updated</strong> (`page_metadata_updated`) — Fired when a page's metadata or settings are updated</li>
          <li><strong>Page Deleted</strong> (`page_deleted`) — Fired when a page is deleted</li>
        </ul>
      </div>
    </Step>

    <Step title="CMS events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events on CMS collection items.</p>

        <ul>
          <li><strong>Collection Item Created</strong> (`collection_item_created`) — Fired when a CMS collection item is created</li>
          <li><strong>Collection Item Changed</strong> (`collection_item_changed`) — Fired when a CMS collection item is updated</li>
          <li><strong>Collection Item Deleted</strong> (`collection_item_deleted`) — Fired when a CMS collection item is deleted</li>
          <li><strong>Collection Item Published</strong> (`collection_item_published`) — Fired when a CMS collection item is published</li>
          <li><strong>Collection Item Unpublished</strong> (`collection_item_unpublished`) — Fired when a CMS collection item is unpublished</li>
        </ul>
      </div>
    </Step>

    <Step title="Ecommerce events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events on ecommerce orders and inventory. These require Ecommerce to be enabled on the site, which needs an Ecommerce site plan.</p>

        <ul>
          <li><strong>New Ecommerce Order</strong> (`ecomm_new_order`) — Fired when a new ecommerce order is placed</li>
          <li><strong>Ecommerce Order Changed</strong> (`ecomm_order_changed`) — Fired when an ecommerce order changes, for example its status, fulfilment or comment</li>
          <li><strong>Ecommerce Inventory Changed</strong> (`ecomm_inventory_changed`) — Fired when the inventory of a product SKU changes</li>
        </ul>
      </div>
    </Step>

    <Step title="Comment events">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Events on site comments.</p>

        <ul>
          <li><strong>Comment Created</strong> (`comment_created`) — Fired when a comment thread or a reply is created. Webflow may deliver it up to 5 minutes after the comment is posted</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Delivery format</h2>

  <p>Details of how Webflow delivers events to StackOne.</p>

  <Steps>
    <Step title="JSON payloads">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Webflow sends one event per HTTP POST. The trigger type is in `triggerType` and the record in `payload`. StackOne uses the changed record's ID from `payload` as the event ID, for example the item ID, page ID, order ID or comment ID.</p>

        <ul>
          <li>Order and inventory events do not include a site ID in the payload.</li>
          <li>Collection Item Published carries the published items as a list in `payload.items`, because one publish can cover several items. StackOne emits one event per published item.</li>
        </ul>
      </div>
    </Step>

    <Step title="Signature verification">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Webflow signs each delivery with the `x-webflow-signature` header, a hex HMAC-SHA256 of the `x-webflow-timestamp` header, a colon, and the raw body. OAuth 2.0 webhooks are signed with the app's client secret.</p>
      </div>
    </Step>

    <Step title="Retries and deactivation">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Webflow retries a failed delivery up to 3 times, 10 minutes apart. If deliveries keep failing, Webflow deactivates the webhook and notifies the Workspace by email.</p>
      </div>
    </Step>
  </Steps>
</section>

## Verify

Your Connector should now be able to receive and process events. Try triggering an event and you should see an Event appear in the Connector logs.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.