---
sourceDocument: Zurich Workflow Data Fabric
sourceDocumentLink: https://www.servicenow.com/docs/r/zurich/integrate-applications

 Release :

    - zurich

ft:locale :

    - en-US

ft:publication_title :

    - Zurich Workflow Data Fabric

ft:clusterId :

    - crint

bundleId :

    - crint

workflow :

    - Creator


---

# Integration steps

# Integration steps {#ariaid-title1}

Release version: Zurich  
Updated July 31, 2025  
![](https://www.servicenow.com/docs/portal-asset/ico-clock) 4 minutes to read
Summarize  
![AI sparkle icon](https://servicenow.com/docs/portal-asset/ai-sparkle-icon) Summarized using AI  
This content was generated using new OpenAI-powered functionality. Results are provided on an as is basis and are not guaranteed to be accurate or complete.  

## Summary of Integration steps

Integration steps in ServiceNow enable custom actions that connect with external systems by using Integration Hub, which adds these steps to the Workflow Studio interface.
These steps can run either directly on the ServiceNow instance or on a MID Server, which is necessary for communicating with external applications, data sources, and services within your network.
Integration Hub requires appropriate user roles to execute flows and manage connection credentials.
Show full answer Show less  

## Key Features

* **Execution Environments:** Steps that operate on record data run on the instance; steps that require network integration run on a MID Server. The instance delegates processing to the MID Server via REST calls.
* **Available Integration Steps:** Includes JDBC for SQL commands, JSON and Payload Builders for creating dynamic payloads, PowerShell and SSH steps for remote script execution, REST and SOAP steps for web service requests, and XML parser for handling structured XML data. These steps support running on the instance, MID Server, or both depending on their function.
* **Connection Attributes and Aliases:** Define connection-specific variables centrally using Connection \& Credential aliases, allowing updates without reconfiguration of each action. These attributes appear as data pills for use in integration steps.
* **MID Server Selection:** Actions can specify a particular MID Server or MID Cluster for load balancing or failover. Auto-selection is available, but designers should avoid frequently switching execution environments between different MID Servers to maintain consistency and efficiency.
* **Design Considerations:** Group similar steps to minimize environment switching, use connection aliases with spokes, and avoid passing full GlideRecord objects to the MID Server (only sysid references are accessible). Inputs should be designed accordingly.

## Roles and Permissions

Creating integration steps requires the **actiondesigner** or **admin** roles. Running steps on a MID Server also requires the MID Server user to have **connectionadmin** and **credentialadmin** roles to access connection and credential details.

## Practical Benefits for ServiceNow Customers

* Seamlessly integrate workflows with external systems using reusable and configurable steps.
* Centralize connection management and credentials for easier maintenance and security.
* Optimize execution by leveraging MID Servers for network operations while running data record operations on the instance.
* Improve scalability and reliability through MID Server clusters and proper execution environment design.  
Enable custom actions to integrate with external systems by activating Integration Hub, which adds integration steps to the Workflow Studio interface.  
Integration steps can run on the instance or a MID Server. A MID Server is required to communicate with or move data between a ServiceNow instance and external applications, data sources, and services in your network.  
Note:  
Only Flow Designer admin and Connection admin can execute flows using Integration Hub.

Steps that perform operations on record data run on the instance, while steps that integrate
with systems in your network run on a MID Server. If a step requires a MID Server to run, the instance delegates
flow processing to the appropriate MID Server by sending the process plan in a
REST call. The MID Server executes the
action or step in the process plan and returns results. View log messages and execution status
from the instance or the MID Server.

## Available integration steps {#integration-steps__section_gl4_f1t_rcb}

These integration steps are available from [Workflow Studio - Building custom actions](https://www.servicenow.com/docs/access?context=actions&version=zurich&pubname=zurich-build-workflows&ft:locale=en-US).  
{#integration-steps__table_ypl_5zs_rcb__entry__3}

| Integration step | Description | Step runs from |
|-|-|-|
| [JDBC step](https://www.servicenow.com/docs/6rTG~CZhMgIZGsbTNfdUUA "Create a reusable action to send SQL commands to a relational database.") | Create a reusable action to send SQL commands to a relational database. | MID Server |
| [JSON Builder step](https://www.servicenow.com/docs/xDwD0wE8lka1tMecY84SlQ "Create a JSON payload to use in another step. Enter values or use data pills to produce a dynamic payload. This step supports several data types, including objects and arrays for nested structures.") | Create a JSON payload to use in another step. Enter values or use data pills to produce a dynamic payload. This step supports several data types, including objects and arrays for nested structures. | Instance |
| [Payload Builder step](https://www.servicenow.com/docs/kT8eFWl_kaA5GWnr5yazNg "Enable action designers to easily create name-value pairs in JSON and XML payloads using dynamic data.") | Enable action designers to easily create name-value pairs in JSON and XML payloads using dynamic data. | * Instance * MID Server {#integration-steps__ul_axh_gzl_tgb} |
| [PowerShell step](https://www.servicenow.com/docs/~CBz4JEfVdoQpYQalDnbxQ "Run PowerShell scripts on remote machines from your ServiceNow instance through a MID Server.") | Run PowerShell scripts on remote machines from your ServiceNow instance through a MID Server. | MID Server |
| [REST step](https://www.servicenow.com/docs/dBW1kdOzT66JVqYcu1ud0Q "Send an outbound REST web service request to an external system.") | Send an outbound REST web service request to an external system. | * Instance * MID Server {#integration-steps__ul_ehl_yzs_rcb} |
| [SOAP step](https://www.servicenow.com/docs/2hDNQIouaXF8P86tG9s7rA "Enable action designers to send outbound SOAP web service requests to external systems.") | Enable action designers to send outbound SOAP web service requests to external systems. | * Instance * MID Server {#integration-steps__ul_yhl_1zl_tgb} |
| [SSH step](https://www.servicenow.com/docs/r505shbhBm2J_1i8s5vNtg "The SSH step executes SSH commands on an external *nix system through a ServiceNow MID Server. The step also stores scripts and commands for the *nix systems.") | The SSH step executes SSH commands on an external \*nix system through a ServiceNow® MID Server. The step also stores scripts and commands for the \*nix systems. | MID Server |
| [XML parser step](https://www.servicenow.com/docs/JY2aP~EPR3fEQY_AyMD8vQ "Identify structured data from an XML payload without having to write script. Map incoming XML elements to a complex object output that you can use in other steps or actions. At runtime, values from an XML payload populate the complex object output.") | Identify structured data from an XML payload without having to write script. Map incoming XML elements to a complex object output that you can use in other steps or actions. At runtime, values from an XML payload populate the complex object output. | * Instance * MID Server {#integration-steps__ul_jkc_b1m_tgb} |
[ ]

{#integration-steps__table_ypl_5zs_rcb}

## Training {#integration-steps__section_xmc_hpd_1jb}

Complete a step-by-step training on using the REST step in the [REST in IntegrationHub developer training](https://developer.servicenow.com/dev.do#!/learn/courses/tokyo/app_store_learnv2_rest_tokyo_rest_integrations/app_store_learnv2_rest_tokyo_rest_in_integrationhub/app_store_learnv2_rest_tokyo_rest_in_integrationhub_objectives).

## Connection attributes {#integration-steps__section_qv2_tbz_hdb}

Define connection-specific variables that you can use in Integration Hub integration steps.
When using an integration step, you must establish a connection with an external system. Use a Connection \& Credential alias instead of defining the connection inline. An alias enables you to update the connection details once without having to reconfigure every action. Any action step that uses an alias inherits the attributes associated with it. Workflow Studio displays attributes as data pills that you can drag into your action step. For example, you can create a page size attribute that becomes a REST step query parameter. For more information about connection attributes, see [Create connection attributes for IntegrationHub](https://www.servicenow.com/docs/access?context=create-connection-attributes&version=zurich&pubname=zurich-platform-security&ft:locale=en-US).

## MID Server connection
aliases {#integration-steps__section_v41_xns_rcb}

Action designers can set MID Server
selection attributes using a connection record associated with an alias and associate the
alias with an integration step. When the flow runs, the system uses the attributes to
determine which MID Server runs the
step. Learn more about [Introduction to credentials, connections, and aliases](https://www.servicenow.com/docs/access?context=credentials-connections-alias&version=zurich&pubname=zurich-platform-security&ft:locale=en-US).

## MID Server and MID Cluster selection {#integration-steps__section_ghf_xns_rcb}

For most integration steps, you can specify a MID Server or MID Cluster for
the step to use when it runs. For a MID Server, you can select one you've
configured or have the system choose one by selecting Auto-Select MID Server from the step's MID Selection list. To learn more about how a MID Server is selected during runtime, see [MID Server selection](https://www.servicenow.com/docs/access?context=c_MIDServerSelector&version=zurich&pubname=zurich-servicenow-platform&ft:locale=en-US). For MID
Clusters, you can select a load-balancing or fail-over cluster for the step. For more
information on MID Clusters, see [Configure a MID Server
cluster](https://www.servicenow.com/docs/access?context=t_ConfigureAMIDServerCluster&version=zurich&pubname=zurich-servicenow-platform&ft:locale=en-US). The Payload Builder step and
XML Parser step do not support MID Server selection.  
When specifying a MID Server, Flow designers should avoid shifting the execution environment from one MID Server to another when a flow runs. Either configure each MID Server to perform operations on multiple endpoints, or provide multiple capabilities to each MID Server in your network. You may need a user with the connection_admin role to update the connection records associated with an action, or a network administrator to update the MID Server network configuration.  
Note:  
If a selected MID Server is part of a cluster, the runtime MID may be different, depending on load. So even if a MID Server is specified at the connection or step level, a different MID Server in the same cluster may be used at runtime.

## Design considerations {#integration-steps__section_sr5_n4w_qcb}

Design integration steps using the following guidelines.  
* Avoid shifting the execution environment between the instance and the MID Server multiple times. Where possible, group similar action steps. For example, group core steps that perform record operations and integration steps that run on the MID Server.
* When creating a spoke that uses an integration step, include a Connection and Credential alias record with the appropriate connection type. Before anyone can use the spoke, a user with the connection_admin role must associate the alias record to a connection record that supports the connection type. If defining the connection inline, use inputs to enable the process analyst to define the connection information when adding the action to a flow.
* The MID Server does not have access to all the values in a GlideRecord object, it only has access to the sys_id reference. Inputs of type Reference do not work on a MID Server. Instead, create action inputs that contain the necessary GlideRecord values.
{#integration-steps__ul_mxm_s4w_qcb}

## Roles {#integration-steps__section_egp_d3l_kcb}

To create integration steps, a user must have the action_designer or admin roles. If
running steps on a MID Server, the MID Server user must have the
connection_admin and credential_admin roles to access the connection and credential
information associated with the step.

