NextGen APIs

Dynamic Forms Sheets: Node Types

Overview

Dynamic Forms use a tree structure composed of different node types. Each node has a type field that contains type-specific properties and a value field. The node type is identified by the name property.

This page documents all possible node types that can be returned by Dynamic Forms APIs (both Templates and Sheets).

Common Structure

All node types extend a base structure:

JSON
{
  "name": "<type-name>",
  "value": <type-specific-value>
}

Node Types

1. Text (inputText)

Description: A text input field with optional length constraints.

Value Type: String

Properties:

  • minLength (Long, optional): Minimum text length

  • maxLength (Long, optional): Maximum text length

  • minThresholdLength (Long, optional): Minimum text threshold length

  • maxThresholdLength (Long, optional): Maximum text threshold length

Example JSON:

JSON
{
  "name": "inputText",
  "value": "Sample text",
  "minLength": 5,
  "maxLength": 100,
  "minThresholdLength": 10,
  "maxThresholdLength": 95, 
}

2. Long (inputLong)

Description: A numeric input field for integer values.

Value Type: Long

Properties:

  • minValue (Long, optional): Minimum allowed value

  • maxValue (Long, optional): Maximum allowed value

  • minThresholdValue (Long, optional): Minimum allowed threshold value

  • maxThresholdValue (Long, optional): Maximum allowed threshold value

Example JSON:

JSON
{
  "name": "inputLong",
  "value": 42,
  "minValue": 0,
  "maxValue": 1000
  "minThresholdValue":5,
  "maxThresholdValue":995
}

3. Double (inputDouble)

Description: A numeric input field for decimal values.

Value Type: Double

Properties:

  • minValue (Double, optional): Minimum allowed value

  • maxValue (Double, optional): Maximum allowed value

  • maxIntegerDigits (Long, optional): Maximum number of integer digits

  • maxDecimalDigits (Long, optional): Maximum number of decimal digits

  • minThresholdValue (Long, optional): Minimum allowed threshold value

  • maxThresholdValue (Long, optional): Maximum allowed threshold value

Example JSON:

JSON
{
  "name": "inputDouble",
  "value": 123.45,
  "minValue": 0.0,
  "maxValue": 999.99,
  "maxIntegerDigits": 3,
  "maxDecimalDigits": 2,
  "minThresholdValue":5,
  "maxThresholdValue":995
}

4. Boolean (inputBoolean)

Description: A boolean input field (true/false).

Value Type: Boolean

Properties: None

Example JSON:

JSON
{
  "name": "inputBoolean",
  "value": true
}

5. Date (inputDate)

Description: A date input field.

Value Type: String (format: yyyy-MM-dd)

Properties:

  • minDate (String, optional): Minimum allowed date (format: yyyy-MM-dd)

  • maxDate (String, optional): Maximum allowed date (format: yyyy-MM-dd)

  • minDateOffset (Long, optional): Minimum days range allowed to the date value

  • maxDateOffset (Long, optional): Maximum days range allowed to the date value

Example JSON:

JSON
{
  "name": "inputDate",
  "value": "2025-10-22",
  "minDate": "2025-01-01",
  "maxDate": "2025-12-31",
  "minDateOffset": 1,
  "maxDateOffset": 1
}

6. Time (inputTime)

Description: A time input field.

Value Type: String (format: HH:mm)

Properties: None

Example JSON:

JSON
{
  "name": "inputTime",
  "value": "14:30"
}

7. Datetime (inputDatetime)

Description: A datetime input field with timezone support.

Value Type: Date (ISO 8601 format)

Properties:

  • minDate (ZonedDateTime, optional): Minimum allowed datetime

  • maxDate (ZonedDateTime, optional): Maximum allowed datetime

  • minDateOffset (Long, optional): Minimum days range allowed to the date value

  • maxDateOffset (Long, optional): Maximum days range allowed to the date value

  • minHourOffset (Long, optional): Minimum hours range allowed to the date value

  • maxHourOffset (Long, optional): Maximum hours range allowed to the date value

Example JSON:

JSON
{
  "name": "inputDatetime",
  "value": "2025-10-22T14:30:00Z",
  "minDate": "2025-01-01T00:00:00Z",
  "maxDate": "2025-12-31T23:59:59Z",
  "minDateOffset": 1,
  "maxDateOffset": 1,
  "minHourOffset": 1,
  "maxHourOffset": 1
}

