arazzo: 1.0.1
info:
title: Wufoo Browse Form Entries
summary: Resolve a form, check its entry count, then page through its entries.
description: >-
A read pattern for pulling submissions out of a Wufoo form. The workflow
confirms the target form by listing all forms and fetching the single form,
counts the entries so the caller can decide whether there is anything to
retrieve, and then pages through the entries with sorting and paging
controls. It branches so an empty form short-circuits before the entry
fetch. 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: entriesApi
url: ../openapi/wufoo-entries-api-openapi.yml
type: openapi
- name: formsApi
url: ../openapi/wufoo-forms-api-openapi.yml
type: openapi
workflows:
- workflowId: browse-form-entries
summary: Resolve a Wufoo form and retrieve a page of its entries.
description: >-
Lists forms, gets the single form, counts its entries, and pages through
the entries, branching to skip the fetch when the form has no entries.
inputs:
type: object
required:
- apiKey
- formIdentifier
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 read entries from.
pageStart:
type: integer
description: Zero-based index of the first entry to return.
default: 0
pageSize:
type: integer
description: Number of entries to return per page (max 100).
default: 25
sort:
type: string
description: Field ID to sort the entries by.
sortDirection:
type: string
description: Sort direction, ASC or DESC.
default: DESC
steps:
- stepId: listForms
description: List all forms to confirm the target form is accessible to the API key.
operationId: listForms
parameters:
- name: format
in: path
value: json
successCriteria:
- condition: $statusCode == 200
outputs:
forms: $response.body#/Forms
- stepId: getForm
description: Fetch the single target form to read its hash and entry links.
operationId: getForm
parameters:
- name: identifier
in: path
value: $inputs.formIdentifier
- name: format
in: path
value: json
successCriteria:
- condition: $statusCode == 200
outputs:
form: $response.body#/Forms/0
hash: $response.body#/Forms/0/Hash
- stepId: countEntries
description: Count the form's entries to decide whether there are any to retrieve.
operationId: countFormEntries
parameters:
- name: identifier
in: path
value: $inputs.formIdentifier
- name: format
in: path
value: json
successCriteria:
- condition: $statusCode == 200
outputs:
entryCount: $response.body#/EntryCount
onSuccess:
- name: hasEntries
type: goto
stepId: listEntries
criteria:
- context: $response.body
condition: $.EntryCount != '0'
type: jsonpath
- name: noEntries
type: end
criteria:
- context: $response.body
condition: $.EntryCount == '0'
type: jsonpath
- stepId: listEntries
description: Retrieve a sorted, paged set of entries for the form.
operationId: listFormEntries
parameters:
- name: identifier
in: path
value: $inputs.formIdentifier
- name: format
in: path
value: json
- name: pageStart
in: query
value: $inputs.pageStart
- name: pageSize
in: query
value: $inputs.pageSize
- name: sort
in: query
value: $inputs.sort
- name: sortDirection
in: query
value: $inputs.sortDirection
successCriteria:
- condition: $statusCode == 200
outputs:
entries: $response.body#/Entries
outputs:
entryCount: $steps.countEntries.outputs.entryCount
entries: $steps.listEntries.outputs.entries
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.