- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
10-24-2022 02:41 AM - edited 07-23-2025 12:49 AM
Workflow Automation CoE > Flows > FAQ
Frequently Asked Questions
What happened to Flow Designer?
With the introduction of Workflow Studio in the Washington DC Release, all workflow automation types can be developed in a unified builder experience. Going forward, we will refer to building flows, subflows, and flow actions in Workflow Studio.
Why should I migrate from Workflow Editor?
While our legacy technology Workflow Editor (and Orchestration) is not being removed or retired in the foreseeable future (see the Deprecation process in KB0867184), it is considered a legacy product as of the New York release. We have not been developing any new features or enhancements for it. Learn more on the Migration FAQ.
How do I migrate from legacy workflows to flows and playbooks?
We recommend to incrementally replace parts of your old workflows with new (sub)flows. You can trigger flows from a "Run Script" workflow activity in Workflow Editor with the available Flow API (Code Snippet) and in return call workflows from flows.
Check out this comprehensive Migration Guide and Migration FAQ to learn more about migrating legacy workflows.
What else can I replace with flows and playbooks?
June 9th, 2022 - Flow Designer Migration Use Cases
Flows can be used to replace:
- Async/after business rules with Record create/change triggered flows
- Scheduled Jobs with Date triggered flows
- Inbound email actions
- SLA workflows
- Service Catalog Fulfillment workflows
- Outbound notifications (We recommend to use this over the Send Email action so you can make use of Notification templates etc.)
- Outbound integrations via IntegrationHub
- Data Stream actions (IntegrationHub) data source for Import Sets
- Inbound integrations via Rest API Trigger
- Connect to other ServiceNow instances or Remote Process Sync
- Handle complex data with JSON + XML Parser
- Replace complex decision scripting with Decision Builder
- Action Plan for Event Management automated triage and automated remediation using alert management rules
- Action Plan for Metric Base triggered events
What kinds of flows are there and when should I use which?
This overview of basic definitions and small decision matrix will help you determine which types of flows to create. When in doubt: start with a subflow, then think about triggers or schedules later!
The introduction of Saved Triggers in Yokohama gives this subflow-first approach a whole new justification. Create reusable triggers to launch a multitude of different automation use cases while saving development time for everyone involved.
What are some best practices when starting to use flows and subflows?
Check out our academy recording and CoE articles on Flow best practices:
February 17, 2022 - Flow Designer Good Practices
How can I check in/check out Flows?
Most of our customers tell us that they rarely work with multiple developers on the same Flow/Flow action at the same time in each sub-prod instance. Leveraging the platform approach, it’s a good option to use a Git repo to commit and restore versions.
Why can’t I rollback in flows?
Rollback in WF caused more issues than it solved, how much should be rolled back, what about data that changed on other records due to business rules or flows triggering from the initial update, notifications that were sent out, etc. These considerations led our engineers to decide to not offer a rollback function in Flow Designer.
Rollback in WF editor was rather limited in itself as well. All it does is this:
-
reset all approvals to "Not yet requested"
-
all tasks to "Open" or "Pending"
In a flow, you can now use the Go back logic to achieve a similar outcome. If you use the go back logic to loop to an earlier approval that was rejected, a new approval request will be created, and the following steps will be re-run.
Be careful to provide a valid way to exit a loop. You can also decide to either close or reset existing tasks before going back. Go back to is best used from an if/then/else branch or the error part of the "Try" logic. This allows you to perform a couple of actions before looping back to an earlier step and add a specific condition under which you loop back or don't. We also provided a means to exit a loop under certain conditions without having to resort to ending the whole flow.
Check out this Workflow Academy on Loops in Workflows, including the Go back to and Do the following until flow logics, as well as Restart Playbooks.
https://sn.works/workflowacademy/2412
Why can’t I loop back to a previous step in Flow Designer?
In the Washington DC release, we added a new 'Go back to' flow logic that can be used to loop back to an earlier step. It is available for net new flows in the Washington DC release and has been rolled out to all flows with the Xanadu release in fall 2024.
Check out this Workflow Academy on Loops in Workflows, including the Go back to and Do the following until flow logics, as well as Restart Playbooks.
https://sn.works/workflowacademy/2412
If you are on an earlier release, you can use this workaround:
Instead of looping back to an earlier step, think about containing your specific set of steps in a subflow with an expected record or status as a subflow output and then either wrapping the subflow in a “Do the following until” flow logic or try using a “Wait for Condition” flow action after calling the subflow.
What are Flow Templates?
Flow Template Builder allows you to save a given flow as a template to be used and re-used by other developers later. This functionality is especially useful in the context of Custom App Templates in App Engine Studio (AES), but can be used independently of AES as well.
How does the Flow Engine work on an architecture level?
Check out this Architecture Overview on Docs to give you a deeper insight. To understand where and when flows run exactly, check out the Execution order of scripts and engines.
How do I debug Flows?
Workflow Studio provides you with a wide range of debugging options and reporting settings. The Flow Execution details and logging allow you to see precisely what happens in each step of the flow, subflow or flow action. Flow error handling, Action error evaluation and the Try flow logic complete the set of debugging tools. Check out our Platform Academy session on Flow Designer performance and debugging tips and this Workflow Academy and article series on Flow Error handling.
Introduced in the Yokohama release, Flow Debugger offers a dedicated interface to set breakpoints and step through a paused flow to review configuration and runtime values.
How do I restrict access to actions and logic for my Citizen Developers?
Feature access restricts access to individual features by user role. Decide which roles can look at executions, generate a code snippet, test, save, or publish flows, subflows, or flow actions.
Content filtering lets you set up filter rules to make sure all developers only see the content that is relevant to a given user. This allows you to make sure that (for example) a developer for HR applications can only access IntegrationHub Spokes that are relevant for their apps, e.g., the Workday spoke, but not the Jenkins spoke.
Check out this 3-part article on the Now Community and this Academy session to understand how you can use these features to restrict access.
How can I prioritize flows or determine an execution order?
We have 2 options in place to determine in which order flows will run:
- Flow Priority: New in the Utah release, you can give flows a higher or lower priority. By default, new flows will have the medium priority. Currently, the priority field is not yet available in Flow Designer itself, but you can add it to the list view of flows per these instructions
Flow Priority is not a fixed execution order, but lower priority flow executions may be paused between actions to give way to a higher priority flow. - Inbound Email Flows Advanced Options: You can add a system property to give you advanced options on an inbound email flow trigger. This enables you to give the flow an order and whether to 'stop processing' or to allow other inbound email flows or inbound email actions to run once this flow is complete.
Note: Inbound email flows take priority over inbound email actions. If you create flows with inbound email triggers, emails are first processed by the inbound email triggers before they are processed by inbound email actions.
The order you assign an inbound email flow will only apply in reference to other inbound email flows, not flows with other types of trigger.
When do I use inline scripting in flows?
Inline scripting should be your very last resort. One of the bigger issues that you could run into is when you need to re-order the steps in your flow. The inline script will not auto-adjust the step number reference, thus rendering the script broken.
These are the features that we'd recommend to use instead:
Transform functions: For simple refactoring of your data pill, like sanitizing SQL, reformatting text, performing mathematical functions, etc., apply one or multiple transform functions to a data pill.
Flow Variables: If you absolutely will not need this piece of script again, you can create and set a flow variable at the start of your flow, then use and reuse the variable data pill throughout your flow.
Custom Action: The most robust and reusable option is to create a custom action with a script step. This way you can define the inputs and outputs of your action and won't run into any issues when reordering steps in your flow.
When I use the "Wait for duration" flow logic, where can I look up the date/time when the flow will wake up again?
If the calculated duration is less than a minute, a 'sysevent' record is used. The flow context id is saved to the sysevent.instance field, the target time in the sysevent.process_on field.
If the duration is longer than a minute, a scripted scheduled job is created in the 'sys_trigger' table to wake up the flow with a 'sysevent' to be processed at the desired time.
The name to filter for on both tables is flow.fire.
Scheduled job
How can I access Record Producer catalog variables from a flow?
You can use the Get Catalog Variables action with any table, not just Requested Items (sc_req_item) and it will return any variables if the record was created from a record producer.
Center of Excellence Navigation
- 3,512 Views