Integration reference
Webflow Trigger and Action reference
Start Workflows from Webflow site, CMS, form, ecommerce, and comment events, then manage content and commerce through the Data API.
Authentication
Connect each customer's Webflow account through OAuth. During authorization, the customer can grant access to a workspace or selected sites; FastHook stores the access token encrypted.
- Trigger account type:
oauth2; reconnect byoauth. - Action connection type:
oauth2; available modes: Connected Webflow account.
Create or reuse the account from a Trigger or Action dialog, or manage it under Settings → Connected accounts. See Authentication and permissions for scopes and access diagnostics, or Connected accounts for reuse, reconnect, revocation, and credential rotation.
Scopes and permissions
Base Trigger authorization requests: authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:read.
View 11 provider permissions or credential requirements
authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:read
Operation-specific requirements appear in the tables below. Custom event selections can add scopes dynamically, so the current Trigger or Action dialog remains authoritative for the exact consent request.
Use Webflow as a Trigger
The current provider manifest contains 16 available Trigger definitions. Representative definitions include:
- New Form Submission
- Site Published
- Collection Item Updated
- New Order
View all 16 available Trigger definitions
| Trigger | Manifest key | Delivery | Additional scopes |
|---|---|---|---|
| New Form Submission | webflow.form_submission.instant | instant | None declared |
| Site Published | webflow.site_publish.instant | instant | None declared |
| Page Created | webflow.page_created.instant | instant | None declared |
| Page Metadata Updated | webflow.page_metadata_updated.instant | instant | None declared |
| Page Deleted | webflow.page_deleted.instant | instant | None declared |
| Collection Item Created | webflow.collection_item_created.instant | instant | None declared |
| Collection Item Updated | webflow.collection_item_changed.instant | instant | None declared |
| Collection Item Deleted | webflow.collection_item_deleted.instant | instant | None declared |
| Collection Item Published | webflow.collection_item_published.instant | instant | None declared |
| Collection Item Unpublished | webflow.collection_item_unpublished.instant | instant | None declared |
| New Order | webflow.ecomm_new_order.instant | instant | None declared |
| Order Updated | webflow.ecomm_order_changed.instant | instant | None declared |
| Inventory Updated | webflow.ecomm_inventory_changed.instant | instant | None declared |
| New Comment | webflow.comment_created.instant | instant | None declared |
| Any Webflow Event | webflow.any_event.instant | instant | None declared |
| Custom Webflow Events | webflow.custom_webhook_events.instant | instant | None declared |
Choose the narrowest event definition that fits the Workflow. Configure provider-specific resource and event filters in the Source dialog before adding broader Workflow Filters.
Use Webflow Actions
The current Action manifest contains 24 operations. Representative Actions include:
- Publish Site
- Create Collection Item
- List Form Submissions
- Fulfill Order
View all 24 available Action definitions
| Action | Manifest key | Access and auth | Manifest rate limit |
|---|---|---|---|
| List Sites | webflow.list_sites | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| Get Site | webflow.get_site | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| Publish Site | webflow.publish_site | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| List Collections | webflow.list_collections | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| Get Collection | webflow.get_collection | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| List Collection Items | webflow.list_collection_items | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| Get Collection Item | webflow.get_collection_item | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| Create Collection Item | webflow.create_collection_item | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| Create Live Collection Item | webflow.create_live_collection_item | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| Update Collection Item | webflow.update_collection_item | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| Update Live Collection Item | webflow.update_live_collection_item | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| Publish Collection Items | webflow.publish_collection_items | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| Delete Collection Item | webflow.delete_collection_item | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| List Forms | webflow.list_forms | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| Get Form Schema | webflow.get_form_schema | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| List Form Submissions | webflow.list_form_submissions | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| Get Form Submission | webflow.get_form_submission | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| List Products | webflow.list_products | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| Get Product | webflow.get_product | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| List Orders | webflow.list_orders | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| Get Order | webflow.get_order | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| Update Order | webflow.update_order | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| Fulfill Order | webflow.fulfill_order | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
| Custom API Request | webflow.custom_api_request | authorized_user:read, sites:read, sites:write, cms:read, cms:write, forms:read, forms:write, pages:read, ecommerce:read, ecommerce:write, comments:readFastHook-managed account | 1/second |
The Action editor reads its required permissions, fields, remote resource pickers, output schema, and rate limit from the provider manifest. Available fields can change with the selected operation and authentication mode.
Build a Workflow
- Create a Source using a Webflow Trigger definition.
- Create a Workflow with that Source as its Trigger.
- Add the required Webflow Action and select the connected account.
- Map Trigger or earlier-Step data into the Action fields with the field picker.
- Add a Filter, Paths, Delay, or Transformation when the route needs it.
- Activate the Workflow, produce a controlled event, and verify the run in Audit and in Webflow.
Troubleshooting Webflow
- The account is missing or cannot be selected
- Confirm the active FastHook team, provider, account status, and authentication mode. A disabled or revoked account cannot execute an Action.
- A resource picker is empty
- Verify that the connected provider identity can access the resource itself. OAuth consent does not add workspace, repository, channel, drive, project, base, or record permissions.
- The editor asks for additional scopes
- Reconnect the same account from the affected Trigger or Action so FastHook can request its current manifest scopes. Then reopen the editor and select the resource again.
- An active Workflow returns 401, 403, or a permission error
- Compare the selected operation’s access requirements below with the account recorded in Audit. Check provider-side membership and object access before repeating the Action.
- The provider returns 429 or a temporary 5xx
- Inspect the Step attempt and retryability in Audit. FastHook can retry temporary failures, but provider quotas and idempotency rules still apply.
Provider-specific checks
- Choose one to five sites per Source. FastHook creates one Webflow webhook for each selected site and event and removes unused webhooks automatically.
- FastHook verifies x-webflow-signature against the exact request body and rejects webhook timestamps outside a five-minute window before storing an event.
- CMS item bodies use Webflow's fieldData JSON. Collection fields differ by site, so use List Collections and List Collection Items to inspect IDs and values before writing content.
- Webflow permissions and plan features determine whether publishing, ecommerce, forms, localization, and comments are available on a selected site.
- Custom API Request is restricted to https://api.webflow.com/v2 and cannot override the host or authorization header.
- Action and Trigger output schemas are extracted from the pinned official Webflow OpenAPI specification. Event payloads stay open where Webflow varies fields by event and site configuration.