diff --git a/IQ/Automation/External Runbooks/101-riverbed-iq-assist-for-servicenow-incident-diagnose-user-endpoint/README.md b/IQ/Automation/External Runbooks/101-riverbed-iq-assist-for-servicenow-incident-diagnose-user-endpoint/README.md index ce0e779..c40d6b0 100644 --- a/IQ/Automation/External Runbooks/101-riverbed-iq-assist-for-servicenow-incident-diagnose-user-endpoint/README.md +++ b/IQ/Automation/External Runbooks/101-riverbed-iq-assist-for-servicenow-incident-diagnose-user-endpoint/README.md @@ -2,22 +2,38 @@ The runbook [Riverbed IQ Assist for ServiceNow - Incident - Diagnose User Endpoint](./Riverbed%20IQ%20Assist%20for%20ServiceNow%20-%20Incident%20-%20Diagnose%20User%20Endpoint.json) can be used as-is for Incidents assistance with Riverbed IQ Assist for ServiceNow. -When triggered from ServiceNow, the runbook diagnoses the user endpoint based on the Configuration Item (CI), and enriches the incident ticket. +When triggered from ServiceNow, the runbook diagnoses the user’s endpoint and enriches the incident ticket. ## Prerequisites -1. Riverbed IQ Assist opt-in feature is enabled (IQ > Administration > Riverbed IQ Assist configuration). +1. ServiceNow: + - [Riverbed IQ Assist for ServiceNow](https://store.servicenow.com/sn_appstore_store.do#!/store/search?q=Riverbed) is installed from the ServiceNow Store. -2. [Riverbed IQ Assist for ServiceNow](https://store.servicenow.com/sn_appstore_store.do#!/store/search?q=Riverbed) is installed from the ServiceNow Store. +2. Riverbed AIOps: + - Riverbed IQ Assist opt-in is enabled (IQ > Administration > Riverbed IQ Assist configuration) and the integration is configured (IQ > Integration Library). + - Aternity integration is installed and configured (IQ > Integration Library) + - ServiceNow integration is installed and configured (IQ > Integration Library) -3. Aternity integration on Riverbed IQ is installed. +## CI Setup -4. ServiceNow integration is installed (IQ > Integration Library). +In this setup, Riverbed IQ Assist uses the Incident’s associated Configuration Item (CI) to identify the user endpoint to diagnose. +1. Download the runbook file: [Riverbed IQ Assist for ServiceNow - Incident - Diagnose User Endpoint](./Riverbed%20IQ%20Assist%20for%20ServiceNow%20-%20Incident%20-%20Diagnose%20User%20Endpoint.json). +2. In IQ, go to Automation > External Runbooks and import the JSON. +3. Open the imported runbook and enable "Allow Automation" -## Quick Setup +## Custom Field Setup + +In this setup, Riverbed IQ Assist reads a custom Incident field that contains the user endpoint to analyze. + +1. Download the custom runbook: [Riverbed IQ Assist for ServiceNow - Incident - Diagnose User Endpoint](./Riverbed%20IQ%20Assist%20for%20ServiceNow%20-%20Incident%20-%20Diagnose%20User%20Endpoint%20from%20Incident%20Custom%20Field.json). +2. In IQ, go to Automation > External Runbooks and import the JSON. +3. Open the imported runbook and enable "Allow Automation" + +## Other Setup + +You can customize the setup to leverage other Riverbed IQ Assist skills. For example, the [runbook 105](../105-riverbed-iq-assist-for-servicenow-incident-caller-endpoint-diagnostic/) uses a skill to find the user endpoint. -After downloading the [runbook file](./Riverbed%20IQ%20Assist%20for%20ServiceNow%20-%20Incident%20-%20Diagnose%20User%20Endpoint.json), go to IQ Automation, import the runbook in the External Runbooks. And toggle "Allow Automation" on. ### License diff --git a/IQ/Automation/External Runbooks/101-riverbed-iq-assist-for-servicenow-incident-diagnose-user-endpoint/Riverbed IQ Assist for ServiceNow - Incident - Diagnose User Endpoint from Incident Custom Field.json b/IQ/Automation/External Runbooks/101-riverbed-iq-assist-for-servicenow-incident-diagnose-user-endpoint/Riverbed IQ Assist for ServiceNow - Incident - Diagnose User Endpoint from Incident Custom Field.json new file mode 100644 index 0000000..d6efa95 --- /dev/null +++ b/IQ/Automation/External Runbooks/101-riverbed-iq-assist-for-servicenow-incident-diagnose-user-endpoint/Riverbed IQ Assist for ServiceNow - Incident - Diagnose User Endpoint from Incident Custom Field.json @@ -0,0 +1,1052 @@ +{ + "runbook": { + "id": "9478d2fe-9bf4-4c3d-adee-53897b21410d", + "createdTime": "1761291982.217380600", + "lastUpdatedTime": "1761552041.670079800", + "factoryResourceName": null, + "isFactory": false, + "name": "Riverbed IQ Assist for ServiceNow - Incident - Diagnose User Endpoint from Incident Custom Field", + "description": "Triggered in the context of an Incident in ServiceNow, the runbook will find the user endpoint from a custom field, and enrich the incident record with a diagnostic insight.", + "isReady": true, + "triggerType": "webhook", + "runtimeVariables": { + "primitiveVariables": [ + { + "type": "string", + "defaultValue": null, + "name": "runtime.Sys_Id", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.Number", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.Error_Message", + "isReadonly": false + }, + { + "type": "boolean", + "defaultValue": null, + "name": "runtime.Successful", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.ServiceNow_Incident_Sys_Id", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.ServiceNow_User_Data", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.ServiceNow_Configuration_Item", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.ServiceNow_Incident_Number", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.ServiceNow_Configuration_Item_Sys_Id", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": "", + "name": "runtime.ServiceNow_API_Base_URL", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.ServiceNow_Configuration_Item_URL", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.ServiceNow_Incident_URL", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.Aternity_EUEM_DEVICE_NAME", + "isReadonly": false + }, + { + "type": "integer", + "defaultValue": null, + "name": "runtime.total_duration", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.Findings_CPU_MEM", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.Findings_IO", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.Findings_HEALTH", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.SVG_CPU_MEM", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.SVG_WIFI_Signal_Strength", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.Findings_WIFI", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.SVG_WIFI_Transmission_Speed", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.SVG_NPM_Traffic", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.SVG_NPM_RTCC", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.Findings_NPM", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.SVG_IO_RATE_RW", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.SVG_IO_DISK_QUEUE_LENGTH", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.Insight", + "isReadonly": false + }, + { + "type": "boolean", + "defaultValue": "true", + "name": "runtime.ENABLE_FEATURE_Post_to_ServiceNow", + "isReadonly": false + }, + { + "type": "boolean", + "defaultValue": "true", + "name": "runtime.ENABLE_FEATURE_Display_Logs", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.User_Endpoint_Name", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.CMDB_CI", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.Problem_ID", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.Caller_ID", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.Caller_Username", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.Caller_Display_Name", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.Caller_Email", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": null, + "name": "runtime.Suggested_User_Device", + "isReadonly": false + }, + { + "type": "string", + "defaultValue": "x_atern_incident_user_device", + "name": "runtime.ServiceNow_Incident_Custom_Fields", + "isReadonly": false + } + ], + "structuredVariables": [] + }, + "subflowVariables": null, + "nodes": [ + { + "id": "cb2c6784-67b9-462f-a183-d4c970fba527", + "isIntegrationSubflowNode": false, + "type": "trigger", + "label": "Riverbed IQ Assist invoked in ServiceNow Incident", + "description": "", + "properties": { + "x": 217.00399189370114, + "y": 391.46576340223044, + "triggerType": "webhook", + "timeReference": "RUNBOOK_EXECUTION", + "timeOffset": 900, + "debug": false + }, + "wires": [ + [ + "5b90c82e-6fe8-4f4c-b706-b3d55e0355b1" + ] + ] + }, + { + "id": "3eb33558-adc5-4906-b2f6-b6d9edf56eee", + "isIntegrationSubflowNode": false, + "type": "comment", + "label": "Comment Setup Notes", + "description": "", + "properties": { + "x": 228, + "y": 770, + "comment": "