8. Selection (inputSelection)

Description: A single-selection dropdown field.

Value Type: String (selected option code)

Properties:

  • options (Array): List of available options

    • code (String): Option identifier

    • description (LocalizedString): Option label in multiple languages

    • expressions (expressions): Object

      • { String visible, String readonly, String mandatory, String initialValue, String computedValue, Long evaluationOrder, String showOnSummary, String namingConvention}

Example JSON:

JSON
{
  "name": "inputSelection",
  "value": "option1",
  "options": [
    {
      "code": "option1",
      "description": {"en": "Option 1", "it": "Opzione 1"},
      "expressions": {
                      "visible": "5==2"
                      }
    },
    {
      "code": "option2",
      "description": {"en": "Option 2", "it": "Opzione 2"},
      "expressions": {
                      "visible": "5==2"
                      }
    }
  ]
}

9. Multi Selection (inputMultiSelection)

Description: A multi-selection dropdown field.

Value Type: Array of Strings (selected option codes)

Properties:

  • options (Array): List of available options (same structure as Selection)

Example JSON:

JSON
{
  "name": "inputMultiSelection",
  "value": ["option1", "option3"],
  "options": [
    {
      "code": "option1",
      "description": {"en": "Option 1", "it": "Opzione 1"},
      "expressions": {
                      "visible": "5==2"
                      }
    },
    {
      "code": "option2",
      "description": {"en": "Option 2", "it": "Opzione 2"},
      "expressions": {
                      "visible": "5==2"
                      }
    },
    {
      "code": "option3",
      "description": {"en": "Option 3", "it": "Opzione 3"}
    }
  ]
}

10. Radio (inputRadio)

Description: A radio button group for single selection.

Value Type: String (selected option code)

Properties:

  • options (Array): List of available options (same structure as Selection)

  • showAsTable (Boolean, default: false): Display options in table format

Example JSON:

JSON
{
  "name": "inputRadio",
  "value": "yes",
  "showAsTable": false,
  "options": [
    {
      "code": "yes",
      "description": {"en": "Yes", "it": "Sì"},
      "expressions": {
                      "visible": "5==2"
                      }
    },
    {
      "code": "no",
      "description": {"en": "No", "it": "No"}
    }
  ]
}

11. Checkbox (inputCheckbox)

Description: A checkbox group for multiple selections.

Value Type: Array of Strings (selected option codes)

Properties:

  • options (Array): List of available options (same structure as Selection)

  • showAsTable (Boolean, default: false): Display options in table format

Example JSON:

JSON
{
  "name": "inputCheckbox",
  "value": ["feature1", "feature3"],
  "showAsTable": false,
  "options": [
    {
      "code": "feature1",
      "description": {"en": "Feature 1", "it": "Funzionalità 1"},
      "expressions": {
                      "visible": "5==2"
                      }
    },
    {
      "code": "feature2",
      "description": {"en": "Feature 2", "it": "Funzionalità 2"},
      "expressions": {
                      "visible": "5==2"
                      }
    },
    {
      "code": "feature3",
      "description": {"en": "Feature 3", "it": "Funzionalità 3"}
    }
  ]
}

12. Regular Expression (inputRegEx)

Description: A text input field with regex pattern validation.

Value Type: String

Properties:

  • pattern (String): Regular expression pattern for validation

Example JSON:

JSON
{
  "name": "inputRegEx",
  "value": "ABC123",
  "pattern": "^[A-Z]{3}[0-9]{3}$"
}

13. Barcode (inputBarcode)

Description: A barcode scanner input field.

Value Type: String

Properties: None

Example JSON:

JSON
{
  "name": "inputBarcode",
  "value": "1234567890123"
}

14. Coordinates (inputCoordinates)

Description: A geographic coordinates input field.

Value Type: Object with latitude and longitude

Properties: None

Coordinates Object:

  • latitude (Double): Latitude value (-90 to 90)

  • longitude (Double): Longitude value (-180 to 180)

Example JSON:

JSON
{
  "name": "inputCoordinates",
  "value": {
    "latitude": 45.4642,
    "longitude": 9.1900
  }
}

15. Attachment (inputAttachment)

