Dynamic outputs
Summarize
Summary of Dynamic outputs
Dynamic outputs in ServiceNow enable flow designers to access action and subflow outputs as dynamically generated data pills during flow design. This feature allows for the creation of data gathering actions that generate complex objects from ServiceNow AI Platform and Integration Hub outputs. Dynamic outputs provide a way to introspect and fetch data from external systems dynamically, enhancing integration capabilities within Workflow Studio.
Show less
Important: Dynamic outputs require the Integration Hub plugin (Flow Designer - Introspection [com.glide.hub.flowdesignerintrospection]) and are not available in the base system.
How Dynamic Outputs Work
- An action designer creates a data gathering action that collects data (often from third-party systems via REST calls) and outputs a JSON object.
- The data gathering action includes a script step that outputs a JSON variable with a property named
data. - A parent action is created with a dynamic output that references the child data gathering action.
- A flow designer then adds the parent action to a flow, enabling the dynamic output as data pills in the design interface.
Data Gathering Actions
These actions are specialized to collect data and are intended to be invoked via dynamic inputs rather than directly added to flows. Key constraints include:
- Must have a JSON output named
outputderived from the script step. - Only one JSON type output is allowed per action.
- The JSON output should not exceed 5,000 choice options or template values for use in dynamic choices or templates.
- Actions have a default timeout of 300 seconds (5 minutes) to gather data, adjustable via the
snflowdesigner.syncactionexecutiontimeoutinsecondssystem property.
Dynamic Objects
Dynamic objects refer to complex objects or arrays of complex objects built dynamically through data gathering actions rather than hard-coded structures. This flexibility allows action designers to represent and output complex data structures tailored to integration needs.
Best Practices and Guidelines
- Use dynamic outputs primarily for third-party integrations to introspect and fetch data dynamically during flow design.
- Be mindful of the time needed to retrieve large datasets; adjust the timeout system property if necessary, but avoid long timeouts in interactive flows where user input is expected promptly.
- Review scripting carefully since errors in the JSON output script step can prevent proper data pill generation. Scripting errors will trigger warning messages in Workflow Studio.
Getting Started
To implement dynamic outputs:
- Create a data gathering action that builds a dynamic object.
- Create a parent action that references this data gathering action with a dynamic output.
- Add the parent action to your flow to use the dynamic output data pills.
Configuration options are available within the parent action to customize dynamic output behavior.
Access action and subflow outputs as dynamically generated data pills during flow design. You can also build data gathering actions to generate complex objects from ServiceNow AI Platform and Integration Hub outputs.
During the flow design, a dynamic output retrieves the complex object's schema values and displays them as data pills in the data panel.
- An action designer creates a data gathering action.
- An action designer creates a parent action with a dynamic output that points to the child data gathering action.
- A flow designer adds the parent action to a flow.
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.
Dynamic object
A dynamic object is either a complex object or an array of complex objects. Action designers build the object structure dynamically with a data gathering action rather than hard-coding it. For more information on building a dynamic object, see Create a data gathering action for a dynamic object.
General guidelines
- Use dynamic outputs for third-party integrations
- Use dynamic outputs to introspect and fetch data from external systems during the flow design. For example, you can specify service endpoints or call actions that interact with specific endpoint APIs. For more information on setting up third-party integrations with Workflow Studio, see IntegrationHub.
- Note the time that is required to retrieve large amounts of data
- By default, dynamic outputs have up to 300 seconds to gather data before the system stops them. 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 greater value. Avoid long timeout values for interactive flows where an end user is expecting to 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. Review any scripts that are used to output JSON variables because script errors may prevent the outputs from receiving the
JSON values that they need. When a dynamic output scripting error occurs, the following warning message may appear.
Figure 1. Message that is displayed for scripting error