Prerequisites

  - Riverbed IQ Assist app is installed and configured.

  - IQ Assist opt-in is enabled and the integration is configured.

  - Aternity integration is configured.

  - ServiceNow integration is configured, with a connector for Riverbed IQ Assist enabled.


Setup

This runbook can be installed in Riverbed IQ as follows:

  1. Import this runbook file from the External Runbooks page. Make sure to select connectors in the import dialog.
  2. Enable Allow Automation on the imported runbook in the External Runbooks page. 
  3. Create automation rule to link a webhook call to this runbook.
  4. Make sure ServiceNow app is configured with the appropriate webhook URL.


Configure Custom Fields

Edit the runbook variables and configure the Default value of the variable ServiceNow_Incident_Custom_Fields.

Set the name of the custom field to be fetched from the Incident record in ServiceNow, for example: \"yourfield1\" (at runtime, the output of the ServiceNow Get Incident Details node will contain the value in the entity output property Custom1)


", + "debug": false + }, + "wires": [] + }, + { + "id": "5b90c82e-6fe8-4f4c-b706-b3d55e0355b1", + "isIntegrationSubflowNode": false, + "type": "set_primitive_variables", + "label": "Extract Incident Basic Info", + "description": "", + "properties": { + "x": 461.8185145156033, + "y": 397.71056093170466, + "variables": [ + { + "name": "runtime.ServiceNow_Incident_Sys_Id" + }, + { + "name": "runtime.ServiceNow_User_Data" + }, + { + "name": "runtime.ServiceNow_Configuration_Item" + }, + { + "name": "runtime.ServiceNow_Incident_Number" + }, + { + "name": "runtime.ServiceNow_Configuration_Item_Sys_Id" + }, + { + "name": "runtime.ServiceNow_API_Base_URL" + } + ], + "transformTemplate": "{\n \"runtime.ServiceNow_API_Base_URL\" : \"https://{{variables[\"runtime.ServiceNow_ENV\"]}}.service-now.com\",\n \"runtime.ServiceNow_Incident_Sys_Id\": \"{{trigger[\"requestBody\"][\"recordID\"]}}\",\n \"runtime.ServiceNow_User_Data\": \"{{trigger[\"requestBody\"][\"user\"]}}\",\n \"runtime.ServiceNow_Configuration_Item\": \"{{trigger[\"requestBody\"][\"ciName\"]}}\",\n \"runtime.ServiceNow_Configuration_Item_Sys_Id\": \"{{trigger[\"requestBody\"][\"ciID\"]}}\",\n \"runtime.ServiceNow_Incident_Number\": \"{{trigger[\"requestBody\"][\"recordNumber\"]}}\"\n}\n", + "debug": false + }, + "wires": [ + [ + "6f97675e-6163-4ceb-be53-9c560ce3fc0b" + ] + ] + }, + { + "id": "c5348045-6321-4f50-8bac-8a0bdfb1b9d2", + "isIntegrationSubflowNode": false, + "type": "comment", + "label": "Comment Setup Notes 1", + "description": "", + "properties": { + "x": 229, + "y": 490, + "comment": "

Riverbed IQ Assist for ServiceNow

Runbook for Incident in ServiceNow: Diagnose User Endpoint from Incident Custom Field

version: 2025-10-27-2

", + "debug": false + }, + "wires": [] + }, + { + "id": "7d3a7296-44da-4f29-bf4f-87f579f5696e", + "isIntegrationSubflowNode": false, + "type": "insight", + "label": "Display Info", + "description": "", + "properties": { + "x": 1484.3389306522304, + "y": 269.97618612636074, + "template": "

ServiceNow Incident Number: {{variables[\"runtime.ServiceNow_Incident_Number\"]}}

Suggested User Endpoint: {{variables[\"runtime.User_Endpoint_Name\"]}}


", + "debug": false + }, + "wires": [] + }, + { + "id": "eb8791c5-892d-492e-a505-0b011f292841", + "isIntegrationSubflowNode": false, + "type": "subflow", + "label": "ServiceNow: Post Comment", + "description": "Add a comment or work notes to a ServiceNow incident or problem.\nIf it fails to be added, an error message will be returned.", + "properties": { + "x": 2503.9313547115403, + "y": 416.19650754643294, + "debug": false, + "configurationId": "f4c88032-d05f-4d27-ad96-a1f844c66ba5", + "in": [ + { + "inner": "subflow.Connector", + "outer": "00000000-0000-0000-0000-000000000000", + "method": "connector", + "isUnset": false + }, + { + "inner": "subflow.Record_Type", + "outer": "incident", + "method": "static", + "isUnset": false + }, + { + "inner": "subflow.Sys_Id", + "outer": "runtime.ServiceNow_Incident_Sys_Id", + "method": "runtime", + "isUnset": false + }, + { + "inner": "subflow.Content", + "outer": "runtime.Insight", + "method": "runtime", + "isUnset": false + }, + { + "inner": "subflow.Visibility", + "outer": "work_notes", + "method": "static", + "isUnset": false + }, + { + "inner": "subflow.Format", + "outer": "html", + "method": "static" + } + ], + "out": [ + { + "inner": "subflow.Successful", + "outer": "" + }, + { + "inner": "subflow.Error_Message", + "outer": "" + } + ], + "runAsSingleActivity": true + }, + "wires": [] + }, + { + "id": "a99a2434-229a-42e6-bef8-6fde85165089", + "isIntegrationSubflowNode": false, + "type": "rvbd_ui_text", + "label": "Show Insight", + "description": "", + "properties": { + "x": 2511.413583003443, + "y": 562.784962885423, + "title": "Show Insight", + "row": "10", + "notes": "

{{variables[\"runtime.Insight\"]}}

", + "debug": false + }, + "wires": [] + }, + { + "id": "eb7a886f-a811-498c-b35c-07f5ccfe98a5", + "isIntegrationSubflowNode": false, + "type": "comment", + "label": "Comment 1", + "description": "", + "properties": { + "x": 506.00399189370114, + "y": 490, + "comment": "

Payload example

{
\"recordType\" : \"incident\",
\"recordID\" : \"e51dccec878c\",
\"recordNumber\" : \"INC0013262\"
}

", + "debug": false + }, + "wires": [] + }, + { + "id": "8f867e03-1735-4570-852b-b2f4ced3d458", + "isIntegrationSubflowNode": false, + "type": "subflow", + "label": "Skill: Diagnose User Endpoint", + "description": "Diagnose user endpoint based on health events and metrics such as CPU/memory, I/O and Wi-Fi (signal strength and transmission speed).", + "properties": { + "x": 2020.521550224495, + "y": 400, + "debug": false, + "configurationId": "663d7c90-2b9e-4500-82eb-f4d9361140b6", + "in": [ + { + "inner": "subflow.Aternity_Connector", + "outer": "00000000-0000-0000-0000-000000000000", + "method": "connector", + "isUnset": false + }, + { + "inner": "subflow.Device_Name", + "outer": "runtime.User_Endpoint_Name", + "method": "runtime", + "isUnset": false + } + ], + "out": [ + { + "inner": "subflow.Successful", + "outer": "runtime.Successful", + "method": "runtime" + }, + { + "inner": "subflow.Error_Message", + "outer": "runtime.Error_Message", + "method": "runtime" + }, + { + "inner": "subflow.Findings_HEALTH", + "outer": "runtime.Findings_HEALTH", + "method": "runtime" + }, + { + "inner": "subflow.Findings_WIFI", + "outer": "runtime.Findings_WIFI", + "method": "runtime" + }, + { + "inner": "subflow.Findings_CPU_MEM", + "outer": "runtime.Findings_CPU_MEM", + "method": "runtime" + }, + { + "inner": "subflow.Findings_NPM", + "outer": "runtime.Findings_NPM", + "method": "runtime" + }, + { + "inner": "subflow.Findings_IO", + "outer": "runtime.Findings_IO", + "method": "runtime" + }, + { + "inner": "subflow.SVG_CPU_MEM", + "outer": "runtime.SVG_CPU_MEM", + "method": "runtime" + }, + { + "inner": "subflow.SVG_WIFI_Signal_Strength", + "outer": "runtime.SVG_WIFI_Signal_Strength", + "method": "runtime" + }, + { + "inner": "subflow.SVG_WIFI_Transmission_Speed", + "outer": "runtime.SVG_WIFI_Transmission_Speed", + "method": "runtime" + }, + { + "inner": "subflow.SVG_NPM_Traffic", + "outer": "runtime.SVG_NPM_Traffic", + "method": "runtime" + }, + { + "inner": "subflow.SVG_NPM_RTCC", + "outer": "runtime.SVG_NPM_RTCC", + "method": "runtime" + }, + { + "inner": "subflow.SVG_IO_RATE_RW", + "outer": "runtime.SVG_IO_RATE_RW", + "method": "runtime" + }, + { + "inner": "subflow.SVG_IO_DISK_QUEUE_LENGTH", + "outer": "runtime.SVG_IO_DISK_QUEUE_LENGTH", + "method": "runtime" + } + ] + }, + "wires": [ + [ + "6ef7dac2-0a1d-4e75-b73a-33c6572d7d62" + ] + ] + }, + { + "id": "6ef7dac2-0a1d-4e75-b73a-33c6572d7d62", + "isIntegrationSubflowNode": false, + "type": "subflow", + "label": "Skill: Generate Insight", + "description": "Generate an HTML formatted insight with charts, that is ready to be displayed in ServiceNow or anywhere else.", + "properties": { + "x": 2264.633288182748, + "y": 403.4161911155172, + "debug": false, + "configurationId": "63ff53ff-b315-4915-bb88-2c7abf9ec24f", + "in": [ + { + "inner": "subflow.RiverbedIQAssist_Connector", + "method": "connector" + }, + { + "inner": "subflow.Findings_HEALTH", + "outer": "runtime.Findings_HEALTH", + "method": "runtime", + "isUnset": false + }, + { + "inner": "subflow.Findings_IO", + "outer": "runtime.Findings_IO", + "method": "runtime", + "isUnset": false + }, + { + "inner": "subflow.Findings_WIFI", + "outer": "runtime.Findings_WIFI", + "method": "runtime", + "isUnset": false + }, + { + "inner": "subflow.Findings_CPU_MEM", + "outer": "runtime.Findings_CPU_MEM", + "method": "runtime", + "isUnset": false + }, + { + "inner": "subflow.Findings_NPM", + "outer": "runtime.Findings_NPM", + "method": "runtime", + "isUnset": false + }, + { + "inner": "subflow.SVG_WIFI_Signal_Strength", + "outer": "runtime.SVG_WIFI_Signal_Strength", + "method": "runtime", + "isUnset": false + }, + { + "inner": "subflow.SVG_CPU_MEM", + "outer": "runtime.SVG_CPU_MEM", + "method": "runtime", + "isUnset": false + }, + { + "inner": "subflow.SVG_WIFI_Transmission_Speed", + "outer": "runtime.SVG_WIFI_Transmission_Speed", + "method": "runtime", + "isUnset": false + }, + { + "inner": "subflow.SVG_NPM_Traffic", + "outer": "runtime.SVG_NPM_Traffic", + "method": "runtime", + "isUnset": false + }, + { + "inner": "subflow.SVG_NPM_RTCC", + "outer": "runtime.SVG_NPM_RTCC", + "method": "runtime", + "isUnset": false + }, + { + "inner": "subflow.SVG_IO_RATE_RW", + "outer": "runtime.SVG_IO_RATE_RW", + "method": "runtime", + "isUnset": false + }, + { + "inner": "subflow.SVG_IO_DISK_QUEUE_LENGTH", + "outer": "runtime.SVG_IO_DISK_QUEUE_LENGTH", + "method": "runtime", + "isUnset": false + }, + { + "inner": "subflow.Format", + "outer": "" + } + ], + "out": [ + { + "inner": "subflow.Successful", + "outer": "runtime.Successful", + "method": "runtime" + }, + { + "inner": "subflow.Error_Message", + "outer": "runtime.Error_Message", + "method": "runtime" + }, + { + "inner": "subflow.Insight", + "outer": "runtime.Insight", + "method": "runtime" + } + ] + }, + "wires": [ + [ + "eb8791c5-892d-492e-a505-0b011f292841", + "a99a2434-229a-42e6-bef8-6fde85165089" + ] + ] + }, + { + "id": "b015071c-9c7e-4a8d-9bea-be3365337436", + "isIntegrationSubflowNode": false, + "type": "subflow", + "label": "Fetch User Endpoint (Aternity EUEM)", + "description": "This subflow takes one or more device names as a comma separated list and outputs User Device objects.", + "properties": { + "x": 1266.5092479938187, + "y": 405, + "debug": false, + "configurationId": "352073eb-8d20-4cab-9f7f-db36234a1f51", + "in": [ + { + "inner": "subflow.Aternity_Connector", + "method": "connector" + }, + { + "inner": "subflow.Device_Name_List", + "outer": "runtime.User_Endpoint_Name", + "method": "runtime", + "isUnset": false + } + ], + "out": [] + }, + "wires": [ + [ + "7d3a7296-44da-4f29-bf4f-87f579f5696e", + "ab937ac1-c525-40b1-a783-b6224c86b755" + ] + ] + }, + { + "id": "20829265-d406-427b-bfda-74b371d2c196", + "isIntegrationSubflowNode": false, + "type": "data_ocean_dynamic", + "label": "Get inventory details (Data Store)", + "description": "", + "properties": { + "x": 1773.7964187882017, + "y": 400, + "objType": "aternity_device_inventory.traffic", + "timeSeries": false, + "limit": 10, + "topBy": [ + { + "id": "boot_last_timestamp", + "direction": "desc" + } + ], + "groupBy": [ + "user_device.device_name" + ], + "filters": { + "userDevice": [ + "$node:b015071c-9c7e-4a8d-9bea-be3365337436.user_device" + ] + }, + "debug": false + }, + "wires": [ + [ + "8f867e03-1735-4570-852b-b2f4ced3d458" + ] + ] + }, + { + "id": "6f97675e-6163-4ceb-be53-9c560ce3fc0b", + "isIntegrationSubflowNode": false, + "type": "subflow", + "label": "ServiceNow: Get Incident Details", + "description": "Returns details of a ServiceNow incident given a sys ID or an incident number.", + "properties": { + "x": 738.7508315445839, + "y": 400, + "debug": false, + "configurationId": "c72fa9e8-fc68-40ab-a20e-62a930940a61", + "in": [ + { + "inner": "subflow.ServiceNow_Connector", + "outer": "00000000-0000-0000-0000-000000000000", + "method": "connector", + "isUnset": false + }, + { + "inner": "subflow.Incident_Identifier_Type", + "outer": "sys_id", + "method": "static", + "isUnset": false + }, + { + "inner": "subflow.Incident_Identifier", + "outer": "runtime.ServiceNow_Incident_Sys_Id", + "method": "runtime", + "isUnset": false + }, + { + "inner": "subflow.Custom_Fields", + "outer": "runtime.ServiceNow_Incident_Custom_Fields", + "method": "runtime" + } + ], + "out": [ + { + "inner": "subflow.Successful", + "outer": "runtime.Successful", + "method": "runtime" + }, + { + "inner": "subflow.Error_Message", + "outer": "runtime.Error_Message", + "method": "runtime" + }, + { + "inner": "subflow.CMDB_CI", + "outer": "runtime.CMDB_CI", + "method": "runtime" + }, + { + "inner": "subflow.Problem_ID", + "outer": "runtime.Problem_ID", + "method": "runtime" + }, + { + "inner": "subflow.Caller_ID", + "outer": "runtime.Caller_ID", + "method": "runtime" + }, + { + "inner": "subflow.Caller_Username", + "outer": "runtime.Caller_Username", + "method": "runtime" + }, + { + "inner": "subflow.Caller_Display_Name", + "outer": "runtime.Caller_Display_Name", + "method": "runtime" + }, + { + "inner": "subflow.Caller_Email", + "outer": "runtime.Caller_Email", + "method": "runtime" + } + ] + }, + "wires": [ + [ + "41289d27-6f06-4426-85ea-581916a284a1" + ] + ] + }, + { + "id": "ab937ac1-c525-40b1-a783-b6224c86b755", + "isIntegrationSubflowNode": false, + "type": "decision", + "label": "Found?", + "description": "", + "properties": { + "x": 1477.509247993817, + "y": 400, + "dataType": "SUMMARY", + "inputType": "aternity_device_inventory.traffic", + "outputs": [ + { + "id": "o08178", + "passedData": "MATCHED", + "expression": { + "id": "o4922", + "type": "block", + "operation": "AND", + "conditions": [ + { + "type": "condition", + "id": "c-1760717486679", + "category": "input.rows", + "key": "count", + "op": "GT", + "value": "0" + } + ] + }, + "label": "Found" + }, + { + "id": "o17552", + "passedData": "MATCHED", + "expression": { + "id": "o5580", + "type": "block", + "operation": "AND", + "conditions": [ + { + "type": "condition", + "id": "c-1760717505733", + "category": "input.rows", + "key": "count", + "op": "EQ", + "value": "0" + } + ] + }, + "label": "Not Found" + } + ], + "debug": false + }, + "wires": [ + [ + "20829265-d406-427b-bfda-74b371d2c196" + ], + [ + "1dfe1b8b-bcac-4ef0-a26c-ed60a0b8b040", + "810f6faa-a357-490e-9a71-c9b80bb76cd8" + ] + ] + }, + { + "id": "810f6faa-a357-490e-9a71-c9b80bb76cd8", + "isIntegrationSubflowNode": false, + "type": "subflow", + "label": "ServiceNow: Post Data not found", + "description": "", + "properties": { + "x": 2019.509247993817, + "y": 520, + "debug": false, + "configurationId": "f4c88032-d05f-4d27-ad96-a1f844c66ba5", + "in": [ + { + "inner": "subflow.Connector", + "outer": "00000000-0000-0000-0000-000000000000", + "method": "connector", + "isUnset": false + }, + { + "inner": "subflow.Record_Type", + "outer": "incident", + "method": "static", + "isUnset": false + }, + { + "inner": "subflow.Sys_Id", + "outer": "runtime.ServiceNow_Incident_Sys_Id", + "method": "runtime", + "isUnset": false + }, + { + "inner": "subflow.Content", + "outer": "Data not found. Please check the User Endpoint information", + "method": "static", + "isUnset": false + }, + { + "inner": "subflow.Visibility", + "outer": "work_notes", + "method": "static", + "isUnset": false + }, + { + "inner": "subflow.Format", + "outer": "html", + "method": "static" + } + ], + "out": [ + { + "inner": "subflow.Successful", + "outer": "" + }, + { + "inner": "subflow.Error_Message", + "outer": "" + } + ] + }, + "wires": [] + }, + { + "id": "1dfe1b8b-bcac-4ef0-a26c-ed60a0b8b040", + "isIntegrationSubflowNode": false, + "type": "rvbd_ui_text", + "label": "Display Error 1", + "description": "", + "properties": { + "x": 2016.509247993817, + "y": 680, + "title": "Error message", + "row": "1", + "notes": "

Data not found. Please check the User Endpoint information.

", + "debug": false + }, + "wires": [] + }, + { + "id": "41289d27-6f06-4426-85ea-581916a284a1", + "isIntegrationSubflowNode": false, + "type": "set_primitive_variables", + "label": "Extract Endpoint Name from Incident Custom Field (Endpoint)", + "description": "", + "properties": { + "x": 1000.2558208120836, + "y": 400, + "variables": [ + { + "name": "runtime.User_Endpoint_Name" + } + ], + "transformTemplate": "{\n\"runtime.User_Endpoint_Name\": \"{{node_input.output[\"data\"][0].keys[\"Custom1\"]}}\"\n}", + "debug": false + }, + "wires": [ + [ + "b015071c-9c7e-4a8d-9bea-be3365337436" + ] + ] + } + ], + "lastUpdatedUser": "Runbook Export", + "createdByUser": "Runbook Export", + "eTag": "W/\"datetime'2025-10-27T08%3A00%3A41.6803905Z'\"", + "variant": "incident", + "seriesId": "9478d2fe-9bf4-4c3d-adee-53897b21410d", + "version": "1.0", + "otherVersions": null, + "isScheduled": false, + "isValidated": true, + "isProprietary": false + }, + "dependencies": [ + { + "id": "f4c88032-d05f-4d27-ad96-a1f844c66ba5", + "type": "subflow", + "name": "ServiceNow: Post Comment", + "globalId": "ServiceNow::Post_Comment", + "originalVersion": "1.0.4", + "nodeLabel": "ServiceNow: Post Comment", + "sourceLocation": "integrationLibrary", + "sourcePackageId": "ServiceNow" + }, + { + "id": "663d7c90-2b9e-4500-82eb-f4d9361140b6", + "type": "subflow", + "name": "Skill: Diagnose User Endpoint", + "globalId": "Aternity::Diagnose_User_Endpoint", + "originalVersion": "1.0.1", + "nodeLabel": "Skill: Diagnose User Endpoint", + "sourceLocation": "integrationLibrary", + "sourcePackageId": "Aternity" + }, + { + "id": "63ff53ff-b315-4915-bb88-2c7abf9ec24f", + "type": "subflow", + "name": "Skill: Generate Insight", + "globalId": "RiverbedIQAssist::Generate_Insight", + "originalVersion": "1.0.2", + "nodeLabel": "Skill: Generate Insight", + "sourceLocation": "integrationLibrary", + "sourcePackageId": "RiverbedIQAssist" + }, + { + "id": "352073eb-8d20-4cab-9f7f-db36234a1f51", + "type": "subflow", + "name": "Aternity: Create User Device", + "globalId": "Aternity::Create_User_Device", + "originalVersion": "1.0.2", + "nodeLabel": "Fetch User Endpoint (Aternity EUEM)", + "sourceLocation": "integrationLibrary", + "sourcePackageId": "Aternity" + }, + { + "id": "c72fa9e8-fc68-40ab-a20e-62a930940a61", + "type": "subflow", + "name": "ServiceNow: Get Incident Details", + "globalId": "ServiceNow::Get_Incident_Details", + "originalVersion": "3.0.0", + "nodeLabel": "ServiceNow: Get Incident Details", + "sourceLocation": "integrationLibrary", + "sourcePackageId": "ServiceNow" + }, + { + "id": "f4c88032-d05f-4d27-ad96-a1f844c66ba5", + "type": "subflow", + "name": "ServiceNow: Post Comment", + "globalId": "ServiceNow::Post_Comment", + "originalVersion": "1.0.4", + "nodeLabel": "ServiceNow: Post Data not found", + "sourceLocation": "integrationLibrary", + "sourcePackageId": "ServiceNow" + } + ], + "token": "BuxPrzQZ5qcz9p0/YNwDW+ZrE6GTXZFxp+U6n04yTgs=" +} \ No newline at end of file diff --git a/IQ/Automation/External Runbooks/105-riverbed-iq-assist-for-servicenow-incident-caller-endpoint-diagnostic/Riverbed IQ Assist for ServiceNow - Incident - Caller Endpoint Diagnostic.json b/IQ/Automation/External Runbooks/105-riverbed-iq-assist-for-servicenow-incident-caller-endpoint-diagnostic/Riverbed IQ Assist for ServiceNow - Incident - Caller Endpoint Diagnostic.json index 88ace83..2f5178b 100644 --- a/IQ/Automation/External Runbooks/105-riverbed-iq-assist-for-servicenow-incident-caller-endpoint-diagnostic/Riverbed IQ Assist for ServiceNow - Incident - Caller Endpoint Diagnostic.json +++ b/IQ/Automation/External Runbooks/105-riverbed-iq-assist-for-servicenow-incident-caller-endpoint-diagnostic/Riverbed IQ Assist for ServiceNow - Incident - Caller Endpoint Diagnostic.json @@ -2,7 +2,7 @@ "runbook": { "id": "25ec2bb3-fc1a-49e3-a9d0-05544ee50dea", "createdTime": "1760882179.402161200", - "lastUpdatedTime": "1760955091.472858400", + "lastUpdatedTime": "1761549277.461251500", "factoryResourceName": null, "isFactory": false, "name": "Riverbed IQ Assist for ServiceNow - Incident - Caller Endpoint Diagnostic", @@ -302,7 +302,7 @@ } ], "transformTemplate": "{\n \"runtime.ServiceNow_API_Base_URL\" : \"https://{{variables[\"runtime.ServiceNow_ENV\"]}}.service-now.com\",\n \"runtime.ServiceNow_Incident_Sys_Id\": \"{{trigger[\"requestBody\"][\"recordID\"]}}\",\n \"runtime.ServiceNow_User_Data\": \"{{trigger[\"requestBody\"][\"user\"]}}\",\n \"runtime.ServiceNow_Configuration_Item\": \"{{trigger[\"requestBody\"][\"ciName\"]}}\",\n \"runtime.ServiceNow_Configuration_Item_Sys_Id\": \"{{trigger[\"requestBody\"][\"ciID\"]}}\",\n \"runtime.ServiceNow_Incident_Number\": \"{{trigger[\"requestBody\"][\"recordNumber\"]}}\"\n}\n", - "debug": true + "debug": false }, "wires": [ [ @@ -319,7 +319,7 @@ "properties": { "x": 226, "y": 530, - "comment": "

Riverbed IQ Assist for ServiceNow

Runbook for Incident in ServiceNow: Caller Endpoint Diagnostic

version: 2025-10-20-2

", + "comment": "

Riverbed IQ Assist for ServiceNow

Runbook for Incident in ServiceNow: Caller Endpoint Diagnostic

version: 2025-10-27-1

", "debug": false }, "wires": [] @@ -860,8 +860,8 @@ "properties": { "x": 640, "y": 400, - "debug": true, - "configurationId": "3eb3f06e-4d0f-4f35-8197-7895de70a265", + "debug": false, + "configurationId": "c72fa9e8-fc68-40ab-a20e-62a930940a61", "in": [ { "inner": "subflow.ServiceNow_Connector", @@ -880,6 +880,10 @@ "outer": "runtime.ServiceNow_Incident_Sys_Id", "method": "runtime", "isUnset": false + }, + { + "inner": "subflow.Custom_Fields", + "outer": "" } ], "out": [ @@ -998,7 +1002,7 @@ ], "lastUpdatedUser": "Runbook Export", "createdByUser": "Runbook Export", - "eTag": "W/\"datetime'2025-10-20T10%3A11%3A31.4802777Z'\"", + "eTag": "W/\"datetime'2025-10-27T07%3A14%3A37.4726135Z'\"", "variant": "incident", "seriesId": "25ec2bb3-fc1a-49e3-a9d0-05544ee50dea", "version": "1.0", @@ -1069,15 +1073,15 @@ "sourcePackageId": "Aternity" }, { - "id": "3eb3f06e-4d0f-4f35-8197-7895de70a265", + "id": "c72fa9e8-fc68-40ab-a20e-62a930940a61", "type": "subflow", "name": "ServiceNow: Get Incident Details", "globalId": "ServiceNow::Get_Incident_Details", - "originalVersion": "2.0.2", + "originalVersion": "3.0.0", "nodeLabel": "ServiceNow: Get Incident Details", "sourceLocation": "integrationLibrary", "sourcePackageId": "ServiceNow" } ], - "token": "gbW7J7inCg/pszZ4wG3fDtX14AV4Ym7W5wpmMw6lL+Q=" + "token": "bGjfYk06zcLD4dTriCfA9/XM0rmcWvRQnZKHln6vv4g=" } \ No newline at end of file diff --git a/IQ/Automation/External Runbooks/106-riverbed-iq-assist-for-servicenow-incident-find-caller-endpoint/Riverbed IQ Assist for ServiceNow - Incident - Find Caller Endpoint.json b/IQ/Automation/External Runbooks/106-riverbed-iq-assist-for-servicenow-incident-find-caller-endpoint/Riverbed IQ Assist for ServiceNow - Incident - Find Caller Endpoint.json index 5e74bb8..72e1b1a 100644 --- a/IQ/Automation/External Runbooks/106-riverbed-iq-assist-for-servicenow-incident-find-caller-endpoint/Riverbed IQ Assist for ServiceNow - Incident - Find Caller Endpoint.json +++ b/IQ/Automation/External Runbooks/106-riverbed-iq-assist-for-servicenow-incident-find-caller-endpoint/Riverbed IQ Assist for ServiceNow - Incident - Find Caller Endpoint.json @@ -2,7 +2,7 @@ "runbook": { "id": "a0063bb8-2a49-472f-8412-0b23a0e8585e", "createdTime": "1760964742.895353200", - "lastUpdatedTime": "1760965047.825387300", + "lastUpdatedTime": "1761549354.554637900", "factoryResourceName": null, "isFactory": false, "name": "Riverbed IQ Assist for ServiceNow - Incident - Find Caller Endpoint", @@ -319,7 +319,7 @@ "properties": { "x": 226, "y": 530, - "comment": "

Riverbed IQ Assist for ServiceNow

Runbook for Incident in ServiceNow: Find Caller Endpoint

version: 2025-10-20-1

", + "comment": "

Riverbed IQ Assist for ServiceNow

Runbook for Incident in ServiceNow: Find Caller Endpoint

version: 2025-10-27-1

", "debug": false }, "wires": [] @@ -561,8 +561,8 @@ "properties": { "x": 640, "y": 400, - "debug": true, - "configurationId": "3eb3f06e-4d0f-4f35-8197-7895de70a265", + "debug": false, + "configurationId": "c72fa9e8-fc68-40ab-a20e-62a930940a61", "in": [ { "inner": "subflow.ServiceNow_Connector", @@ -581,6 +581,10 @@ "outer": "runtime.ServiceNow_Incident_Sys_Id", "method": "runtime", "isUnset": false + }, + { + "inner": "subflow.Custom_Fields", + "outer": "" } ], "out": [ @@ -699,7 +703,7 @@ ], "lastUpdatedUser": "Runbook Export", "createdByUser": "Runbook Export", - "eTag": "W/\"datetime'2025-10-20T12%3A57%3A27.83752Z'\"", + "eTag": "W/\"datetime'2025-10-27T07%3A15%3A54.5620525Z'\"", "variant": "incident", "seriesId": "a0063bb8-2a49-472f-8412-0b23a0e8585e", "version": "1.0", @@ -740,15 +744,15 @@ "sourcePackageId": "Aternity" }, { - "id": "3eb3f06e-4d0f-4f35-8197-7895de70a265", + "id": "c72fa9e8-fc68-40ab-a20e-62a930940a61", "type": "subflow", "name": "ServiceNow: Get Incident Details", "globalId": "ServiceNow::Get_Incident_Details", - "originalVersion": "2.0.2", + "originalVersion": "3.0.0", "nodeLabel": "ServiceNow: Get Incident Details", "sourceLocation": "integrationLibrary", "sourcePackageId": "ServiceNow" } ], - "token": "9RyGwEv4VTKFVd4ADfXiXUaJIlAfEoN2qRBdY2Lp4jY=" + "token": "B7hJ0KlDOORXkOVXbn4bBTmVm6eeUs2+qryE2PAuyx8=" } \ No newline at end of file