> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.itential.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.itential.com/_mcp/server.

# Use a JSON schema to create forms

> How to use the renderJSONSchema task to create forms from a JSON schema in legacy Itential Platform versions.

2023.2

2023.1

2022.1

With JSON Forms it is possible to quickly create forms in a workflow using just a JSON schema. The `renderJSONSchema` task is available in JSON Forms via Studio in earlier versions of Itential Platform. It is a manual task that accepts a schema as input, creates a form from the schema, renders it, and then discards the form instance.

## Use the renderJSONSchema task

#### Create a new automation

Navigate to **Studio** and create a new automation.

#### Select the JsonForms task source

Under the list of tasks in the right pane, select **JsonForms**.

#### Add RenderJsonSchema to the canvas

Add **RenderJsonSchema** to the canvas. This task alone is enough to render a form.

#### Open the task editor

Double-click the task to open the task editor.

![](/_fern-img/b5c59ecd9e6467ae5011998d85b5daf90d569038ea2ddcf37df733befb0b631e.webp)

### Task inputs

The task accepts five inputs that define how form elements are structured, rendered, and behave.

| Input parameter    | Description                                                                                                                                                                                                                                                      |
| :----------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `jsonSchema`       | The JSON schema that defines the structure of the entire form.                                                                                                                                                                                                   |
| `uiSchema`         | Defines the widgets to use for the form elements.                                                                                                                                                                                                                |
| `bindingSchema`    | Defines external data binding with a form element — typically for a dropdown populated with options. Also used to define dynamic validation. See the [Itential binding schema guide](https://itentialopensource.gitlab.io/binding-schema/) for more information. |
| `validationSchema` | Defines dynamic validations for a field in the form.                                                                                                                                                                                                             |
| `formData`         | Uses instance data to populate the form. The instance data is a JSON object with key-value format, where the key is the field name and the value is the field's rendered value. Values inside a form rendered with instance data can be edited.                  |

### Sample input schemas

Use the sample schemas below as input to render a form using the `renderJSONSchema` task. Once task inputs are complete, save the automation and start the job.

#### jsonSchema

```json
{
    "title": "inputFields",
    "description": "",
    "type": "object",
    "required": [],
    "properties": {
        "text1": {
            "type": "string",
            "title": "Text 1",
            "description": ""
        },
        "textArea1": {
            "type": "string",
            "title": "Text Area 1",
            "description": ""
        },
        "number1": {
            "type": "number",
            "title": "Number 1",
            "description": ""
        },
        "checkbox1": {
            "type": "boolean",
            "title": "Checkbox 1",
            "description": "",
            "default": false,
            "enum": [
                true,
                false
            ]
        },
        "dropdown1": {
            "type": "string",
            "title": "Dropdown 1",
            "description": "",
            "enum": ["item 1", "item 2"]
        }
    }
}
```

#### uiSchema

```json
{
    "text1": {
        "ui:placeholder": "Enter text only"
    },
    "textArea1": {
        "ui:placeholder": "Enter text",
        "ui:widget": "textarea"
    },
    "number1": {
        "ui:placeholder": "Enter a number",
        "ui:widget": "updown"
    },
    "dropdown1": {
        "ui:placeholder": "Select an item"
    }
}
```

## Render the JSON schema form

After the job runs, work the task from Jobs in Operations Manager, where you can also view task details and incoming variables.

#### Open the rendered form

Click the work task. The rendered form displays with the `inputFields` reflecting the fields defined in the JSON schema.

![](/_fern-img/eb924091cb06080d5f57aefd6cd006eb4c655005f2c4d06ae460c4aee9d8057e.webp)

#### Complete the form

Complete the `inputFields` in the form and click **Confirm** to complete the task.

![](/_fern-img/6ebfa9bfd57b71fb827c7437087d6e7495f4284cde95ac8e111b9d363705fde2.webp)

#### Review the outgoing data

Once the task is complete, the **Outgoing** tab in **Task History** shows that the form data has been exported.

![](/_fern-img/f1522f47107e385ffaed82dc0c3579824c0bdfb8d7d522c727b02d4c5f8cc641.webp)

This task does not create a form instance in the `json-form` application. The form will not appear when you open the JSON Forms app.