Tally.so

Interact with Tally.so forms and submissions

Form → Add Field

AI-generated

Overview

This node operation allows users to add a new field (question) to an existing Tally.so form. It is useful for dynamically updating forms by inserting various types of fields such as text inputs, dropdowns, checkboxes, ratings, file uploads, and custom field types. Users can specify the field's label, title, placeholder, options (for choice fields), and position within the form. The operation supports dry-run mode to preview changes without applying them, and includes options for backing up the form and optimistic concurrency control to prevent overwrites.

Use Case Examples

  1. Adding a multiple choice question to a survey form with specific options and marking it as required.
  2. Inserting a new short text input field at a specific position in a form to collect user feedback.
  3. Previewing the changes to a form by enabling dry-run before actually updating the form on Tally.so.

Properties

Name Meaning
Form Target form to update, selected from available forms.
Field Type Type of field to add, such as Short Text, Dropdown, Multiple Choice, or Custom type.
Options (JSON) JSON array of option labels for choice fields like radio, checkboxes, select, and multi-select.
Custom Field Type Raw Tally block type string used when Field Type is set to Custom.
Title Optional title or question text displayed above the field, creating a separate title block.
Label Label text for the field, required for identification.
Placeholder Placeholder text shown inside the field where supported.
Payload (JSON) Type-specific JSON payload to set additional properties on the field block.
Required Boolean flag to mark the field as required.
Position Mode Where to insert the new field in the form blocks: at the end, at a specific index, before a block, or after a block.
Index Index position to insert the field when Position Mode is set to Index.
Reference Block UUID UUID of the block to insert before or after when Position Mode is Before Block or After Block.
Dry-Run / Preview If enabled, the node does not apply changes but outputs the proposed blocks and a diff preview.
Backup Previous Form If enabled, includes the pre-patch form JSON in the output to allow rollback later.
Optimistic Concurrency If enabled, compares the form's updatedAt timestamp before patching to prevent overwriting changes made by others.

Output

JSON

  • updated - Boolean indicating if the form was successfully updated.
  • form - The updated form object returned from Tally.so.
  • backup - The previous form JSON before the update, included if backup is enabled.
  • preview - Boolean indicating if the output is a preview (dry-run).
  • formId - ID of the form being updated.
  • proposedBlocks - The proposed new blocks for the form in a dry-run.
  • diff - A diff object showing changes between the current and proposed form blocks.

Dependencies

  • Tally.so API
  • An API key credential for Tally.so

Troubleshooting

  • Common errors include invalid JSON in Options or Payload fields; ensure JSON is well-formed.
  • If the form has changed since it was read, an optimistic concurrency error is thrown; re-run the node to avoid conflicts.
  • For choice fields, Options (JSON) must be a non-empty array of strings; otherwise, an error is thrown.
  • Field UUID or Label must be correctly specified when updating or deleting fields to avoid 'not found' errors.

Links

Discussion