Dynamic inputs
Summarize
Summary of Dynamic inputs
Dynamic inputs in ServiceNow Flow Designer enable action authors to generate and display lists of inputs or values dynamically when configuring an action in a flow. This includes lists such as related action inputs, record fields, or choice list options. Dynamic inputs enhance flexibility by adapting to changes like added or removed fields without modifying the action itself.
Show less
Note that dynamic inputs require the ServiceNow Flow Designer - Introspection plugin and are not available in the base system. They are primarily used within Workflow Studio and must be enabled via an Integration Hub plugin request.
Types of Dynamic Inputs
- Dynamic Choice: Generates a list of choice values for users to select from dynamically.
- Dynamic Inputs: Adds arbitrary additional action inputs dynamically to an action.
- Dynamic Template: Retrieves fields from a dynamically selected record type, allowing flow authors to select fields without changing the action when the source table’s schema changes.
How Dynamic Inputs Work
- Action authors create data gathering actions that collect dynamic data, usually via REST calls to third-party systems.
- They then create an action incorporating a dynamic input that calls the data gathering action.
- Flow authors add the action to flows and configure it with the dynamically retrieved data.
Data Gathering Actions
These actions are designed to provide JSON-formatted output used by dynamic inputs. Key requirements include:
- Output must include a JSON variable named
datawith the dynamic values. - Maximum of 5000 items can be returned for dynamic choice or dynamic template inputs to prevent performance issues.
- Timeout defaults to 300 seconds (5 minutes), configurable via the
snflowdesigner.syncactionexecutiontimeoutinsecondssystem property.
Supported Input Data Types
Dynamic inputs support a variety of ServiceNow AI Platform field data types, including choice, datetime, decimal, email, HTML, integer, password2, reference, and string types. Action authors can customize labels, names, and other properties within the JSON output to fit their use case.
Best Practices and Considerations
- Use dynamic inputs primarily for third-party integrations to fetch relevant data dynamically from external sources.
- Limit dynamic inputs type inputs to 40 input values to avoid memory and rendering issues.
- Restrict JSON output to 5000 array items when using dynamic choice or dynamic template inputs to maintain performance.
- Avoid long timeouts for interactive flows where users need quick input, adjusting timeout settings thoughtfully.
- Be cautious of scripting errors in data gathering actions, as these can prevent inputs from populating correctly and generate warnings.
Getting Started
To implement dynamic inputs, ServiceNow customers should:
- Create data gathering actions specific to their dynamic input type (choice, template, or inputs).
- Configure actions to call these data gathering actions for dynamic value retrieval.
- Add and configure these actions within flows to provide dynamic, context-sensitive inputs to users.
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.
- 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.
- 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.
- 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.
- An action author creates a data gathering action to generate dynamic data.
- An action author creates an action with a dynamic input and configures the dynamic input to call the data gathering action.
- A flow author adds the action to a flow and configures the action with dynamically gathered data.
Data gathering actions
- The action has a script step 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 .
| Input data type | Example JSON |
|---|---|
| Choice |
|
| Datetime |
|
| Decimal |
|
|
|
| HTML |
|
| Integer |
|
| Password 2 |
|
| Reference |
|
| String |
|
General guidelines
- Consider dynamic inputs for third-party integrations
- Dynamic inputs let you create flows that fetch data dynamically from external sources. In third-party integrations, dynamic inputs can provide data values that pertain to a particular endpoint. For more information on setting up third-party integrations with Workflow Studio, see IntegrationHub.
- Be aware of the time required to retrieve large amounts of data
- By default, dynamic inputs have up to 300 seconds to gather data before they time out. If your data gathering action needs more time to gather data, set the sn_flow_designer.sync_action_execution_timeout_in_seconds system property to a higher value. However, don't use long timeout values for interactive flows where an end user must enter or select a value.
- Be aware of scripting errors
- Because all data gathering actions use a script step, potential errors could occur from scripting. When using scripts to output JSON variables for your dynamic inputs, you may encounter errors that prevent inputs from
receiving the JSON values they need. When a dynamic input scripting error occurs, the following warning message may appear.
Figure 1. Message displayed for scripting error - Limit dynamic inputs type inputs to 40 input values
- A dynamic inputs type input can only render a certain number of inputs before the JSON object becomes to too big to store in memory. Limiting your dynamic inputs to 40 input values minimizes the chances that you will run out of memory and experience unexpected behaviors such as rendering errors or data truncation.
- Limit JSON output to 5000 array items for dynamic templates and dynamic choices
- Dynamic choice and dynamic template inputs can only display up to 5000 array items. A dynamic choice can only display up to 5000 choice list options, and a dynamic template can only display up to 5000 field template values. If your data gathering action collects data for a dynamic template or a dynamic choice, restrict the maximum number of array items it returns to 5000. The 5000 array items limit prevents the instance from having performance issues when rendering the choices or field values.