Webflow · Arazzo Workflow

Webflow Collect Form Submissions

Version 1.0.0

Resolve a site, pick a form, read its schema, and page through that form's submissions.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub CMSEcommerceNo-CodeWeb DevelopmentArazzoWorkflows

Provider

webflow

Workflows

collect-form-submissions
Read a form's schema and retrieve a page of its submissions.
Lists sites, lists forms on the chosen site, confirms a form exists, fetches that form's schema, and pulls a page of submissions for the form.
4 steps inputs: limit, siteId outputs: formId, siteId, submissions
1
listSites
list-sites
List accessible sites to resolve a target site id.
2
listForms
list-forms
List the forms on the resolved site and branch on whether any forms exist before reading submissions.
3
getFormSchema
get-form-schema
Read the schema of the chosen form so the submission field structure is understood before pulling submissions.
4
listSubmissions
list-submissions-by-site
Retrieve a page of submissions for the chosen form across the whole site.

Source API Descriptions

Arazzo Workflow Specification

webflow-collect-form-submissions-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Webflow Collect Form Submissions
  summary: Resolve a site, pick a form, read its schema, and page through that form's submissions.
  description: >-
    A form-data harvesting flow. It resolves the target site, lists the site's
    forms, branches on whether any forms exist, reads the chosen form's schema
    so the field structure is known, and then retrieves a page of submissions
    for that form across the whole site. Every 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: sitesApi
  url: ../openapi/webflow-sites-openapi.yml
  type: openapi
- name: formsApi
  url: ../openapi/webflow-forms-openapi.yml
  type: openapi
workflows:
- workflowId: collect-form-submissions
  summary: Read a form's schema and retrieve a page of its submissions.
  description: >-
    Lists sites, lists forms on the chosen site, confirms a form exists, fetches
    that form's schema, and pulls a page of submissions for the form.
  inputs:
    type: object
    properties:
      siteId:
        type: string
        description: Optional site id; when omitted the first accessible site is used.
      limit:
        type: integer
        description: Maximum number of submissions to return in a page.
        default: 10
  steps:
  - stepId: listSites
    description: List accessible sites to resolve a target site id.
    operationId: list-sites
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstSiteId: $response.body#/sites/0/id
  - stepId: listForms
    description: >-
      List the forms on the resolved site and branch on whether any forms exist
      before reading submissions.
    operationId: list-forms
    parameters:
    - name: site_id
      in: path
      value: $steps.listSites.outputs.firstSiteId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstFormId: $response.body#/forms/0/id
    onSuccess:
    - name: hasForms
      type: goto
      stepId: getFormSchema
      criteria:
      - context: $response.body
        condition: $.forms.length > 0
        type: jsonpath
    - name: noForms
      type: end
      criteria:
      - context: $response.body
        condition: $.forms.length == 0
        type: jsonpath
  - stepId: getFormSchema
    description: >-
      Read the schema of the chosen form so the submission field structure is
      understood before pulling submissions.
    operationId: get-form-schema
    parameters:
    - name: form_id
      in: path
      value: $steps.listForms.outputs.firstFormId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      formId: $response.body#/id
      displayName: $response.body#/displayName
  - stepId: listSubmissions
    description: >-
      Retrieve a page of submissions for the chosen form across the whole site.
    operationId: list-submissions-by-site
    parameters:
    - name: site_id
      in: path
      value: $steps.listSites.outputs.firstSiteId
    - name: elementId
      in: query
      value: $steps.getFormSchema.outputs.formId
    - name: limit
      in: query
      value: $inputs.limit
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      submissions: $response.body#/formSubmissions
      total: $response.body#/total
  outputs:
    siteId: $steps.listSites.outputs.firstSiteId
    formId: $steps.getFormSchema.outputs.formId
    submissions: $steps.listSubmissions.outputs.submissions