--- title: Dynamic inputs description: Generate a list of action inputs or input values each time that someone configures the action in a flow. Dynamic inputs can display a list of related action inputs, a list of fields from a record, or a list of options available in a choice list. locale: en-US canonical_url: https://www.servicenow.com/docs/r/australia/build-workflows/workflow-studio/dynamic-inputs.html release: australia product: Workflow Studio classification: workflow-studio topic_type: concept last_updated: "2026-03-12" reading_time_minutes: 6 breadcrumb: [Create an action in Workflow Studio, Build actions, Flows, subflows, and actions, Workflow Studio, Build workflows] --- # Dynamic inputs Generate a list of action inputs or input values each time that someone configures the action in a flow. Dynamic inputs can display a list of related action inputs, a list of fields from a record, or a list of options available in a choice list. **Note:** Dynamic inputs are not available in the base system. To use dynamic inputs in Workflow Studio, you must [Request an Integration Hub plugin](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/integrate-applications/request-integrationhub.md). Dynamic inputs are part of the ServiceNow Flow Designer - Introspection \[com.glide.hub.flow\_designer\_introspection\] plugin. During flow design, dynamic inputs retrieve values and display them as inputs within an action dynamically. These types of dynamic inputs are available to action authors. - **Dynamic Choice** The Dynamic Choice type input gathers a list of choice values to display. For more information on building a dynamic choice, see [Create a data gathering action for a dynamic choice](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/build-workflows/workflow-studio/create-data-gathering-action-dynamic-choice.md). - **Dynamic Inputs** The Dynamic Inputs type input gathers a list of additional action inputs to display. Use Dynamic Inputs to add arbitrary inputs to an action. For more information on building dynamic inputs, see [Create a data gathering action for a dynamic inputs type input](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/build-workflows/workflow-studio/create-data-gathering-action-dynamic-inputs.md). - **Dynamic Template** The Dynamic Template type input gathers a list of fields from a dynamically selected record type. Flow authors can then select which fields to include in their flow. Because the list of fields is dynamically generated, you don't have to change the action when fields are added or removed from the source table. For more information on building a dynamic template, see [Create a data gathering action for a dynamic template](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/build-workflows/workflow-studio/create-data-gathering-action-dynamic-template.md). There are three general steps to using dynamic inputs. 1. An action author creates a data gathering action to generate dynamic data. 2. An action author creates an action with a dynamic input and configures the dynamic input to call the data gathering action. 3. A flow author adds the action to a flow and configures the action with dynamically gathered data. ## Data gathering actions A data gathering action collects data to be used by other actions. Data gathering actions are intended to be called from dynamic inputs rather than be added directly to a flow. Data gathering actions typically collect data from third-party systems using a REST call. All data gathering actions must meet these requirements and constraints. - The action has a [script step](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/build-workflows/workflow-studio/javascript-step-action-designer.md) that contains an output variable of type JSON. - The action has an output named **output** of type JSON whose value is derived from the script step's JSON output variable. **Note:** The action can have multiple outputs but can only have one of type JSON. - The script step formats the JSON output to have a property named `data`. - The JSON output should not return more than 5000 choice options, field template values, or array element items when the data is intended for a dynamic choice or a dynamic template input. **Note:** Dynamic choice and dynamic template inputs can only display up to 5000 choice options or 5000 template values from the JSON output. - The action waits for up to 300 seconds \(5 minutes\) to gather data before it times out. **Note:** To change the timeout period for all actions, modify the value of the **sn\_flow\_designer.sync\_action\_execution\_timeout\_in\_seconds** system property. ## Supported dynamic input data types Dynamic inputs support a limited number of ServiceNow AI Platform data types. You can use the example JSON to build your own dynamic inputs. You can change the values of the label and name properties to met your needs. The type property must specify a ServiceNow AI Platform data type name. For more information about ServiceNow AI Platform field data types and how to configure them, see [Field types reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/platform-administration/r_FieldTypes.md).
| Input data type | Example JSON |
|---|---|
| [Choice](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/platform-administration/c_ChoiceLists.md) | ``` { data: [{ label: 'Choice type input', name: 'choicetype', defaultValue: 'choice_1', type: 'choice', choices: [ { label: 'Choice 1', value: 'choice_1' }, { label: 'Choice 2', value: 'choice_2' } ] }] } ``` |
| Datetime | ``` { data: [{ label: 'Datetime type input', name: 'datetimetype', type: 'datetime', }] } ``` |
| Decimal | ``` { data: [{ label: 'Decimal type input', name: 'decimaltype', type: 'decimal', }] } ``` |
| ``` { data: [{ label: 'Email type input', name: 'emailtype', type: 'email', }] } ``` | |
| [HTML](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/platform-administration/c_UseHTMLFields.md) | ``` { data: [{ label: 'HTML type input', name: 'htmltype', type: 'html', }] } ``` |
| Integer | ``` { data: [{ label: 'Integer type input', name: 'integertype', type: 'integer', }] } ``` |
| Password 2 | ``` { data: [{ label: 'Password2 type input', name: 'password2type', type: 'password2', }] } ``` |
| [Reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/platform-administration/c_ReferenceField.md) | ``` { data: [{ label: 'Reference type input', name: 'referencetype', reference: 'sys_user', type: 'reference', }] } ``` |
| String | ``` { data: [{ label: 'String type input', name: 'stringtype', defaultValue: 'abcdef', type: 'string', mandatory: true }] } ``` |