Tally.so

Interact with Tally.so forms and submissions

Form → Copy Questions

AI-generated

Overview

This node operation copies questions from a source form to a destination form within the Tally.so platform. It supports selecting specific question groups or all questions from the source form and allows inserting them at various positions in the destination form. It can optionally replace all contents of the destination form, perform dry-run previews without making changes, and create backups for rollback purposes. This operation is useful for duplicating or migrating form questions efficiently between forms.

Use Case Examples

  1. Copy selected question groups from one form to another to reuse survey questions.
  2. Copy all questions from a source form to a destination form, optionally replacing the destination's existing content.
  3. Preview the changes to be made when copying questions without applying them, to verify the result before committing.

Properties

Name Meaning
Source Form The form ID from which questions will be copied.
Destination Form The form ID to which questions will be copied.
Show Advanced (UUID input) Toggle to show the legacy input field for specifying question UUIDs to copy.
Question UUIDs to Copy Legacy input for specifying question block UUIDs to copy; each UUID resolves to a question group UUID and copies the entire group.
Source Questions Select question groups from the source form to copy; each group UUID includes all associated blocks like options.
Insert Position Mode Determines where to insert copied questions in the destination form.
Copy All From Source If enabled, copies all question groups from the source form.
Replace Destination Contents When copying all questions, this option deletes all existing blocks in the destination form before inserting the source content. Use with caution.
Insert Index The index position at which to insert copied questions when Insert Position Mode is set to 'Index'.
Insert Ref UUID The reference block UUID used for insertion when Insert Position Mode is 'Before Block' or 'After Block'.
Dry-Run / Preview If enabled, the operation does not apply changes but outputs the proposed blocks and a diff for review.
Backup Previous Form If enabled, includes the pre-patch form JSON in the output to allow rollback later.
Optimistic Concurrency If enabled, checks the form's updatedAt timestamp before patching to prevent overwriting changes made by others.

Output

JSON

  • updated - Indicates whether the destination form was successfully updated.
  • form - The updated form object after copying questions.
  • backup - The backup of the destination form before changes, if backup option is enabled.
  • preview - Indicates a dry-run preview without applying changes.
  • destFormId - The ID of the destination form in a dry-run preview.
  • proposedBlocks - The proposed blocks for the destination form after copying questions, shown in dry-run mode.
  • diff - The difference between the original and proposed blocks, shown in dry-run mode.

Dependencies

  • Tally.so API with an API key credential

Troubleshooting

  • Ensure the source and destination form IDs are valid and accessible with the provided API credentials.
  • If using optimistic concurrency, re-run the operation if you receive an error indicating the form changed since read to avoid conflicts.
  • When using the legacy UUID input, ensure the UUIDs correspond to valid question blocks in the source form.
  • Be cautious when enabling 'Replace Destination Contents' as it deletes all existing blocks in the destination form before copying.
  • If dry-run mode is enabled, no changes will be applied; use this to verify changes before committing.

Links

Discussion