Skip to main content

List Forms

Lists all available forms

How It Works

  1. A GET request is sent to the Robomotion Forms API at /v1/forms.list endpoint
  2. The API retrieves all forms accessible to the current workspace
  3. The forms array is extracted from the API response
  4. Each form object in the array contains metadata like ID, name, description, queue name, creation date, etc.
  5. The forms list is set in the configured output variable
  6. The message passes through with the complete forms list

Requirements

  • User must have permissions to list forms in the workspace
  • An active API connection to Robomotion Forms service

Error Handling

Error CodeDescriptionCause
Core.Forms.List.ErrOnCreateConfig parse errorInvalid node configuration during creation
Core.Forms.List.ErrOnMessageMessage parse errorInvalid message format received
Core.Forms.List.Err (API error)List retrieval failedAPI request failed or permissions error
Core.Forms.List.Err (Form fetch error)Forms not fetchedAPI response missing "forms" field

Common Properties

  • Name - The custom name of the node.
  • Color - The custom color of the node.
  • Delay Before (sec) - Waits in seconds before executing the node.
  • Delay After (sec) - Waits in seconds after executing node.
  • Continue On Error - Automation will continue regardless of any error. The default value is false.
info

If ContinueOnError property is true, no error is caught when the project is executed even if Catch node is used.

Output

  • Forms - List of all available forms. Each form object contains ID, name, description, queue name, and metadata.

Usage Examples

Example 1: Display All Forms

List Forms → msg.allForms
└─ For Each (msg.allForms)
├─ Debug (form.name, form.id, form.queueName)
│ └─ [Return to For Each]
└─ Complete

Retrieve and display information about all forms in the workspace.

Example 2: Find Form by Name

List Forms → msg.allForms
└─ Function
├─ Code: msg.targetForm = msg.allForms.find(f => f.name === "Contact Form")
└─ If (msg.targetForm)
└─ Create Form Instance (msg.targetForm.id)
└─ Else: Log "Form not found"

Search for a specific form by name from the list.

Example 3: Delete Old Forms

List Forms → msg.allForms
└─ Function (filter forms older than 90 days)
└─ For Each (msg.oldForms)
├─ Delete Form (form.id)
│ └─ Log "Deleted: " + form.name
│ └─ [Return to For Each]
└─ Complete

List all forms and delete those created more than 90 days ago.

Usage Notes

  • The output is an array of form objects, even if only one or zero forms exist
  • Each form object includes complete metadata but not instance-level data
  • Use this node to discover Form IDs when you don't have them stored
  • The list includes all forms in the workspace regardless of who created them
  • Forms are not sorted by default - sort them in a Function node if needed

Tips

  • Cache the forms list in a global variable to avoid repeated API calls
  • Use Function nodes to filter or search through the forms array
  • Combine with For Each to process all forms in batch operations
  • Check the array length to determine if any forms exist before processing
  • Store frequently-used Form IDs in variables or databases to avoid listing
  • Use the form metadata to implement form management dashboards
  • Filter by queue name to find forms associated with specific workflows