field typesarray

Array (Repeating)

A repeating group of fields where respondents can add multiple entries.

Overview

The Array field creates a repeating block of sub-fields. Unlike the Table field which presents data in a grid, the Array field renders each entry as a full form group, making it suitable for complex nested data with many fields per entry (e.g. emergency contacts with name, phone, relationship, and address).

Respondents can add entries with the Add Item button, and remove individual entries with the delete button on each card. Entries can optionally be reordered by dragging.

Properties

PropertyTypeDefaultDescription
labelstringHuman-readable label shown above the field or step heading.
requiredbooleanfalseWhen true, the form cannot submit without a value.
isHiddenbooleanfalseHides the field from respondents (may still store defaults).
isDisabledbooleanfalseRenders the field read-only.
instructionstringundefinedHelp text shown below the label (not the same as placeholder).
fieldsFormField[][]Nested field template for each repeated entry.
minItemsnumber0Minimum number of entries required.
maxItemsnumberundefinedMaximum number of entries allowed.
addLabelstring"Add Item"Label for the add-entry button.
itemLabelstring"Item"Prefix label for each entry card (e.g. "Contact 1").
collapsiblebooleanfalseAllow entries to be collapsed to save space.

JSON Schema

{
  "type": "array",
  "label": "Emergency Contacts",
  "name": "emergency_contacts",
  "required": true,
  "minItems": 1,
  "maxItems": 3,
  "itemLabel": "Contact",
  "fields": [
    { "type": "text",  "label": "Full Name",     "name": "name",         "required": true  },
    { "type": "phone", "label": "Phone Number",  "name": "phone",        "required": true  },
    { "type": "select","label": "Relationship",  "name": "relationship", "required": true,
      "options": [
        { "label": "Parent",  "value": "parent"  },
        { "label": "Sibling", "value": "sibling" },
        { "label": "Spouse",  "value": "spouse"  },
        { "label": "Friend",  "value": "friend"  }
      ]
    }
  ]
}

Common Use Cases

  • Emergency contacts, references, or beneficiaries with several fields each
  • Line-of-business entries that are too rich for a flat table (mixed field types)
  • Team rosters capturing name, role, and availability per participant
  • Equipment registrations repeating serial numbers with warranty metadata
  • Nested questionnaires where card layout aids scanning versus spreadsheet grids