Description: A single file attachment field.

Value Type: String (attachment ID or reference)

Properties:

  • maxSizeKb (Long, optional): Maximum file size in kilobytes

  • validExtensions (Array of Strings, optional): Allowed file extensions

  • category (Category Object)

    • code (String): Option identifier

    • description (LocalizedString): Option label in multiple languages

Valid Extensions: jpg, jpeg, bmp, gif, png, mpg, mp2, mpeg, mpe, mpv, m2v, avi, mov, qt, flv, txt, doc, docx, pdf, rtf, xls, xlsx

Example JSON:

JSON
{
  "name": "inputAttachment",
  "value": "attachment-id-12345",
  "maxSizeKb": 5120,
  "validExtensions": ["pdf", "doc", "docx"],
              "category": {
                "code": "001",
                "description": [
                    {
                        "lang": "de",
                        "value": "en:Silver"
                    },
                    {
                        "lang": "es",
                        "value": "en:Silver"
                    },
                    {
                        "lang": "en",
                        "value": "Silver"
                    },
                    {
                        "lang": "pt",
                        "value": "en:Silver"
                    },
                    {
                        "lang": "it",
                        "value": "en:Silver"
                    }
                ]
            }
}

16. Multi Attachment (inputMultiAttachment)

Description: A multiple file attachment field.

Value Type: Array of Strings (attachment IDs or references)

Properties:

  • maxAttachmentsNumber (Long, optional): Maximum number of attachments allowed

  • maxSizeKb (Long, optional): Maximum file size in kilobytes per attachment

  • validExtensions (Array of Strings, optional): Allowed file extensions

  • category (Category Object)

    • code (String): Option identifier

    • description (LocalizedString): Option label in multiple languages

Example JSON:

JSON
{
  "name": "inputMultiAttachment",
  "value": ["attachment-id-1", "attachment-id-2"],
  "maxAttachmentsNumber": 5,
  "maxSizeKb": 2048,
  "validExtensions": ["jpg", "png", "pdf"],
              "category": {
                "code": "001",
                "description": [
                    {
                        "lang": "de",
                        "value": "en:Silver"
                    },
                    {
                        "lang": "es",
                        "value": "en:Silver"
                    },
                    {
                        "lang": "en",
                        "value": "Silver"
                    },
                    {
                        "lang": "pt",
                        "value": "en:Silver"
                    },
                    {
                        "lang": "it",
                        "value": "en:Silver"
                    }
                ]
            }
}

17. Picture (inputPicture)

Description: An image/picture upload field.

Value Type: String (picture ID or reference)

Properties:

  • maxSizeKb (Long, optional): Maximum file size in kilobytes

  • validExtensions (Array of Strings, optional): Allowed file extensions

Valid Extensions: jpg, jpeg, bmp, gif, png

Example JSON:

JSON
{
  "name": "inputPicture",
  "value": "picture-id-67890",
  "maxSizeKb": 3072,
  "validExtensions": ["jpg", "jpeg", "png"]
}

18. Signature (inputSignature)

Description: A digital signature capture field.

Value Type: String (signature image ID or reference)

Properties:

  • maxSizeKb (Long, optional): Maximum file size in kilobytes

  • validExtensions (Array of Strings, optional): Allowed file extensions

Valid Extensions: jpg, jpeg

Example JSON:

JSON
{
  "name": "inputSignature",
  "value": "signature-id-11111",
  "maxSizeKb": 1024,
  "validExtensions": ["jpg", "jpeg"]
}

19. Download Attachment (inputDownloadAttachment)

Description: A read-only attachment that can be downloaded.

Value Type: String (attachment ID or reference)

Properties:

  • fileName (String): Name of the file

  • contentType (String): MIME type of the file

  • showPreview (Boolean, default: false): Whether to show a preview

Example JSON:

JSON
{
  "name": "inputDownloadAttachment",
  "value": "download-attachment-id-22222",
  "fileName": "manual.pdf",
  "contentType": "application/pdf",
  "showPreview": true
}

20. Matrix (inputMatrix)

Description: A matrix/table input field that allows users to create and manage tabular data with customizable columns and rows.

Value Type: Object (BODataCollectionNodeMatrix)

