Flow Designer & Integration Hub Learning Path<span id="__caret">_</span><!-- .SOKMKBArticle div.margin { padding: 10px 40px 40px 30px; color: #283d40; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; } .SOKMKBArticle div.fed{ background-color: #f5f8fa; border: 1px solid; border-color: #bfbfbf; padding: 10px; } .SOKMKBArticle .FedRestricted{ background-color: #c00000; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .CustRestricted{ background-color: #ff0000; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .SNRestricted{ background-color: #ea700d; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .SNConfidential{ background-color: #ffc000; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .Public{ background-color: #00b050; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle table.tocTable { border: 1px solid; border-color: #f2f2f2; background-color: #f2f2f2; padding-top: .6em; padding-bottom: .6em; padding-left: .9em; padding-right: .6em; } .SOKMKBArticle table.noteTable { align: left; border: none; border-color: #81b5a1; background-color: #f2f2f2; width: 100%; border-spacing: 2; font-size: 11px; } .SOKMKBArticle table.internalTable { border-top: 1px solid; border-left: 1px solid; border-color: #81b5a1; width: 100%; border-spacing: 1px; } .SOKMKBArticle .sp td { border-bottom: 1px solid; border-right: 1px solid; border-color: #81b5a1; background-color: #ffffff; height: 20px; padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; } .SOKMKBArticle .sphr td { border-right: 1px solid; border-bottom: 1px solid; border-color: #81b5a1; background-color: rgb(245, 245, 245); padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; height: 20px; } .SOKMKBArticle .sh td { border-bottom: 1px solid; border-right: 1px solid; border-color: #81b5a1; background-color: #81b5a1; color: #ffffff; height: 20px; padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; } .SOKMKBArticle th { padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; border-bottom: 1px solid; border-right: 1px solid; border-color: #81b5a1; background-color: #283d40; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; color: #ffffff; height: 20px; } .SOKMKBArticle td { border-color: #81b5a1; margin: 5px 5px 5px 5px; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; color: #283d40; } .SOKMKBArticle p { color: #283d40; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; } .SOKMKBArticle li { color: #283d40; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; line-height: 1.5; } .SOKMKBArticle pre { font-family: Courier New; } .SOKMKBArticle div { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; } .SOKMKBArticle hr { border-top-width: 1px; border-top-style: solid; border-top-color: #81b5a1; } .SOKMKBArticle a { color: #81b5a1; } .SOKMKBArticle a.two:link { padding: 15px 45px 15px 45px; margin-top: 20px; color: #ffffff; text-align: center; background-color: #1F8476; border: 1px solid; border-color: #1F8476; } .SOKMKBArticle a.two:visited { padding: 15px 45px 15px 45px; margin-top: 20px; color: #ffffff; text-align: center; background-color: #1F8476; border: 1px solid; border-color: #1F8476; } .SOKMKBArticle a.two:hover { color: #ffffff; background-color: #259b8a; } .SOKMKBArticle .button { padding: 15px 45px 15px 45px; margin-top: 20px; color: #ffffff; text-align: center; background-color: #1F8476; border: 1px solid; border-color: #1F8476; } .SOKMKBArticle .title { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #81b5a1; font-size: 30pt; } .SOKMKBArticle .hd1 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-size: 20pt; border-bottom: 1px solid; border-bottom-color: #81b5a1; text-decoration: none; } .SOKMKBArticle h1 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-size: 20pt; font-weight: normal; border-bottom: 1px solid; border-bottom-color: #81b5a1; text-decoration: none; } .SOKMKBArticle .hd2 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #68a1af; font-weight: bold; font-size: 16pt; text-decoration: none; } .SOKMKBArticle h2 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #68a1af; font-weight: bold; font-size: 16pt; font-weight: normal; text-decoration: none; } .SOKMKBArticle .hd3 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 14pt; text-decoration: none; } .SOKMKBArticle h3 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 14pt; text-decoration: none; } .SOKMKBArticle .hd4 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 12pt; text-decoration: none; } .SOKMKBArticle h4 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 12pt; text-decoration: none; } .SOKMKBArticle .hd5 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: bold; font-size: 10pt; text-decoration: bold; } .SOKMKBArticle h5 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: bold; font-size: 10pt; text-decoration: bold; } .SOKMKBArticle .hd6 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 10pt; text-decoration: underline; } .SOKMKBArticle h6 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 10pt; text-decoration: underline; } .SOKMKBArticle details { font-size: 10pt; } .SOKMKBArticle details[open] summary ~ * { animation: sweep .5s; margin-top: 0; padding-top: 10px; } @keyframes sweep { 0% {opacity: 0; margin-top: -10px} 100% {opacity: 1; margin-top: 0px} } .SOKMKBArticle summary { cursor: pointer; outline: none; margin-bottom: 3px; } .SOKMKBArticle .summary { background-color: #81b5a1; font-size: 10px; color: white; cursor: pointer; padding: 5px; width: 100%; border: none; text-align: left; outline: none; vertical-align: top; } --> Contents Flow DesignerIntegration Hub 1. Flow Designer Released in Version: Kingston Quick Overview: The ServiceNow Flow Designer modernizes Task Automation with a codeless, natural language environment. This accelerates innovation and lowers the barrier to entry for companies by enabling Process Analysis and IT Generalists to easily integrate data and orchestrate business processes across services. Reduced script and script reuse reduces technical debt while simplifying deployments and upgrades. Decision management enables the business to change quickly, without impact to work processes. Videos: What Is Flow Designer? [2:48-9:29 from Community | 7 mins] [7:56-9:17 from Community | 1 min] [11:30-15:46 from Community | 4 mins]Quick overview of Flow Designer [0:18-0:58 from ServiceNow Support | 1 min]Build an Application / Components of an Application [16:39-20:02 from Community | 3 mins]Create and test your first Flow [0:58-6:53 from ServiceNow Support | 6 mins] Flow Designer Building Blocks: Flow: A flow consists of a trigger and one or more actions. The trigger specifies when to start the flow, which can be record-based, schedule-based, or application-based. Record-based triggers run a flow after a record has been created, updated, or deleted. The flow can use the triggering record as input for actions. Schedule-based triggers run a flow at the specified date and time. The flow can use the execution time as input for actions. Application triggers are added when the associated application is activated. For example, the MetricBase trigger is present when the MetricBase application is active. - [Official Doc] Trigger: An activity that initiates the flow, such as a record created in a specified table or a scheduled job. - [Official Doc] Based on record created or updated. This is a no-code alternative to Business Rules.Based on a schedule. This is a no-code alternative to scripted scheduled jobs.SLA Task based. This is an alternative to Workflows.Inbound Email based. This is a no-code alternative to Inbound Email Actions. [48:48-55:03 from Community | 6 mins] [50:12-52:54 from Community | 3 mins]Service Catalog based. This is an alternative to Workflows. Trigger Advanced Options: When to run the flowWhere to run the flow Flow Logic: Enable flows and subflows to specify conditional or repeated actions. Combine the elements of flow logic to create workflows in a graphical interface with little or no scripting. - [Official Doc] If, Else If, Else, and End operations: [47:28-56:59 from Community | 9 mins]For Each failing on an empty list: [41:45-48:45 from Community | 7 mins] Data Pill: Each time you add an action to a flow, Flow Designer adds a data pill to store its results. The data pill name indicates its sequence in the flow and its data type. Flow designers use action result data pills to provide input for other flows, actions, or subflows. Flow designers can use the sequence value in the data pill name to ensure that they select the correct data pill as an input value. When a flow runs an action, it generates the data pill runtime value, which remains the same for the duration of the flow. For example, if a data pill for [Trigger->Incident record] gets populated with incident record values at the start of a flow, the data pill preserves these values for the rest of the flow. - [Official Doc] Actions: An action is a reusable operation that enables process analysts to automate Now Platform features without having to write code. For example, the Create Record action allows process analysts to generate records in a particular table with particular values when certain conditions occur. ServiceNow core actions like Create Record require some familiarity with Now Platform tables and fields. Action designers can create application-specific actions to pre-set configuration details. For example, creating a Create Incident Task action ensures that the process analyst uses the correct table and field configuration each time the action is used. You can add application-specific actions by activating the associated spoke. - [Official Doc] Creating Actions in an existing Flow and test the Flow [0:24-7:05 from ServiceNow Support | 7 mins]Action Designer Core Actions: A ServiceNow core action is a ServiceNow-provided action available to any flow that cannot be viewed or edited from the Action Designer design environment. For example, the Ask for Approval action is a ServiceNow core action that allows process analysts to use Now Platform approvals. Flow Designer provides a set of ServiceNow core actions to automate Now Platform processes. You can add application-specific ServiceNow core actions by activating the associated spoke. - [Official Doc] Action Steps: An Action Step or Step is a single reusable operation within an action. For example, the Create Record step allows action designers to specify the table and field values to use during record creation. Action steps require subject matter expertise with application tables, fields, and business logic. Application developers or IT generalists add action steps to actions from the Action Designer design environment. Flow Designer provides a set of ServiceNow core action steps to automate Now Platform processes. You can add application-specific action steps by activating the associated spoke. - [Official Doc] Subflow: Define a sequence of reusable actions that can be started from a flow, subflow, or script. Define inputs and outputs to pass data to and from the subflow. Unlike flows, subflows lack a trigger. Use a subflow when: You only want to start a flow by calling it from another flow or script.You want to create a set of reusable operations for use in multiple flows.You want to specify the inputs available to the subflow when it starts.You want to specify the outputs available to the parent flow after the subflow ends. All Subflows consist of properties, one or more inputs, one or more outputs, a sequence of actions, and the data collected or created. - [Official Doc] The main difference between a Flow and a Subflow: A Flow requires a Trigger to start and a Subflow requires input data. [31:59-33:47 from Community | 2 mins]At the end of a Flow no output is expected, however at the end of a Subflow some output is expected. Subflow Demo (Paris release): What is a Subflow? [9:19-12:27 from Community | 3 mins]Create a new Subflow [12:27-19:40 from Community | 7 mins]Test the Subflow [19:40-21:56 from Community | 2 mins]Publish and use the Subflow in a Flow [22:19-25:52 from Community | 3 mins]Find the Subflow FlowAPI script to call this Subflow from anywhere we can execute a script [25:52-27:32 from Community | 2 mins]Copy and paste the Subflow FlowAPI script to use in a UI Action [29:35-36:21 from Community | 7 mins] Spokes: A Spoke is a scoped application containing Flow Designer content dedicated to a particular application or record type. For example, the ITSM Spoke contains actions for managing Task records such as the Create Task action. Spokes are activated when their parent application is activated. For example, the ITSM Spoke is activated when the Incident, Problem, and Change applications are activated. Creating a spoke requires familiarity with application development because developers must add Flow Designer content to a scoped application. See Spokes for a list of available spokes. - [Official Doc] Demo (Create a New Flow Designer Spoke with an ATF Test) [0:00-10:58 from Support | 11 mins] Introduction to Spokes [0:18-1:05 from Support | 1 min]Setting up a new application [1:05-2:42 from Support | 2 mins]Delegating development - granting access to Flow Designer [2:42-3:04 from Support | 1 min]Creating a flow triggered by a catalog item [3:04-6:10 from Support | 3 mins]Setting up an ATF Test [6:10-9:23 from Support | 3 mins]Publishing to Git [9:23-9:55 from Support | 1 min]Following development good practices [9:55-10:58 from Support | 1 min] Testing the Flow: [20:03-21:43 from Community | 2 mins] Executing the Flow from Flow DesignerViewing the resultsInterpreting the results Demo 1 (The Basics, Start Here): Explain business logic (close child tasks when parent task is closed) [17:33-19:01 from Community | 1 min]Create a new Flow [19:01-33:26 from Community | 14 mins] Flow properties [19:37-22:35 from Community | 3 mins]Trigger [22:35-26:40 from Community | 4 mins]Look Up Records Action, Data Panel, Data Pills, and For Each Flow Logic, Update Record Action [26:40-33:26 from Community | 7 mins] Test the Flow, Execution Details [33:52-38:00 from Community | 5 mins]Update Multiple Records Action (new in Paris) [44:49-48:35 from Community | 4 mins] Demo 2 (The Basics, Start Here): Explain business logic (send notification every night for overdue approvals) [38:46-39:10 from Community | 1 min]Create a new Flow [40:02-43:40 from Community | 4 mins] Flow PropertiesTriggerLook Up Records ActionFor Each Flow LogicSend Email Action Test the Flow, Execution Details [43:40-44:45 from Community | 1 min] Demo 3: Tour of the Flow Designer modules [24:30-26:10 from Community | 2 mins]Tour of the Flow Designer homepage and OOB components [26:10-29:06 from Community | 3 mins]Create a new Flow using Flow Designer to send Email on an Incident update [29:06-49:51 from Community | 21 mins] Flow PropertiesTriggerActionsTest the FlowExecutions for this FlowActivate/Deactivate this Flow Create a Subflow [49:51-54:21 from Community | 5 mins] Subflow PropertiesTest the Subflow Demo 4: Create a new Subflow, Action, and Script Step [4:07-20:56 from Community | 17 mins] Create a new Subflow that takes a JSON object as input (each Subflow requires input and output)In this Subflow, create a new Action that converts JSON object to String (each Action requires input and output)In this Action, create a new Script Step that converts JSON object to String (each Step requires input and output)Test custom Action Test new custom Subflow [20:56-24:14 from Community | 3 mins]In this same Subflow, create a new custom Action with and a new Script Step to add value to JSON object [24:14-36:51 from Community | 13 mins] Executing a Flow from a script (FlowAPI): [Official Docs] [21:43-23:27 from Community | 2 mins] Application developers can access Flow Designer functionality through APIs for flows, subflows, and actions. Flow designers can enable individual flows, subflows, and actions to be client callable during design. Trigger flows, subflows, and actions using these APIs from server or client scripts. Server Side / FlowAPI: Trigger a flow, subflow, or action using synchronous or asynchronous methods, with or without execution details. [Developer Site]Client Side / GlideFlow: Perform client-side interactions with actions, flows, and subflows. Flow designers must enable a flow, subflow, and action to be called from the client. [Developer Site] Flow API Demo 1 (Execute a Flow from FlowAPI): [7:23-19:53 from Community | 13 mins] Code Snippet feature Use the 'current' object to pass dataAsynchronous code vs Synchronous codeExecute a Flow with FlowAPI by executing code produced by Code Snippet featureNote: not shown in this demo, but the Triggered action in Execution Details would read "Triggered From Script" FlowAPI Demo 2 (Execute a Subflow from FlowAPI): [22:55-31:59 from Community | 9 mins] Code Snippet feature Use 'input' variables to pass dataAsynchronous code vs Synchronous codeExecute a Subflow with FlowAPI by executing code produced by Code Snippet feature Properties: com.snc.process_flow.reporting.serialized.val_size_limit - Specify the number of bytes allowed for runtime values in each step in the flow execution details. To prevent truncation, set the value to an integer equal to or less than zero. [25:32-32:36 from Community | 7 mins] [Official Doc] Tips & Tricks: Approving and Rejecting via Flow Designer [6:34-14:20 from Community | 8 mins]Look up Record vs Look up Records actions. Issue: "My Flow stops when I do a Look up Record, and no record is found" [15:37-23:56 from Community | 8 mins]Working with Duration fields. When a Duration filed is not a Duration field [33:11-41:38 from Community | 8 mins] Troubleshooting & Debugging: Use the Flow Executions View Looking through the Execution Detail view should be the first thing done to debug any runtime issues. Every state, action, step, log, and record involved is shown in the details page. Flow Designer logging You can add the Log action to any flow. To control logging properties, go to Flow Designer > Properties com.glide.hub.flow_engine.listener_trace - will replicate flow logs to sys_flow_log, but they're in syslog anyway (default: false)com.glide.hub.flow_engine.listener_trace.threshold - controls which messages get replicated (default: ERROR) Best Practices: Best Practices for Using the Flow Designer Community Article [Community Article] Leave base system actions and flows intact to get future updatesAlways build an action or flow within a scope - but not the Global scopeCreate simple, small components with simple namesUse Integration Hub to handle authenticationUnderstand the difference between the Run Trigger optionsUnderstand how the Test button works in the Flow Designer interfaceNever develop or test on a production instanceIf you move actions around, double-check the data referencesDon't create conflicting logic with business rules and workflows Flow Designer vs Workflows and Coding/Scripting Solutions: Always choose Flow Designer (no-code) over Code solutions like Business Rules, Inbound Actions, Scheduled Scripts, or Script Includes [36:36-39:26 from Community | 3 mins]Is Flow Designer replacing Workflows? [40:24-42:38 from Community | 2 mins] [15:46-17:00 from Community | 1 min]Flow Designer can also replace Email Notifications to send e-mail [45:03-48:29 from Community | 3 mins] Reduce Reporting in Production: Table Cleaner Default is 2 months which will produce significant reporting data for high usage customersReduce the table cleaner job to days or weeks sys_auto_flush.list for sys_flow_context Introduced in Madrid, you can control the reporting on a flow by flow basisEmergency switch: com.snc.process_flow.reporting.enabled = false Snapshots vs Versioning: Workflow supports versioning, and you may reactivate older versions within a single instance.Flow Designer relies on source control (GitHub) and the ServiceNow application repository for version control. Customers must publish their scoped application to the repo, allowing for upgrade/rollback of published versions. How to move flow designer from one environment to another? Leverage Application Scoping, GitHub, and Application Repo to move Flows and Actions between instances. Best Practice for Converting Workflows to Flows? Answer: This is not possible. The recommendation is to continue using Workflows. If you must convert, then this has to be done manually. Copy a Flow from One Instance to Another (Export from One Instance and Import into Another) Answer: only solution is via Update Set. There is no UI Action like in Workflow. Selected New Features by Release: For all releases and the complete list of new features see the official Product Documentation. Quebec Code Signing in Flow Designer (digitally sign records to guarantee they are not altered or corrupted)New "Record Producer" Action (part of the "ServiceNow Core" spoke)Update "Get Catalog Variables" (Action in "ServiceNow Core" spoke) - get Variable from Variable Set Rome Flow Usability Improvements (Friendlier and more modern UI. Also, improved consistency with apps on the platform)New Input Types (conditions, document ID, field list, template value)Validation of Invalid Catalog (better error handling when dealing with invalid catalog variable pills)Flow Designer Reporting Update (disable reporting unless customers enable it via system property)Flow Designer Error Handling San Diego Three new flow logics namely - "Wait for a duration of time", "End" and "Dynamic Flow"New Try/Catch Logic (wrap Actions around a Try/Catch statement)Handling Collision in Flow Designer and App Engine Studio (better alerts when opening a flow with uncommitted changes)Flow context retention policy Prior to San Diego, it took 6 months before the flow context and execution detail was removed. In San Diego and future releases, the retention policy for COMPLETED flows is 2 weeks and for ERROR or CANCELLED flows is 6 weeks. Flow Diagramming Why? Logic: It can be difficult to understand complex logic in the current Flow Designer experience. Diagramming increases the speed at which users can understand the sequence of information.Notation: Customers frequently request that Flow Designer respect common process modeling notation. Diagramming adopts common visual language to increase usability for citizen developers.Layout: Some customers prefer a more visual layout - like the Workflow product - when building automation.Persona: Make our targeted persona, including citizen developers and low-code users more comfortable with a diagram approach to editing content. Available via sn_flow_diagram pluginSupported Features: Actions or Subflow instancesFlow logic: If, Else If, Else, For Each, End, Wait for a duration of time, Call a workflow, dynamic flow, get flow outputs.Trigger types: Application: inbound email, SLA task, Service CatalogRecord: Created, Updated, Created or UpdatedDate: Daily, Weekly, Monthly, Run Once, Repeat Unsupported Features: Flow with: StagesError HandlingFlow logic: Wait For Condition, Parallel, Do Until, etc..Data Stream ActionsTrigger Types: REST, Metric Based, Kafka Trigger (new in San Diego) Authoring a view via SubflowsInstance rearranging and annotation Note: Starting in San Diego, Flow Diagram view toggle on Flow Designer will be available only for Flows with supported features. Trying to use Flow Diagram with an unsupported feature will re-direct user back to the Flow Designer natural language view. On Flow Designer Natural Language View, the toggle will be disabled. Save Flow as Template 2. Integration Hub Released in Version: Kingston Quick Overview: Integration Hub provides a single solution to quickly integrate with third party services. Build and Share content in minutes. Reduces the need for code while ensuring discoverability and reuse. Videos: What is Integration Hub? Why corporations need it and quick demo integrating with AD, Teams, and Slack [0:00-11:40 from Now Community | 12 mins]What is Integration Hub? [0:00-3:44 from Dev Program | 4 mins] Reduce technical debt by creating configurable reusable integration actions that are easy to use by low-code developers.Groups of similar actions are called "Spokes". Best practice is to create a spoke in its own scope and use the name "spoke" at the end of the scope name.Integration Hub requires a licensing but it is available on PDI (personal developer instances) for learning and experimenting.Commonly used in Flow Designer, but can also be accessed from script via an API - the FlowAPI.Connections and Credentials managed via Flow Designer.Check the ServiceNow store for official out-of-the-box Spokes. New Spokes are being added all the time. What is Integration Hub? [4:59-6:15 from Community | 1 min] Integration SpokesLow-code templatesSolutions Integration Hub Case Study [7:22-8:49 from Community | 1 min] Data Flow Diagram: Integration Hub Spoke Subflows and Actions: Integration Hub Triggers (new in Quebec): REST API - Start a flow from an inbound API call or webhook from an external system. Configure the trigger start conditions without having to write or maintain custom code. [Official Doc] This is a no-code alternative to Scripted REST Quick Introduction (start here) [0:00-1:31 from Community | 2 mins]Jira Demo [0:00-10:37 from Community | 11 mins] Integration Hub Capabilities: Quick summary [8:52-9:52 from Community | 1 min] Action Designer Integration Steps: REST - Send an outbound REST web service request to an external system. [Official Doc] XML Parser - 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. [Official Doc] JSON Parser - Identify structured data from a JSON payload without having to write a script. Map incoming JSON content to a complex object output that you can use in other steps or actions. At runtime, values from a JSON payload populate the complex object output. [Official Doc] Demo [0:00-5:58 from Now Community | 6 mins] SOAP - Enable action designers to send outbound SOAP web service requests to external systems. [Official Doc] JDBC - Create a reusable action to send SQL commands to a relational database. [Official Doc] Get Connection Info - Provide the connection and credential details from another step, such as a REST step, to other steps in your action. [Official Doc] Payload Builder - Enable action designers to easily create name-value pairs in JSON and XML payloads using dynamic data. [Official Doc] PowerShell - Run PowerShell scripts on remote machines from your ServiceNow instance through a MID Server. [Official Doc] SSH - 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. [Official Doc] Use these Integration Hub Steps to create custom Integration Hub Actions [0:00-8:40 from Dev Program | 9 mins] Integration Hub Actions: Create a custom IntegrationHub action [0:00-8:40 from Dev Program | 9 mins] Spokes: App-specific sets of low-code Actions and Subflows What is a Spoke? [10:00-10:57 from Community | 1 min] Scoped Application that contains pre-built integrations used via Integration HubOne Spoke - One product/end-pointHow to request a spoke? Request the spoke from the ServiceNow StoreInstall the pre-requisites (for ex. IH plug-in)Install the pluginCheck the Spoke installationCopy actions/subflows from installed spoke to make a change What's in a Spoke? AuthenticationGeneric flows tied to actionsReusable actions around API endpointsScripted endpoints, email hooks, import set, webhooks Flow Templates / Sample Flows: Starter Flows w/ guided setup and built-in integrations for low-code developers in App Engine Studio. Feature Tour (User Onboarding Flow Template/Sample from Microsoft AD Spoke) [15:00-19:37 from Community | 5 mins]Feature Tour (Sample Flow Templates from Okta Spoke) [20:49-21:49 from Community | 1 min]Feature Tour and Demo (Document Management using App Engine Studio and Flow Designer-Integration Hub) [22:06-34:30 from Community | 12 mins] Solutions: Out-of-the-box solutions for top use cases Feature Tour (Access Management Automation Solution) [34:47-45:15 from Community | 10 mins] Connections Summary/Quick Overview [19:42-20:37 from Community | 1 min] Integration Hub Packages Entitlements [10:57-11:46 from Community | 1 min] StarterStandardProfessionalEnterprise Data Stream Actions (new in New York) Public Quick Overview and Demo [0:00-12:12 from Dev Program | 12 mins]Overview Data Stream actions provide templated action steps to help retrieve large data setsBuilt-in parsing and scriptingBuilt-in for each loop within flow designer to iterate through data itemsCan run on MID Server Minimum Setup to Run a Data Stream Action Pick a protocol step (REST, SOAP, JDBC)Pick a splitter (JSON)Pick a parser (Script)Create [Object] type output variable JDBC Data Stream (new in Quebec)Data Stream Quick Mode (new in San Diego) Optimizes performance of Data Stream Actions by preventing writing of unneeded records (logging and reporting records, for example) Selected New Features by Release: For all releases and the complete list of new features see the official Product Documentation. Quebec MID Server selection enhancements for Integration Hub protocol Steps. Action Designer will now have the ability to specify a specific MID server where he/she wants to run a step.Connection Admins will now have the ability to specify an individual MID server when configuring a new connection record Async HTTP Client All HTTP requests made through Integration Hub were synchronous, meaning that executing threads would hang while waiting for a response to come back from an endpoint. This could be too slow for low latency, high volume use cases such as VA.With async support, threads can send a request and handle other work in the meantime (instead of waiting for responses) which allows for less idle time. REST TriggerSFTP to Instance Use cases: When user wants to transfer single or multiple files from SFTP endpoint to instance.When user wants to copy attachments to and sftp endpoint Get Connection Info Step Rome User-defined Connection TimeoutsOutbound Logging via MID Prior to this change, any outbound HTTP request made from REST/SOAP step over MID would not generate an outbound HTTP log recordThese requests will now have an associated outbound HTTP log record. Note: outbound HTTP requests made from Script steps are not included in this change Integration Hub Imports A guided way to import data reduces the time/money spent moving data into ServiceNow and provides an experience that guides the user through the process and reduces the skillset required to import data. KMF Code Signing KMF Code Signing ensures integrity of sensitive metadata before script usage/executionThe following artifacts which are created or modified on a production instance will not be executed on the MID Server. KMF Signatures will be required to run over MID when Code Signing is enabled JDBC Data SourcesREST/SOAP Messages V2ScriptsFlow Designer Flow/Sub-flow/Action/Process Plan San Diego Retry-After Strategy New retry policy strategy that honors Retry-After HTTP response headers in REST/SOAP stepsNew system property [sys_property] that controls max time a retry policy is allowed to takeA new Retry Info section has been added when viewing a flow context from Operations view that has a Retry Policy. Data Mapping for AES using Excel as a Data Source Integration Hub simplifies the process of importing data from external sources and transforming it to ServiceNow tables. You can configure, run, and schedule your data imports all through a single interface. App Engine Studio (AES) is ServiceNow's new low-code developer IDE whose mission is to enable developers of all skill sets to build applications on the Now Platform.Integration Hub Import experience will make a great integration into AES, providing developers with an easy and intuitive experience for scheduling and importing data. Kafka Triggers In San Diego, we implemented Kafka Message Trigger which can consume messages from a Kafka Server using the Kafka Subscription API and run the flows associated with the trigger. Kafka Producer Use Cases A flow admin user who writes a flow wants to publish an event to customer Kafka instanceA script admin user who writes a BR or a script include wants to publish an event to customer Kafka instance