---
sourceDocument: Xanadu Build or modify applications
sourceDocumentLink: https://www.servicenow.com/docs/r/xanadu/application-development

 Release :

    - xanadu

ft:locale :

    - en-US

ft:publication_title :

    - Xanadu Build or modify applications

ft:clusterId :

    - cadev

bundleId :

    - cadev

workflow :

    - Development, Data, and Analytics


---

# Flow Designer

# Flow Designer {#ariaid-title1}

* Release version: Xanadu
* 
* Updated August 1, 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 2 minutes to read

Flow Designer is a ServiceNow AI Platform feature that enables rich process automation capabilities in a consolidated design environment. Flow Designer enables process owners to use natural language to automate approvals, tasks,
notifications, and record operations without having to code.

## Flow Designer and IntegrationHub {#flow-designer__section_vff_sz2_5xb}

For any new process flow requirements, ServiceNow recommends using Flow Designer over the legacy workflow for almost all circumstances.

## Flow Designer and Business Rules {#flow-designer__section_xzx_tz2_5xb}

You should use Flow Designer instead of Business Rules unless:

* Business logic needs to run in a specific sequence with other Business Rules. For example, new business logic needs to run after one Business Rule but before another.
* Logic needs to execute immediately before or after writing to the database in the same thread.
* The logic only calls a Script Include.

{#flow-designer__ul_k2j_vz2_5xb}

When designing a flow, follow these design principles:

* Single Purpose: Each flow should have a singular goal.
* Reusability: Design with reusable sub-flows in mind (approval is a great example).
* Clarity: The language and layout of a flow should make each action's purpose clear.

{#flow-designer__ul_l2j_vz2_5xb}

Start with a white board design of a business flow. Then build the flow action by action to align with the process. More than one flow may be required for a for a single process to keep to the design principles.

Use the following practices when working with Flow Designer:

* Use records, not SysIDs. Provide a guided experience with inline documentation.
* Learn how to use template objects to work with both static and dynamic inputs.
* Avoid passing around blobs of data unless absolutely necessary.
* Only pass information to a flow that the flow is going to use.

{#flow-designer__ul_m2j_vz2_5xb}

Use the following practices when working with Flow Designer Actions:

* Always create actions under the scope of the application's spoke, if applicable.
* Set access to Accessible from all scopes in actions to be able to reuse actions across other apps and scopes in the future.
* Set Protection to Read-only to avoid any unwanted edits to the actions by users.
* Make sure inputs have a specific type.
* Ensure that Mandatory is selected where required.
* If using a choice input type, use a default value.

{#flow-designer__ul_n2j_vz2_5xb}

Use the following practices when working with IntegrationHub:

* Create one spoke per integration system. Only put actions for a single system in a spoke.
* When creating the scoped app for the spoke, use a version naming convention that makes sense.
* Use a connection alias instead of an inline connection. The Base URL will be automatically extracted.
* Use connection attributes under the Alias to pass the version in a REST step giving future flexibility for versioning in the resource path.
* Use Save as Attachment to save the content in the response instead of creating another step to save the data.
* If the Alias is dynamic, make Alias one of the inputs and use the data pill to provide the Alias.

{#flow-designer__ul_o2j_vz2_5xb}

Use the following practices in Flow Designer and IntegrationHub for Error Handling:

* Create a Script Include to handle errors.
* Write short and understandable error messages.
* Incorporate all of the possible error messages the API returns.
* Ensure that the outputs from the integration step are validated before using them.
* Fail Early: If the inputs are not available, do not call the integration.

{#flow-designer__ul_p2j_vz2_5xb}

Self-Paced Training: [Flow Designer](https://developer.servicenow.com/dev.do#!/learn/courses/paris/app_store_learnv2_flowdesigner_paris_flow_designer)

Self-Paced Training: [IntegrationHub](https://developer.servicenow.com/dev.do#!/learn/courses/paris/app_store_learnv2_rest_paris_rest_integrations/app_store_learnv2_rest_paris_rest_in_integrationhub/app_store_learnv2_rest_paris_rest_in_integrationhub_objectives)