Properties:

  • numColumns (Long, optional, default: 4): Number of columns in the matrix

  • columnHeaders (Array): List of column header definitions

    • column (Long): Column identifier (0-based index)

    • description (String): Column header label

    • group (Boolean, default: false): Whether this column is a grouping column

  • rows (Array): List of matrix rows

    • row (Long): Row identifier

    • columns (Array): List of column values for this row

      • column (Long): Column identifier (0-based index)

      • description (String): Cell value

  • selectedRow (Long, optional): ID of the currently selected row

Example JSON:

JSON
{
  "name": "inputMatrix",
  "value": {
    "numColumns": 3,
    "columnHeaders": [
      {
        "column": 0,
        "description": "Item",
        "group": false
      },
      {
        "column": 1,
        "description": "Quantity",
        "group": false
      },
      {
        "column": 2,
        "description": "Notes",
        "group": false
      }
    ],
    "rows": [
      {
        "row": 1,
        "columns": [
          {
            "column": 0,
            "description": "Product A"
          },
          {
            "column": 1,
            "description": "10"
          },
          {
            "column": 2,
            "description": "In stock"
          }
        ]
      },
      {
        "row": 2,
        "columns": [
          {
            "column": 0,
            "description": "Product B"
          },
          {
            "column": 1,
            "description": "5"
          },
          {
            "column": 2,
            "description": "Low stock"
          }
        ]
      }
    ],
    "selectedRow": 1
  }
}

Notes:

  • The matrix supports dynamic row creation and deletion

  • Column headers can be configured to support grouping functionality

  • All cell values are stored as strings in the description field

  • The default number of columns is 4 if not specified

  • Row and column identifiers are Long values (typically 0-based for columns)

  • The selectedRow property indicates which row is currently selected in the UI

21. Section (section)

Description: A container/section node for organizing other nodes.

Value Type: null (sections don't have values)

Properties: None

Example JSON:

JSON
{
  "name": "section",
  "value": null
}

Node Type Summary Table

Type Name

Description

Value Type

Additional Properties

inputText

Text input

String

minLength, maxLength

inputLong

Integer number input

Long

minValue, maxValue

inputDouble

Decimal number input

Double

minValue, maxValue, maxIntegerDigits, maxDecimalDigits

inputBoolean

Boolean input

Boolean

-

inputDate

Date input

String (yyyy-MM-dd)

minDate, maxDate

inputTime

Time input

String (HH:mm)

-

inputDatetime

Datetime input

Date (ISO 8601)

minDate, maxDate

inputSelection

Single selection dropdown

String

options[]

inputMultiSelection

Multi selection dropdown

Array<String>

options[]

inputRadio

Radio button group

String

options[], showAsTable

inputCheckbox

Checkbox group

Array<String>

options[], showAsTable

inputRegEx

Text with regex validation

String

pattern

inputBarcode

Barcode scanner

String

-

inputCoordinates

Geographic coordinates

Object {latitude, longitude}

-

inputAttachment

Single file attachment

String

maxSizeKb, validExtensions[]

inputMultiAttachment

Multiple file attachments

Array<String>

maxAttachmentsNumber, maxSizeKb, validExtensions[]

inputPicture

Picture/image upload

String

maxSizeKb, validExtensions[]

inputSignature

Digital signature

String

maxSizeKb, validExtensions[]

inputDownloadAttachment

Downloadable attachment

String

fileName, contentType, showPreview

section

Container/section

null

-

These node types are used in the following Dynamic Forms APIs:

Dynamic Forms Templates

  • GET /documents/dynamic-forms/r1/templates/{templateId}/releases/{releaseId}/models - Returns the tree model for a specific template release

  • GET /documents/dynamic-forms/r1/templates/{templateId}/releases/current/models - Returns the tree model for the current template release

  • GET documents/dynamic-forms/r1/templates/{templateId}/working-copies/models - Returns the tree model for the template working copy

  • PATCH /documents/dynamic-forms/r1/templates/{templateId}/working-copies/models - Updates the tree model for the template working copy

Dynamic Forms Sheets

  • GET /documents/dynamic-forms/r1/sheets/{sheetId}/models - Returns the tree model with all nodes and their types for a sheet

  • PATCH /documents/dynamic-forms/r1/sheets/{sheetId}/nodes - Updates node values (fill-in) for a sheet