You can group multiple input fields using the "container" input type. This allows for some visual clarity in the configuration panel by separating the different aspects that can be configured.

For example, one group could contain UI configuration options (e.g., title, buttons, images) while another contains the configuration of the actual functionality of your component.

At the same time, the grouping functionality allows users to duplicate a group of elements, thus creating the option to configure a dynamic amount of configurable elements.

Some of the specific attributes are:

  • <containerGroup>: Allows you to differentiate between different types of groups. This can then be used when iterating over containers in the workflow markup.
  • <repeatable>: Allows you to create copies of a group which can then be changed separately. This way, you can implement repeatable elements.
  • <collapsible>: Defines if it should be possible to remove the container from the config. This is set automatically for copied containers (see repeatable) and should not be used for base containers.
  • <editable>: Defines if it should be possible to change the title of the container.
"base_sensor": {
            "title": "Sensor 1",
            "inputType": "container",
            "containerGroup": "sensors",
            "repeatable": true,
            "collapsible": true,
            "deleteable": false,
            "editable": true,
            "value": {
                "sensor_shown": {
                    "title": "Value Shown",
                    "inputType": "checkbox-input",
                    "value": false,
                    "showIfComputed": true
                "sensor_type": {
                    "inputType": "file-upload",
                    "title": "Icon",
                    "accept": "image/png",
                    "multiple": false,
                    "value": "",
                    "showIfComputed": true
                "sensor_unit": {
                    "title": "Unit",
                    "inputType": "textinput",
                    "value": "rpm",
                    "showIfComputed": true
                "sensor_json_path": {
                    "title": "JSON Path ",
                    "inputType": "textinput",
                    "value": "rpm",
                    "showIfComputed": true
            "showIfComputed": true,
            "container_editing": false,
            "container_opened": true