Webflow API and Documentation · Arazzo Workflow

Webflow Form Schema and Submission Webhook

Version 1.0.0

List a site's forms, read the first form's schema, and register a form_submission webhook.

1 workflow 1 source API 1 provider
View Spec View on GitHub CMSContent ManagementEcommerceNo-CodePublishingWeb DevelopmentArazzoWorkflows

Provider

webflow-api-and-documentation-webflow

Workflows

form-schema-and-webhook
Read a form's schema and register a form_submission webhook.
Lists the forms on a site, retrieves the first form's schema, and registers a webhook that fires on each form submission.
3 steps inputs: accessToken, destinationUrl, siteId outputs: formId, webhookId
1
listForms
list-forms
List the forms that belong to the site.
2
getFormSchema
get-form-schema
Read the first form's schema to confirm its fields.
3
registerSubmissionWebhook
create-webhook
Register a webhook that fires on each form submission.

Source API Descriptions

Arazzo Workflow Specification

webflow-api-and-documentation-webflow-form-schema-and-webhook-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Webflow Form Schema and Submission Webhook
  summary: List a site's forms, read the first form's schema, and register a form_submission webhook.
  description: >-
    Connects a Webflow form to downstream automation. The workflow lists the
    forms on a site, reads the first form's schema to confirm its fields, and
    registers a form_submission webhook so each new submission is pushed to an
    external endpoint. Each step spells out its request inline so the flow can
    be read and executed without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: webflowDataApi
  url: ../openapi/webflow-data-api-openapi.yml
  type: openapi
workflows:
- workflowId: form-schema-and-webhook
  summary: Read a form's schema and register a form_submission webhook.
  description: >-
    Lists the forms on a site, retrieves the first form's schema, and registers
    a webhook that fires on each form submission.
  inputs:
    type: object
    required:
    - accessToken
    - siteId
    - destinationUrl
    properties:
      accessToken:
        type: string
        description: Webflow OAuth bearer token with forms:read and sites:write scopes.
      siteId:
        type: string
        description: Unique identifier for the Site whose forms are inspected.
      destinationUrl:
        type: string
        description: URL that form submission webhook payloads are sent to.
  steps:
  - stepId: listForms
    description: List the forms that belong to the site.
    operationId: list-forms
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: site_id
      in: path
      value: $inputs.siteId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstFormId: $response.body#/forms/0/id
  - stepId: getFormSchema
    description: Read the first form's schema to confirm its fields.
    operationId: get-form-schema
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: form_id
      in: path
      value: $steps.listForms.outputs.firstFormId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      formId: $response.body#/id
  - stepId: registerSubmissionWebhook
    description: Register a webhook that fires on each form submission.
    operationId: create-webhook
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: site_id
      in: path
      value: $inputs.siteId
    requestBody:
      contentType: application/json
      payload:
        triggerType: form_submission
        url: $inputs.destinationUrl
    successCriteria:
    - condition: $statusCode == 201
    outputs:
      webhookId: $response.body#/id
  outputs:
    formId: $steps.getFormSchema.outputs.formId
    webhookId: $steps.registerSubmissionWebhook.outputs.webhookId