Wufoo · Arazzo Workflow

Wufoo Submit a Form Entry

Version 1.0.0

Discover a form, read its field structure, then submit a new entry.

1 workflow 1 source API 1 provider
View Spec View on GitHub FormsForm BuilderSurveysData CollectionWebhooksPaymentsSurveyMonkeyArazzoWorkflows

Provider

wufoo

Workflows

submit-form-entry
Submit a new entry to a Wufoo form after resolving its field structure.
Lists forms, reads the field structure for the target form, and submits a new entry, branching on whether the submission succeeded or failed validation.
3 steps inputs: apiKey, fields, formIdentifier outputs: entryId, entryLink, success
1
listForms
listForms
List all forms accessible to the API key to confirm the target form exists.
2
readFields
listFormFields
Read the field structure of the target form so the caller knows which Field IDs to populate.
3
submitEntry
submitFormEntry
Submit the new entry to the form as form-encoded Field values.

Source API Descriptions

Arazzo Workflow Specification

wufoo-submit-form-entry-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Wufoo Submit a Form Entry
  summary: Discover a form, read its field structure, then submit a new entry.
  description: >-
    The core Wufoo write pattern. The workflow lists the account's forms to
    confirm the target form exists, reads that form's field structure so the
    caller knows which Field{N} keys to populate, and then submits a new entry
    using form-encoded Field values. It branches on the submission result so a
    validation failure (Success == 0) is handled distinctly from a successful
    submission. 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: wufooApi
  url: ../openapi/wufoo-rest-v3-openapi.yml
  type: openapi
workflows:
- workflowId: submit-form-entry
  summary: Submit a new entry to a Wufoo form after resolving its field structure.
  description: >-
    Lists forms, reads the field structure for the target form, and submits a
    new entry, branching on whether the submission succeeded or failed
    validation.
  inputs:
    type: object
    required:
    - apiKey
    - formIdentifier
    - fields
    properties:
      apiKey:
        type: string
        description: Wufoo account API key, used as the HTTP Basic Auth username.
      formIdentifier:
        type: string
        description: Form hash (preferred) or title to submit the entry to.
      fields:
        type: object
        description: >-
          Map of Field{N} keys to string values, form-encoded into the entry
          submission (e.g. {"Field1":"Jane","Field3":"[email protected]"}).
  steps:
  - stepId: listForms
    description: List all forms accessible to the API key to confirm the target form exists.
    operationId: listForms
    parameters:
    - name: format
      in: path
      value: json
    - name: limit
      in: query
      value: 1000
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      forms: $response.body#/Forms
  - stepId: readFields
    description: Read the field structure of the target form so the caller knows which Field IDs to populate.
    operationId: listFormFields
    parameters:
    - name: identifier
      in: path
      value: $inputs.formIdentifier
    - name: format
      in: path
      value: json
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      fields: $response.body#/Fields
  - stepId: submitEntry
    description: Submit the new entry to the form as form-encoded Field values.
    operationId: submitFormEntry
    parameters:
    - name: identifier
      in: path
      value: $inputs.formIdentifier
    - name: format
      in: path
      value: json
    requestBody:
      contentType: application/x-www-form-urlencoded
      payload: $inputs.fields
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      success: $response.body#/Success
      entryId: $response.body#/EntryId
      entryLink: $response.body#/EntryLink
    onSuccess:
    - name: submissionAccepted
      type: end
      criteria:
      - context: $response.body
        condition: $.Success == 1
        type: jsonpath
    onFailure:
    - name: validationFailed
      type: end
      criteria:
      - context: $response.body
        condition: $.Success == 0
        type: jsonpath
  outputs:
    entryId: $steps.submitEntry.outputs.entryId
    entryLink: $steps.submitEntry.outputs.entryLink
    success: $steps.submitEntry.outputs.success