From 5eff4b5dfd8e5bc21913f4c60a447ea53d32d923 Mon Sep 17 00:00:00 2001 From: admin Date: Thu, 2 Oct 2025 20:14:24 -0700 Subject: [PATCH 1/2] Adds a ServiceNow Flow Designer Action that cleans CSV file attachments by removing a specified number of header lines. The script fetches the target attachment, skips the requested number of lines, and outputs the cleaned CSV content. Optionally, it can write back the cleaned data as a new attachment. Handles missing content and errors gracefully. Inputs(attachmentSysId, linesToSkip,writeBackAsAttachment, parentTable, parentSysId, newFileName) Outputs (cleanedCSV, cleanedAttachmentSysId) --- b812ceb69337a210633378917cba10bc/README.md | 2 +- b812ceb69337a210633378917cba10bc/checksum.txt | 2 +- ...ition_b01a4d6a839cb6107ffb1630ceaad395.xml | 4387 +++++++++++++++++ 3 files changed, 4389 insertions(+), 2 deletions(-) create mode 100644 b812ceb69337a210633378917cba10bc/update/sys_hub_action_type_definition_b01a4d6a839cb6107ffb1630ceaad395.xml diff --git a/b812ceb69337a210633378917cba10bc/README.md b/b812ceb69337a210633378917cba10bc/README.md index 05cd6fa..1aa7e3e 100644 --- a/b812ceb69337a210633378917cba10bc/README.md +++ b/b812ceb69337a210633378917cba10bc/README.md @@ -24,4 +24,4 @@ If you find yourself unable to import your repository due to the presence of fil 2.2 Activate/install all required dependencies 2.3 Re-import the application from source control Currently listed dependencies: - * + * ServiceNow IntegrationHub Enterprise Pack Installer diff --git a/b812ceb69337a210633378917cba10bc/checksum.txt b/b812ceb69337a210633378917cba10bc/checksum.txt index 918923c..92dc76f 100644 --- a/b812ceb69337a210633378917cba10bc/checksum.txt +++ b/b812ceb69337a210633378917cba10bc/checksum.txt @@ -1 +1 @@ -hv7WDZwXJOgmT_fTT4pk_cxZzPBr1GmQzFQDuDbf0vfMRrq0tcM1N9AyMdobTlCJQ1jMrOw7UvCiqNXIQ_xyswjjFxH9L-G8jSN_Cv4Cb2A6bs-7BS30n5EZfCUsa3_4IkHq04BmSigCsFKdne-BnmohY3uJIHtilCI2hSzITCDPbZw_0wSgVr1pi4mcXpdrr0UHINXUxXrN6o7a2DKDSuPQZ2wduIwG6lxSXspAXEDtiVzzWYqajG6D4IsY5SPd_Xi0SUyNGksbn9IRtZCQ0DIraibc5vghlZBneg578Qn_vQJl0E594LaoMHWgdXL2D8Txfq-e40OFdHRKiTgJMdrcP6GjWGPiapT6ZBfFtXlcUQ5mQmljNbY8n4EZbFFye3ZmwiAdN_oa34aAyVJ_YCJpYspxHFzLQTeme2-Tf0-zz_XibpNZZOwh9nQMF6qAgkban8BpMmZ0w0r21ELQHok0J-kphR50v64arrhSvtXiOela73HiLN6gZTTNnKZhOSnAhTyyfz5P07XQaiZYyUgTVwUcseBhkniBRagpD6iLPQj5y2KkABPrTWuxTFEBwhboG52JzYP6rQT55DMd7mCjiXO6f-KDlTCzl_6wTLTQpcUrdsvKPqL6hvZYTm-61D6TtIxreRsmejnp2PqLGJvhgiv5AZBWJq4aXV6cqBI \ No newline at end of file +RatBKik3FOxKB_5oI2lWdYUzRHvggTAcv4oM7_ABaaEndq3qGUI429DMrJfeDHS7_Y26cLAW7QBlzSRIff6Hx1hIaNlMhRuQpAeKvyXRE5YlBg64SbBsukCusnlejGixuusrFM4Rbn03lBR-pnjc5djOz3-vkbRirTTwUDxP-Ue-e_Q6N75RIAPKvVm9VPTcRmjIHf2WxPfmmy660cgp4sLgG-A8cvtEt3vdSrzqqsKOxyX6lz6yZYzwBxolUN2THrKBHbfvgTS5z92hhOD0LAs3YnMeikeWPXYlJs6sMNuHQe6Hsf4YuoosAW9d1xE_d0EiD_gqLSqwLg397UxdkF_3i3ymXvMi1vp97iHToro8PhD1ALWKVsH3-9JLCqDXaQhpzkbPCn1FoMkVhJq7AjdfLjF5O4z5ps0mKYhdVLpfZyJzNh1yjfhVRIr9IIJq4kqr8HJDmDpljZQoTURdialBgMfdXEMJS70R7WGV8fqZuTg3L6NSBSi00DkYmsvtHdAxEed8rtDNzKEqIVOtoS2WV538YnAwkXytykxLin5VkCFzty-EBQtWzEkL19MIvufOI_yQ3S8oQx3LTah6Npouw3R69T6FvWNsQ3xVGyfwD8EMEeBfilgAab4Uf61n8WCUA7aV8_vMn3gNsgOHtbfnOUE-wXsVcf_ibxJbaIY \ No newline at end of file diff --git a/b812ceb69337a210633378917cba10bc/update/sys_hub_action_type_definition_b01a4d6a839cb6107ffb1630ceaad395.xml b/b812ceb69337a210633378917cba10bc/update/sys_hub_action_type_definition_b01a4d6a839cb6107ffb1630ceaad395.xml new file mode 100644 index 0000000..4f1e850 --- /dev/null +++ b/b812ceb69337a210633378917cba10bc/update/sys_hub_action_type_definition_b01a4d6a839cb6107ffb1630ceaad395.xml @@ -0,0 +1,4387 @@ + + + public + + + + true + Adds a ServiceNow Flow Designer Action that cleans CSV file attachments by removing a specified number of header lines. The script fetches the target attachment, skips the requested number of lines, and outputs the cleaned CSV content. Optionally, it + {labelCacheCleanUpExecuted=true} + 28000 + false + + + + Adds a ServiceNow Flow Designer Action that cleans CSV file attachments by removing a specified number of header lines. The script fetches the target attachment, skips the requested number of lines, and outputs the cleaned CSV content. Optionally, it can write back the cleaned data as a new attachment. Handles missing content and errors gracefully. + + false + strip_top_lines_from_csv_file + [{"name":"{{action.attachmentsysid}}","label":"action➛attachmentSysId","type":"action","ref":"","reference_display":"","base_type":"GUID","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.linestoskip}}","label":"action➛linesToSkip","type":"action","ref":"","reference_display":"","base_type":"integer","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.writebackasattachment}}","label":"action➛writeBackAsAttachment","type":"action","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.parenttable}}","label":"action➛parentTable","type":"action","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.parentsysid}}","label":"action➛parentSysId","type":"action","ref":"","reference_display":"","base_type":"GUID","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.newfilename}}","label":"action➛newFileName","type":"action","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{step[eed81560-b6b4-4063-8519-f7ff7d63677e].cleanedcsv}}","label":"step➛Script step➛cleanedCSV","type":"step","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{"uiTypeLabel":"String","element_mapping_provider":"com.glide.flow_design.action.data.FlowDesignVariableMapper","uiType":"string","uiUniqueId":"96a5ab1a-11e6-491d-97a4-68b8af1d0e33"}},{"name":"{{step[eed81560-b6b4-4063-8519-f7ff7d63677e].cleanedattachmentsysid}}","label":"step➛Script step➛cleanedAttachmentSysId","type":"step","ref":"","reference_display":"","base_type":"GUID","parent_table_name":"","column_name":"","choices":null,"attributes":{"uiTypeLabel":"Sys ID (GUID)","element_mapping_provider":"com.glide.flow_design.action.data.FlowDesignVariableMapper","uiType":"GUID","uiUniqueId":"b346f821-2b38-4769-ae3d-1b44df5f2944"}}] + 66fb892e839cb6107ffb1630ceaad33c + + Strip top lines from csv file + + + + false + published + sys_hub_action_type_definition + admin + 2025-10-03 03:05:16 + global + / + b01a4d6a839cb6107ffb1630ceaad395 + 10 + Strip top lines from csv file + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + sys_hub_action_type_definition_b01a4d6a839cb6107ffb1630ceaad395 + admin + 2025-10-03 03:13:37 + false + + + + + + sys_hub_action_type_definition + b01a4d6a839cb6107ffb1630ceaad395 + 2 + sys_variable_value + admin + 2025-10-03 03:06:43 + 756ac5aa839cb6107ffb1630ceaad3a5 + 0 + admin + 2025-10-03 03:06:43 + 0 + 316ac5aa839cb6107ffb1630ceaad39c + + + sys_hub_action_type_definition + b01a4d6a839cb6107ffb1630ceaad395 + 1 + sys_variable_value + admin + 2025-10-03 03:06:43 + bd6ac5aa839cb6107ffb1630ceaad3a5 + 0 + admin + 2025-10-03 03:06:43 + {"version":"1.0","complexObject":{"code":{"$cv":{"$c":"java.lang.String","$v":""}},"message":{"$cv":{"$c":"java.lang.String","$v":""}}},"complexObjectSchema":{"FlowDesigner:FDACTIONSTATUS":{"code":"Integer","code.$field_facets":{"SimpleMapFacet":"{\"uiTypeLabel\":\"Integer\",\"read_only\":\"false\",\"hint\":\"\",\"uiType\":\"integer\",\"default_value\":\"\",\"label\":\"Code\",\"action_error_output\":\"true\",\"mandatory\":\"false\",\"order\":\"1\",\"max_length\":\"40\"}"},"message":"String","message.$field_facets":{"SimpleMapFacet":"{\"uiTypeLabel\":\"String\",\"read_only\":\"false\",\"hint\":\"\",\"uiType\":\"string\",\"default_value\":\"\",\"label\":\"Message\",\"action_error_output\":\"true\",\"mandatory\":\"false\",\"order\":\"2\",\"max_length\":\"4000\"}"}},"FlowDesigner:FDACTIONSTATUS.$type_facets":{"SimpleMapFacet":"{\"default_value\":\"\",\"label\":\"Action Status\",\"action_error_output\":\"true\",\"mandatory\":\"false\",\"uiUniqueId\":\"4adfb7bc-9d67-498d-88d0-8d6c3d584fed\",\"uiTypeLabel\":\"Object\",\"co_type_name\":\"FDACTIONSTATUS\",\"element_mapping_provider\":\"com.glide.flow_design.action.data.FlowDesignVariableMapper\",\"read_only\":\"false\",\"hint\":null,\"uiType\":\"object\",\"order\":\"1\",\"max_length\":\"65000\"}"}},"serializationFormat":"JSON"} + 756ac5aa839cb6107ffb1630ceaad397 + + + + cleanedattachmentsysid + b01a4d6a839cb6107ffb1630ceaad395 + admin + 2025-10-03 03:13:31 + 15fb492e839cb6107ffb1630ceaad385 + 0 + admin + 2025-10-03 03:13:31 + var__m_sys_hub_action_output_b01a4d6a839cb6107ffb1630ceaad395
+ {{step[eed81560-b6b4-4063-8519-f7ff7d63677e].cleanedattachmentsysid}} +
+ + cleanedcsv + b01a4d6a839cb6107ffb1630ceaad395 + admin + 2025-10-03 03:13:31 + d5fb492e839cb6107ffb1630ceaad385 + 0 + admin + 2025-10-03 03:13:31 + var__m_sys_hub_action_output_b01a4d6a839cb6107ffb1630ceaad395
+ {{step[eed81560-b6b4-4063-8519-f7ff7d63677e].cleanedcsv}} +
+ + __action_status__ + b01a4d6a839cb6107ffb1630ceaad395 + admin + 2025-10-03 03:06:43 + f16ac5aa839cb6107ffb1630ceaad3a5 + 0 + admin + 2025-10-03 03:06:43 + var__m_sys_hub_action_output_b01a4d6a839cb6107ffb1630ceaad395
+ +
+ + __dont_treat_as_error__ + b01a4d6a839cb6107ffb1630ceaad395 + admin + 2025-10-03 03:06:43 + 3d6ac5aa839cb6107ffb1630ceaad3a4 + 0 + admin + 2025-10-03 03:06:43 + var__m_sys_hub_action_output_b01a4d6a839cb6107ffb1630ceaad395
+ +
+ + + b01a4d6a839cb6107ffb1630ceaad395 + eed81560-b6b4-4063-8519-f7ff7d63677e + 1 + + + + + + + 1 + +
+ 106afb6647032200b4fad7527c9a71e7 + admin + 2025-10-03 03:08:36 + 5dda41ea839cb6107ffb1630ceaad34b + 2 + b812ceb69337a210633378917cba10bc + admin + 2025-10-03 03:12:57 + + + + sys_hub_step_instance + 5dda41ea839cb6107ffb1630ceaad34b + 100 + sys_variable_value + admin + 2025-10-03 03:08:37 + a5da41ea839cb6107ffb1630ceaad36f + 0 + admin + 2025-10-03 03:08:37 + + 65da41ea839cb6107ffb1630ceaad354 + + + sys_hub_step_instance + 5dda41ea839cb6107ffb1630ceaad34b + 600 + sys_variable_value + admin + 2025-10-03 03:08:37 + a9da41ea839cb6107ffb1630ceaad36d + 1 + admin + 2025-10-03 03:12:57 + (function execute(inputs, outputs) { +gs.info("[CSV Cleaner] Starting execution..."); + + var attachment = new GlideSysAttachment(); + + // Default to sys_email if parentTable not provided + var parentTable = inputs.parentTable || "sys_email"; + var parentSysId = inputs.parentSysId || inputs.attachmentSysId; + + // Get attachments for the record + var agr = attachment.getAttachments(parentTable, parentSysId); + + while (agr.next()) { + // Only process the specific attachment + if (agr.getUniqueValue() === inputs.attachmentSysId) { + + + // Get content as a string (safe in scoped apps) + var content = attachment.getContent(agr); + if (!content) { + gs.warn("[CSV Cleaner] Attachment is empty."); + outputs.cleanedcsv = ""; + return; // exit the script immediately + } + + gs.info("[CSV Cleaner] Original content length: " + content.length); + + // Split content into lines + var lines = content.split(/\r?\n/); + gs.info("[CSV Cleaner] Total lines in file: " + lines.length); + + // Remove first X lines + var skip = parseInt(inputs.linesToSkip, 10) || 0; + gs.info("[CSV Cleaner] Skipping first " + skip + " lines..."); + var cleanedCSV = lines.slice(skip).join("\n"); + gs.info("[CSV Cleaner] Cleaned content length: " + cleanedCSV.length); + + // Return cleaned CSV as output + outputs.cleanedcsv = cleanedCSV; + + // Optional: write back as new attachment + if (inputs.writeBackAsAttachment == "true") { + var newFileName = inputs.newFileName || "cleaned.csv"; + gs.info( + "[CSV Cleaner] Writing cleaned CSV as new attachment: " + newFileName + ); + + var gr = new GlideRecord(parentTable); + if (gr.get(parentSysId)) { + var cleanedAttachmentSysId = attachment.write( + gr, + newFileName, + "text/csv", + cleanedCSV + ); + gs.info( + "[CSV Cleaner] New attachment created with sys_id: " + + cleanedAttachmentSysId + ); + outputs.cleanedattachmentsysid = cleanedAttachmentSysId; + } else { + gs.error( + "[CSV Cleaner] Parent record not found: " + + parentTable + + " / " + + parentSysId + ); + } + } else { + gs.info( + "[CSV Cleaner] Write-back disabled. Returning only cleanedCSV output." + ); + } + + // Exit script since the target attachment is processed + gs.info("[CSV Cleaner] Attachment processed. Exiting script."); + return; + } + } + + gs.warn( + "[CSV Cleaner] Target attachment not found: " + inputs.attachmentSysId + ); +})(inputs, outputs); + + 71aa7f6647032200b4fad7527c9a719b + + + sys_hub_step_instance + 5dda41ea839cb6107ffb1630ceaad34b + 400 + sys_variable_value + admin + 2025-10-03 03:08:37 + e5da41ea839cb6107ffb1630ceaad36d + 0 + admin + 2025-10-03 03:08:37 + 35aa573fd7802200bdbaee5b5e610375 + f5e56d79b3101300176b051a16a8dce4 + + + + application + 5dda41ea839cb6107ffb1630ceaad34b + admin + 2025-10-03 03:08:37 + a1da41ea839cb6107ffb1630ceaad36d + 0 + admin + 2025-10-03 03:08:37 + var__m_sys_flow_step_definition_input_106afb6647032200b4fad7527c9a71e7
+ +
+ + attachmentSysId + 5dda41ea839cb6107ffb1630ceaad34b + admin + 2025-10-03 03:08:37 + 29da41ea839cb6107ffb1630ceaad36e + 0 + admin + 2025-10-03 03:08:37 + var__m_sys_hub_step_ext_input_5dda41ea839cb6107ffb1630ceaad34b
+ {{action.attachmentsysid}} +
+ + linesToSkip + 5dda41ea839cb6107ffb1630ceaad34b + admin + 2025-10-03 03:08:37 + e9da41ea839cb6107ffb1630ceaad36e + 0 + admin + 2025-10-03 03:08:37 + var__m_sys_hub_step_ext_input_5dda41ea839cb6107ffb1630ceaad34b
+ {{action.linestoskip}} +
+ + newFileName + 5dda41ea839cb6107ffb1630ceaad34b + admin + 2025-10-03 03:08:37 + adda41ea839cb6107ffb1630ceaad36e + 0 + admin + 2025-10-03 03:08:37 + var__m_sys_hub_step_ext_input_5dda41ea839cb6107ffb1630ceaad34b
+ {{action.newfilename}} +
+ + parentSysId + 5dda41ea839cb6107ffb1630ceaad34b + admin + 2025-10-03 03:08:37 + 65da41ea839cb6107ffb1630ceaad36e + 0 + admin + 2025-10-03 03:08:37 + var__m_sys_hub_step_ext_input_5dda41ea839cb6107ffb1630ceaad34b
+ {{action.parentsysid}} +
+ + parentTable + 5dda41ea839cb6107ffb1630ceaad34b + admin + 2025-10-03 03:08:37 + 61da41ea839cb6107ffb1630ceaad36f + 0 + admin + 2025-10-03 03:08:37 + var__m_sys_hub_step_ext_input_5dda41ea839cb6107ffb1630ceaad34b
+ {{action.parenttable}} +
+ + script + 5dda41ea839cb6107ffb1630ceaad34b + admin + 2025-10-03 03:08:37 + 65da41ea839cb6107ffb1630ceaad36d + 0 + admin + 2025-10-03 03:08:37 + var__m_sys_flow_step_definition_input_106afb6647032200b4fad7527c9a71e7
+ +
+ + writeBackAsAttachment + 5dda41ea839cb6107ffb1630ceaad34b + admin + 2025-10-03 03:08:37 + 25da41ea839cb6107ffb1630ceaad36f + 0 + admin + 2025-10-03 03:08:37 + var__m_sys_hub_step_ext_input_5dda41ea839cb6107ffb1630ceaad34b
+ {{action.writebackasattachment}} +
+ + + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=GUID,uiTypeLabel=Sys ID (GUID) + false + + + + + + + + + + + + + false + false + + + + parentSysId + false + + + + false + + + GUID + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=GUID,uiTypeLabel=Sys ID (GUID) + false + + + + + + + + + + + + + false + false + + + + attachmentSysId + false + + + + false + + + GUID + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=integer,uiTypeLabel=Integer + false + + + + + + + + + + + + + false + false + + + + linesToSkip + false + + + + false + + + integer + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String + false + + + + + + + + + + + + + false + false + + + + newFileName + false + + + + false + + + string + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String + false + + + + + + + + + + + + + false + false + + + + writeBackAsAttachment + false + + + + false + + + string + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String + false + + + + + + + + + + + + + false + false + + + + parentTable + false + + + + false + + + string + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=GUID,uiTypeLabel=Sys ID (GUID),uiUniqueId=b346f821-2b38-4769-ae3d-1b44df5f2944 + false + + + + + + + + + + + + + false + false + + + + cleanedattachmentsysid + false + + + + false + + + GUID + + false + 32 + 5dda41ea839cb6107ffb1630ceaad34b + 5dda41ea839cb6107ffb1630ceaad34b + sys_hub_step_instance + var__m_sys_hub_step_ext_output_5dda41ea839cb6107ffb1630ceaad34b + + 2 + false + false + + + + false + + + + + + false + false + sys_hub_step_ext_output + admin + 2025-10-03 03:08:36 + 21da41ea839cb6107ffb1630ceaad363 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:08:36 + false + false + false + false + false + simple + false + script + + + false + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String,uiUniqueId=96a5ab1a-11e6-491d-97a4-68b8af1d0e33 + false + + + + + + + + + + + + + false + false + + + + cleanedcsv + false + + + + false + + + string + + false + 8000 + 5dda41ea839cb6107ffb1630ceaad34b + 5dda41ea839cb6107ffb1630ceaad34b + sys_hub_step_instance + var__m_sys_hub_step_ext_output_5dda41ea839cb6107ffb1630ceaad34b + + 1 + false + false + + + + false + + + + + + false + false + sys_hub_step_ext_output + admin + 2025-10-03 03:08:36 + a1da41ea839cb6107ffb1630ceaad35f + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:08:36 + false + false + false + false + false + simple + false + script + + + false + + + + cleanedattachmentsysid + + + + en + var__m_sys_hub_step_ext_output_5dda41ea839cb6107ffb1630ceaad34b + + sys_documentation + admin + 2025-10-03 03:08:36 + 25da41ea839cb6107ffb1630ceaad365 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:08:36 + + + + + cleanedcsv + + + + en + var__m_sys_hub_step_ext_output_5dda41ea839cb6107ffb1630ceaad34b + + sys_documentation + admin + 2025-10-03 03:08:36 + 65da41ea839cb6107ffb1630ceaad362 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:08:36 + + + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String,uiUniqueId=db47c57d-9387-40e4-bf6d-4a6ca4834a51 + false + + + + + + + + + + + + + false + false + + + + writebackasattachment + false + + + + false + + + string + + false + 8000 + b01a4d6a839cb6107ffb1630ceaad395 + b01a4d6a839cb6107ffb1630ceaad395 + sys_hub_action_type_definition + var__m_sys_hub_action_input_b01a4d6a839cb6107ffb1630ceaad395 + + 3 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-03 03:06:43 + 396ac5aa839cb6107ffb1630ceaad385 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:06:43 + false + false + false + false + false + simple + false + script + + + false + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=GUID,uiTypeLabel=Sys ID (GUID),uiUniqueId=07c5fab9-ec8f-44cd-a981-6d1ea795a221 + false + + + + + + + + + + + + + false + false + + + + parentsysid + false + + + + false + + + GUID + + false + 32 + b01a4d6a839cb6107ffb1630ceaad395 + b01a4d6a839cb6107ffb1630ceaad395 + sys_hub_action_type_definition + var__m_sys_hub_action_input_b01a4d6a839cb6107ffb1630ceaad395 + + 5 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-03 03:06:43 + 3d6ac5aa839cb6107ffb1630ceaad38c + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:06:43 + false + false + false + false + false + simple + false + script + + + false + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=GUID,uiTypeLabel=Sys ID (GUID),uiUniqueId=cf416fdc-e205-417a-b5df-48605a47aacb + false + + + + + + + + + + + + + false + false + + + + attachmentsysid + false + + + + false + + + GUID + + false + 32 + b01a4d6a839cb6107ffb1630ceaad395 + b01a4d6a839cb6107ffb1630ceaad395 + sys_hub_action_type_definition + var__m_sys_hub_action_input_b01a4d6a839cb6107ffb1630ceaad395 + + 1 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-03 03:06:43 + 716ac5aa839cb6107ffb1630ceaad37d + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:06:43 + false + false + false + false + false + simple + false + script + + + false + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String,uiUniqueId=cf2927b6-2ca8-48c8-97c1-01ed83bd686d + false + + + + + + + + + + + + + false + false + + + + parenttable + false + + + + false + + + string + + false + 8000 + b01a4d6a839cb6107ffb1630ceaad395 + b01a4d6a839cb6107ffb1630ceaad395 + sys_hub_action_type_definition + var__m_sys_hub_action_input_b01a4d6a839cb6107ffb1630ceaad395 + + 4 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-03 03:06:43 + b16ac5aa839cb6107ffb1630ceaad389 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:06:43 + false + false + false + false + false + simple + false + script + + + false + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String,uiUniqueId=a00ef9d7-2609-43ec-8f0b-8d7711caa65f + false + + + + + + + + + + + + + false + false + + + + newfilename + false + + + + false + + + string + + false + 8000 + b01a4d6a839cb6107ffb1630ceaad395 + b01a4d6a839cb6107ffb1630ceaad395 + sys_hub_action_type_definition + var__m_sys_hub_action_input_b01a4d6a839cb6107ffb1630ceaad395 + + 6 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-03 03:06:43 + b56ac5aa839cb6107ffb1630ceaad390 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:06:43 + false + false + false + false + false + simple + false + script + + + false + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=integer,uiTypeLabel=Integer,uiUniqueId=c7012cec-466f-474b-9260-32af0bc6041e + false + + + + + + + + + + + + + false + false + + + + linestoskip + false + + + + false + + + integer + + false + 40 + b01a4d6a839cb6107ffb1630ceaad395 + b01a4d6a839cb6107ffb1630ceaad395 + sys_hub_action_type_definition + var__m_sys_hub_action_input_b01a4d6a839cb6107ffb1630ceaad395 + + 2 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-03 03:06:43 + bd6ac5aa839cb6107ffb1630ceaad381 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:06:43 + false + false + false + false + false + simple + false + script + + + false + + + + + true + false + false + action_error_output=true,element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=boolean,uiTypeLabel=True/False,uiUniqueId=dc83ff1e-1ac9-4aa4-a11a-76af83816c4a,visible_in_ui=false + false + + + + + + + + true + + + + + false + false + + + + __dont_treat_as_error__ + + false + + + + false + + + + boolean + + false + 40 + b01a4d6a839cb6107ffb1630ceaad395 + b01a4d6a839cb6107ffb1630ceaad395 + sys_hub_action_type_definition + var__m_sys_hub_action_output_b01a4d6a839cb6107ffb1630ceaad395 + + 4 + false + false + + + + false + + + + + + false + false + sys_hub_action_output + admin + 2025-10-03 03:06:43 + 316ac5aa839cb6107ffb1630ceaad39c + 11 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:36 + false + false + false + false + false + simple + false + script + + + false + + + + + true + false + false + action_error_output=true,co_type_name=FDACTIONSTATUS,element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=object,uiTypeLabel=Object,uiUniqueId=3baac66e-ebe9-4fad-9ba2-cc2b9948a862 + false + + + + + + + + + + + + + false + false + + + + __action_status__ + + false + + + + false + + + + string + + false + 65000 + b01a4d6a839cb6107ffb1630ceaad395 + b01a4d6a839cb6107ffb1630ceaad395 + sys_hub_action_type_definition + var__m_sys_hub_action_output_b01a4d6a839cb6107ffb1630ceaad395 + + 2 + false + false + + + + false + + + + + + false + false + sys_hub_action_output + admin + 2025-10-03 03:06:43 + 756ac5aa839cb6107ffb1630ceaad397 + 1 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:07:06 + false + false + false + false + false + simple + false + script + + + false + + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,pwd2droppable=true,uiType=string,uiTypeLabel=String,uiUniqueId=3cc0165d-ec5e-4aa2-a2bb-24a661709299 + false + + + + + + + + + + + + + false + false + + + + cleanedcsv + + false + + + + false + + + + string + + false + 8000 + b01a4d6a839cb6107ffb1630ceaad395 + b01a4d6a839cb6107ffb1630ceaad395 + sys_hub_action_type_definition + var__m_sys_hub_action_output_b01a4d6a839cb6107ffb1630ceaad395 + + 1 + false + false + + + + false + + + + + + false + false + sys_hub_action_output + admin + 2025-10-03 03:07:06 + 9b7a49aa839cb6107ffb1630ceaad374 + 1 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:31 + false + false + false + false + false + simple + false + script + + + false + + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=GUID,uiTypeLabel=Sys ID (GUID),uiUniqueId=0f8667d6-420a-44a6-b5bc-85a3706fc1c1 + false + + + + + + + + + + + + + false + false + + + + cleanedattachmentsysid + + false + + + + false + + + + GUID + + false + 32 + b01a4d6a839cb6107ffb1630ceaad395 + b01a4d6a839cb6107ffb1630ceaad395 + sys_hub_action_type_definition + var__m_sys_hub_action_output_b01a4d6a839cb6107ffb1630ceaad395 + + 3 + false + false + + + + false + + + + + + false + false + sys_hub_action_output + admin + 2025-10-03 03:07:06 + a77a49aa839cb6107ffb1630ceaad394 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:07:06 + false + false + false + false + false + simple + false + script + + + false + + + + + + + b01a4d6a839cb6107ffb1630ceaad395 + admin + 2025-10-03 03:06:43 + f16ac5aa839cb6107ffb1630ceaad3a7 + 0 + admin + 2025-10-03 03:06:43 + + + + parenttable + + + + en + var__m_sys_hub_action_input_b01a4d6a839cb6107ffb1630ceaad395 + + sys_documentation + admin + 2025-10-03 03:06:43 + 716ac5aa839cb6107ffb1630ceaad38c + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:06:43 + + + + + newfilename + + + + en + var__m_sys_hub_action_input_b01a4d6a839cb6107ffb1630ceaad395 + + sys_documentation + admin + 2025-10-03 03:06:43 + 756ac5aa839cb6107ffb1630ceaad393 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:06:43 + + + + + linestoskip + + + + en + var__m_sys_hub_action_input_b01a4d6a839cb6107ffb1630ceaad395 + + sys_documentation + admin + 2025-10-03 03:06:43 + 7d6ac5aa839cb6107ffb1630ceaad384 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:06:43 + + + + + attachmentsysid + + + + en + var__m_sys_hub_action_input_b01a4d6a839cb6107ffb1630ceaad395 + + sys_documentation + admin + 2025-10-03 03:06:43 + f16ac5aa839cb6107ffb1630ceaad381 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:06:43 + + + + + writebackasattachment + + + + en + var__m_sys_hub_action_input_b01a4d6a839cb6107ffb1630ceaad395 + + sys_documentation + admin + 2025-10-03 03:06:43 + f56ac5aa839cb6107ffb1630ceaad388 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:06:43 + + + + + parentsysid + + + + en + var__m_sys_hub_action_input_b01a4d6a839cb6107ffb1630ceaad395 + + sys_documentation + admin + 2025-10-03 03:06:43 + f96ac5aa839cb6107ffb1630ceaad38f + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:06:43 + + + + + + __dont_treat_as_error__ + + + + en + var__m_sys_hub_action_output_b01a4d6a839cb6107ffb1630ceaad395 + + sys_documentation + admin + 2025-10-03 03:06:43 + 356ac5aa839cb6107ffb1630ceaad3a1 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:06:43 + + + + + cleanedcsv + + + + en + var__m_sys_hub_action_output_b01a4d6a839cb6107ffb1630ceaad395 + + sys_documentation + admin + 2025-10-03 03:07:06 + 637a49aa839cb6107ffb1630ceaad391 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:07:06 + + + + + cleanedattachmentsysid + + + + en + var__m_sys_hub_action_output_b01a4d6a839cb6107ffb1630ceaad395 + + sys_documentation + admin + 2025-10-03 03:07:06 + 677a49aa839cb6107ffb1630ceaad397 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:07:06 + + + + + __action_status__ + + + + en + var__m_sys_hub_action_output_b01a4d6a839cb6107ffb1630ceaad395 + + sys_documentation + admin + 2025-10-03 03:06:43 + 756ac5aa839cb6107ffb1630ceaad39b + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:06:43 + + + + + + + b01a4d6a839cb6107ffb1630ceaad395 + {"type":"PlanProxy","persistor":{"@class":".ChunkingPlanPersistor","table":"sys_hub_action_plan","id":"cbfb892e839cb6107ffb1630ceaad3ec","name":"plan","plan_signature":null}} + 87fb892e839cb6107ffb1630ceaad3a5 + admin + 2025-10-03 03:13:38 + global + / + cbfb892e839cb6107ffb1630ceaad3ec + 0 + + + admin + 2025-10-03 03:13:38 + + + public + + + + Adds a ServiceNow Flow Designer Action that cleans CSV file attachments by removing a specified number of header lines. The script fetches the target attachment, skips the requested number of lines, and outputs the cleaned CSV content. Optionally, it + {labelCacheCleanUpExecuted=true} + 28000 + false + + + + Adds a ServiceNow Flow Designer Action that cleans CSV file attachments by removing a specified number of header lines. The script fetches the target attachment, skips the requested number of lines, and outputs the cleaned CSV content. Optionally, it can write back the cleaned data as a new attachment. Handles missing content and errors gracefully. + + strip_top_lines_from_csv_file + [{"name":"{{action.attachmentsysid}}","label":"action➛attachmentSysId","type":"action","ref":"","reference_display":"","base_type":"GUID","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.linestoskip}}","label":"action➛linesToSkip","type":"action","ref":"","reference_display":"","base_type":"integer","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.writebackasattachment}}","label":"action➛writeBackAsAttachment","type":"action","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.parenttable}}","label":"action➛parentTable","type":"action","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.parentsysid}}","label":"action➛parentSysId","type":"action","ref":"","reference_display":"","base_type":"GUID","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.newfilename}}","label":"action➛newFileName","type":"action","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{step[eed81560-b6b4-4063-8519-f7ff7d63677e].cleanedcsv}}","label":"step➛Script step➛cleanedCSV","type":"step","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{"uiTypeLabel":"String","element_mapping_provider":"com.glide.flow_design.action.data.FlowDesignVariableMapper","uiType":"string","uiUniqueId":"96a5ab1a-11e6-491d-97a4-68b8af1d0e33"}},{"name":"{{step[eed81560-b6b4-4063-8519-f7ff7d63677e].cleanedattachmentsysid}}","label":"step➛Script step➛cleanedAttachmentSysId","type":"step","ref":"","reference_display":"","base_type":"GUID","parent_table_name":"","column_name":"","choices":null,"attributes":{"uiTypeLabel":"Sys ID (GUID)","element_mapping_provider":"com.glide.flow_design.action.data.FlowDesignVariableMapper","uiType":"GUID","uiUniqueId":"b346f821-2b38-4769-ae3d-1b44df5f2944"}}] + true + Strip top lines from csv file + + + + b01a4d6a839cb6107ffb1630ceaad395 + sys_hub_action_type_snapshot + admin + 2025-10-03 03:13:36 + global + / + 66fb892e839cb6107ffb1630ceaad33c + 0 + + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:36 + false + + + + + + sys_hub_action_type_snapshot + 66fb892e839cb6107ffb1630ceaad33c + 2 + sys_variable_value + admin + 2025-10-03 03:13:37 + 0bfb892e839cb6107ffb1630ceaad3a3 + 0 + admin + 2025-10-03 03:13:37 + {"version":"1.0","complexObject":{"code":{"$cv":{"$c":"java.lang.String","$v":""}},"message":{"$cv":{"$c":"java.lang.String","$v":""}}},"complexObjectSchema":{"FlowDesigner:FDACTIONSTATUS":{"code":"Integer","code.$field_facets":{"SimpleMapFacet":"{\"uiTypeLabel\":\"Integer\",\"read_only\":\"false\",\"hint\":\"\",\"uiType\":\"integer\",\"default_value\":\"\",\"label\":\"Code\",\"action_error_output\":\"true\",\"mandatory\":\"false\",\"order\":\"1\",\"max_length\":\"40\"}"},"message":"String","message.$field_facets":{"SimpleMapFacet":"{\"uiTypeLabel\":\"String\",\"read_only\":\"false\",\"hint\":\"\",\"uiType\":\"string\",\"default_value\":\"\",\"label\":\"Message\",\"action_error_output\":\"true\",\"mandatory\":\"false\",\"order\":\"2\",\"max_length\":\"4000\"}"}},"FlowDesigner:FDACTIONSTATUS.$type_facets":{"SimpleMapFacet":"{\"default_value\":\"\",\"label\":\"Action Status\",\"action_error_output\":\"true\",\"mandatory\":\"false\",\"uiUniqueId\":\"4adfb7bc-9d67-498d-88d0-8d6c3d584fed\",\"uiTypeLabel\":\"Object\",\"co_type_name\":\"FDACTIONSTATUS\",\"element_mapping_provider\":\"com.glide.flow_design.action.data.FlowDesignVariableMapper\",\"read_only\":\"false\",\"hint\":null,\"uiType\":\"object\",\"order\":\"1\",\"max_length\":\"65000\"}"}},"serializationFormat":"JSON"} + 72fb892e839cb6107ffb1630ceaad392 + + + sys_hub_action_type_snapshot + 66fb892e839cb6107ffb1630ceaad33c + 4 + sys_variable_value + admin + 2025-10-03 03:13:37 + 47fb892e839cb6107ffb1630ceaad3a3 + 0 + admin + 2025-10-03 03:13:37 + 0 + 76fb892e839cb6107ffb1630ceaad399 + + + + cleanedattachmentsysid + 66fb892e839cb6107ffb1630ceaad33c + admin + 2025-10-03 03:13:37 + 8bfb892e839cb6107ffb1630ceaad3a2 + 0 + admin + 2025-10-03 03:13:37 + var__m_sys_hub_action_output_66fb892e839cb6107ffb1630ceaad33c
+ {{step[eed81560-b6b4-4063-8519-f7ff7d63677e].cleanedattachmentsysid}} +
+ + cleanedcsv + 66fb892e839cb6107ffb1630ceaad33c + admin + 2025-10-03 03:13:37 + 4ffb892e839cb6107ffb1630ceaad3a2 + 0 + admin + 2025-10-03 03:13:37 + var__m_sys_hub_action_output_66fb892e839cb6107ffb1630ceaad33c
+ {{step[eed81560-b6b4-4063-8519-f7ff7d63677e].cleanedcsv}} +
+ + __action_status__ + 66fb892e839cb6107ffb1630ceaad33c + admin + 2025-10-03 03:13:37 + c3fb892e839cb6107ffb1630ceaad3a3 + 0 + admin + 2025-10-03 03:13:37 + var__m_sys_hub_action_output_66fb892e839cb6107ffb1630ceaad33c
+ +
+ + __dont_treat_as_error__ + 66fb892e839cb6107ffb1630ceaad33c + admin + 2025-10-03 03:13:37 + 03fb892e839cb6107ffb1630ceaad3a3 + 0 + admin + 2025-10-03 03:13:37 + var__m_sys_hub_action_output_66fb892e839cb6107ffb1630ceaad33c
+ +
+ + + 66fb892e839cb6107ffb1630ceaad33c + eed81560-b6b4-4063-8519-f7ff7d63677e + 1 + + + + + + + 1 + +
+ 106afb6647032200b4fad7527c9a71e7 + admin + 2025-10-03 03:13:36 + 3afb892e839cb6107ffb1630ceaad359 + 1 + b812ceb69337a210633378917cba10bc + admin + 2025-10-03 03:13:37 + + + + sys_hub_step_instance + 3afb892e839cb6107ffb1630ceaad359 + 400 + sys_variable_value + admin + 2025-10-03 03:13:37 + 32fb892e839cb6107ffb1630ceaad389 + 0 + admin + 2025-10-03 03:13:37 + 35aa573fd7802200bdbaee5b5e610375 + f5e56d79b3101300176b051a16a8dce4 + + + sys_hub_step_instance + 3afb892e839cb6107ffb1630ceaad359 + 100 + sys_variable_value + admin + 2025-10-03 03:13:37 + 7efb892e839cb6107ffb1630ceaad38a + 0 + admin + 2025-10-03 03:13:37 + + befb892e839cb6107ffb1630ceaad360 + + + sys_hub_step_instance + 3afb892e839cb6107ffb1630ceaad359 + 600 + sys_variable_value + admin + 2025-10-03 03:13:37 + f2fb892e839cb6107ffb1630ceaad389 + 0 + admin + 2025-10-03 03:13:37 + (function execute(inputs, outputs) { +gs.info("[CSV Cleaner] Starting execution..."); + + var attachment = new GlideSysAttachment(); + + // Default to sys_email if parentTable not provided + var parentTable = inputs.parentTable || "sys_email"; + var parentSysId = inputs.parentSysId || inputs.attachmentSysId; + + // Get attachments for the record + var agr = attachment.getAttachments(parentTable, parentSysId); + + while (agr.next()) { + // Only process the specific attachment + if (agr.getUniqueValue() === inputs.attachmentSysId) { + + + // Get content as a string (safe in scoped apps) + var content = attachment.getContent(agr); + if (!content) { + gs.warn("[CSV Cleaner] Attachment is empty."); + outputs.cleanedcsv = ""; + return; // exit the script immediately + } + + gs.info("[CSV Cleaner] Original content length: " + content.length); + + // Split content into lines + var lines = content.split(/\r?\n/); + gs.info("[CSV Cleaner] Total lines in file: " + lines.length); + + // Remove first X lines + var skip = parseInt(inputs.linesToSkip, 10) || 0; + gs.info("[CSV Cleaner] Skipping first " + skip + " lines..."); + var cleanedCSV = lines.slice(skip).join("\n"); + gs.info("[CSV Cleaner] Cleaned content length: " + cleanedCSV.length); + + // Return cleaned CSV as output + outputs.cleanedcsv = cleanedCSV; + + // Optional: write back as new attachment + if (inputs.writeBackAsAttachment == "true") { + var newFileName = inputs.newFileName || "cleaned.csv"; + gs.info( + "[CSV Cleaner] Writing cleaned CSV as new attachment: " + newFileName + ); + + var gr = new GlideRecord(parentTable); + if (gr.get(parentSysId)) { + var cleanedAttachmentSysId = attachment.write( + gr, + newFileName, + "text/csv", + cleanedCSV + ); + gs.info( + "[CSV Cleaner] New attachment created with sys_id: " + + cleanedAttachmentSysId + ); + outputs.cleanedattachmentsysid = cleanedAttachmentSysId; + } else { + gs.error( + "[CSV Cleaner] Parent record not found: " + + parentTable + + " / " + + parentSysId + ); + } + } else { + gs.info( + "[CSV Cleaner] Write-back disabled. Returning only cleanedCSV output." + ); + } + + // Exit script since the target attachment is processed + gs.info("[CSV Cleaner] Attachment processed. Exiting script."); + return; + } + } + + gs.warn( + "[CSV Cleaner] Target attachment not found: " + inputs.attachmentSysId + ); +})(inputs, outputs); + + 71aa7f6647032200b4fad7527c9a719b + + + + application + 3afb892e839cb6107ffb1630ceaad359 + admin + 2025-10-03 03:13:37 + fafb892e839cb6107ffb1630ceaad388 + 0 + admin + 2025-10-03 03:13:37 + var__m_sys_flow_step_definition_input_106afb6647032200b4fad7527c9a71e7
+ +
+ + attachmentSysId + 3afb892e839cb6107ffb1630ceaad359 + admin + 2025-10-03 03:13:37 + fefb892e839cb6107ffb1630ceaad389 + 0 + admin + 2025-10-03 03:13:37 + var__m_sys_hub_step_ext_input_3afb892e839cb6107ffb1630ceaad359
+ {{action.attachmentsysid}} +
+ + linesToSkip + 3afb892e839cb6107ffb1630ceaad359 + admin + 2025-10-03 03:13:37 + 76fb892e839cb6107ffb1630ceaad38a + 0 + admin + 2025-10-03 03:13:37 + var__m_sys_hub_step_ext_input_3afb892e839cb6107ffb1630ceaad359
+ {{action.linestoskip}} +
+ + newFileName + 3afb892e839cb6107ffb1630ceaad359 + admin + 2025-10-03 03:13:37 + b2fb892e839cb6107ffb1630ceaad38a + 0 + admin + 2025-10-03 03:13:37 + var__m_sys_hub_step_ext_input_3afb892e839cb6107ffb1630ceaad359
+ {{action.newfilename}} +
+ + parentSysId + 3afb892e839cb6107ffb1630ceaad359 + admin + 2025-10-03 03:13:37 + 3efb892e839cb6107ffb1630ceaad389 + 0 + admin + 2025-10-03 03:13:37 + var__m_sys_hub_step_ext_input_3afb892e839cb6107ffb1630ceaad359
+ {{action.parentsysid}} +
+ + parentTable + 3afb892e839cb6107ffb1630ceaad359 + admin + 2025-10-03 03:13:37 + 3afb892e839cb6107ffb1630ceaad38a + 0 + admin + 2025-10-03 03:13:37 + var__m_sys_hub_step_ext_input_3afb892e839cb6107ffb1630ceaad359
+ {{action.parenttable}} +
+ + script + 3afb892e839cb6107ffb1630ceaad359 + admin + 2025-10-03 03:13:37 + befb892e839cb6107ffb1630ceaad388 + 0 + admin + 2025-10-03 03:13:37 + var__m_sys_flow_step_definition_input_106afb6647032200b4fad7527c9a71e7
+ +
+ + writeBackAsAttachment + 3afb892e839cb6107ffb1630ceaad359 + admin + 2025-10-03 03:13:37 + fafb892e839cb6107ffb1630ceaad38a + 0 + admin + 2025-10-03 03:13:37 + var__m_sys_hub_step_ext_input_3afb892e839cb6107ffb1630ceaad359
+ {{action.writebackasattachment}} +
+ + + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String + false + + + + + + + + + + + + + false + false + + + + writeBackAsAttachment + false + + + + false + + + string + + true + 8000 + 3afb892e839cb6107ffb1630ceaad359 + 3afb892e839cb6107ffb1630ceaad359 + sys_hub_step_instance + var__m_sys_hub_step_ext_input_3afb892e839cb6107ffb1630ceaad359 + + 200 + false + false + + + + false + + + + + + false + false + sys_hub_step_ext_input + admin + 2025-10-03 03:13:36 + 3efb892e839cb6107ffb1630ceaad363 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:36 + false + false + false + false + false + simple + false + script + + + false + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=GUID,uiTypeLabel=Sys ID (GUID) + false + + + + + + + + + + + + + false + false + + + + attachmentSysId + false + + + + false + + + GUID + + true + 32 + 3afb892e839cb6107ffb1630ceaad359 + 3afb892e839cb6107ffb1630ceaad359 + sys_hub_step_instance + var__m_sys_hub_step_ext_input_3afb892e839cb6107ffb1630ceaad359 + + 0 + false + false + + + + false + + + + + + false + false + sys_hub_step_ext_input + admin + 2025-10-03 03:13:36 + 76fb892e839cb6107ffb1630ceaad35d + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:36 + false + false + false + false + false + simple + false + script + + + false + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String + false + + + + + + + + + + + + + false + false + + + + newFileName + false + + + + false + + + string + + true + 8000 + 3afb892e839cb6107ffb1630ceaad359 + 3afb892e839cb6107ffb1630ceaad359 + sys_hub_step_instance + var__m_sys_hub_step_ext_input_3afb892e839cb6107ffb1630ceaad359 + + 500 + false + false + + + + false + + + + + + false + false + sys_hub_step_ext_input + admin + 2025-10-03 03:13:37 + 7efb892e839cb6107ffb1630ceaad378 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:37 + false + false + false + false + false + simple + false + script + + + false + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String + false + + + + + + + + + + + + + false + false + + + + parentTable + false + + + + false + + + string + + true + 8000 + 3afb892e839cb6107ffb1630ceaad359 + 3afb892e839cb6107ffb1630ceaad359 + sys_hub_step_instance + var__m_sys_hub_step_ext_input_3afb892e839cb6107ffb1630ceaad359 + + 300 + false + false + + + + false + + + + + + false + false + sys_hub_step_ext_input + admin + 2025-10-03 03:13:37 + bafb892e839cb6107ffb1630ceaad366 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:37 + false + false + false + false + false + simple + false + script + + + false + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=integer,uiTypeLabel=Integer + false + + + + + + + + + + + + + false + false + + + + linesToSkip + false + + + + false + + + integer + + true + 40 + 3afb892e839cb6107ffb1630ceaad359 + 3afb892e839cb6107ffb1630ceaad359 + sys_hub_step_instance + var__m_sys_hub_step_ext_input_3afb892e839cb6107ffb1630ceaad359 + + 100 + false + false + + + + false + + + + + + false + false + sys_hub_step_ext_input + admin + 2025-10-03 03:13:36 + befb892e839cb6107ffb1630ceaad360 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:36 + false + false + false + false + false + simple + false + script + + + false + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=GUID,uiTypeLabel=Sys ID (GUID) + false + + + + + + + + + + + + + false + false + + + + parentSysId + false + + + + false + + + GUID + + true + 32 + 3afb892e839cb6107ffb1630ceaad359 + 3afb892e839cb6107ffb1630ceaad359 + sys_hub_step_instance + var__m_sys_hub_step_ext_input_3afb892e839cb6107ffb1630ceaad359 + + 400 + false + false + + + + false + + + + + + false + false + sys_hub_step_ext_input + admin + 2025-10-03 03:13:37 + fefb892e839cb6107ffb1630ceaad375 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:37 + false + false + false + false + false + simple + false + script + + + false + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=GUID,uiTypeLabel=Sys ID (GUID),uiUniqueId=b346f821-2b38-4769-ae3d-1b44df5f2944 + false + + + + + + + + + + + + + false + false + + + + cleanedattachmentsysid + false + + + + false + + + GUID + + false + 32 + 3afb892e839cb6107ffb1630ceaad359 + 3afb892e839cb6107ffb1630ceaad359 + sys_hub_step_instance + var__m_sys_hub_step_ext_output_3afb892e839cb6107ffb1630ceaad359 + + 2 + false + false + + + + false + + + + + + false + false + sys_hub_step_ext_output + admin + 2025-10-03 03:13:37 + bafb892e839cb6107ffb1630ceaad37f + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:37 + false + false + false + false + false + simple + false + script + + + false + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String,uiUniqueId=96a5ab1a-11e6-491d-97a4-68b8af1d0e33 + false + + + + + + + + + + + + + false + false + + + + cleanedcsv + false + + + + false + + + string + + false + 8000 + 3afb892e839cb6107ffb1630ceaad359 + 3afb892e839cb6107ffb1630ceaad359 + sys_hub_step_instance + var__m_sys_hub_step_ext_output_3afb892e839cb6107ffb1630ceaad359 + + 1 + false + false + + + + false + + + + + + false + false + sys_hub_step_ext_output + admin + 2025-10-03 03:13:37 + f2fb892e839cb6107ffb1630ceaad37c + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:37 + false + false + false + false + false + simple + false + script + + + false + + + + cleanedattachmentsysid + + + + en + var__m_sys_hub_step_ext_output_3afb892e839cb6107ffb1630ceaad359 + + sys_documentation + admin + 2025-10-03 03:13:37 + befb892e839cb6107ffb1630ceaad381 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:37 + + + + + cleanedcsv + + + + en + var__m_sys_hub_step_ext_output_3afb892e839cb6107ffb1630ceaad359 + + sys_documentation + admin + 2025-10-03 03:13:37 + fefb892e839cb6107ffb1630ceaad37e + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:37 + + + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=GUID,uiTypeLabel=Sys ID (GUID),uiUniqueId=07c5fab9-ec8f-44cd-a981-6d1ea795a221 + false + + + + + + + + + + + + + false + false + + + + parentsysid + false + + + + false + + + GUID + + false + 32 + 66fb892e839cb6107ffb1630ceaad33c + 66fb892e839cb6107ffb1630ceaad33c + sys_hub_action_type_snapshot + var__m_sys_hub_action_input_66fb892e839cb6107ffb1630ceaad33c + + 5 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-03 03:13:36 + 36fb892e839cb6107ffb1630ceaad34e + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:36 + false + false + false + false + false + simple + false + script + + + false + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=GUID,uiTypeLabel=Sys ID (GUID),uiUniqueId=cf416fdc-e205-417a-b5df-48605a47aacb + false + + + + + + + + + + + + + false + false + + + + attachmentsysid + false + + + + false + + + GUID + + false + 32 + 66fb892e839cb6107ffb1630ceaad33c + 66fb892e839cb6107ffb1630ceaad33c + sys_hub_action_type_snapshot + var__m_sys_hub_action_input_66fb892e839cb6107ffb1630ceaad33c + + 1 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-03 03:13:36 + 66fb892e839cb6107ffb1630ceaad33f + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:36 + false + false + false + false + false + simple + false + script + + + false + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=integer,uiTypeLabel=Integer,uiUniqueId=c7012cec-466f-474b-9260-32af0bc6041e + false + + + + + + + + + + + + + false + false + + + + linestoskip + false + + + + false + + + integer + + false + 40 + 66fb892e839cb6107ffb1630ceaad33c + 66fb892e839cb6107ffb1630ceaad33c + sys_hub_action_type_snapshot + var__m_sys_hub_action_input_66fb892e839cb6107ffb1630ceaad33c + + 2 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-03 03:13:36 + 6afb892e839cb6107ffb1630ceaad343 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:36 + false + false + false + false + false + simple + false + script + + + false + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String,uiUniqueId=a00ef9d7-2609-43ec-8f0b-8d7711caa65f + false + + + + + + + + + + + + + false + false + + + + newfilename + false + + + + false + + + string + + false + 8000 + 66fb892e839cb6107ffb1630ceaad33c + 66fb892e839cb6107ffb1630ceaad33c + sys_hub_action_type_snapshot + var__m_sys_hub_action_input_66fb892e839cb6107ffb1630ceaad33c + + 6 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-03 03:13:36 + 7efb892e839cb6107ffb1630ceaad351 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:36 + false + false + false + false + false + simple + false + script + + + false + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String,uiUniqueId=db47c57d-9387-40e4-bf6d-4a6ca4834a51 + false + + + + + + + + + + + + + false + false + + + + writebackasattachment + false + + + + false + + + string + + false + 8000 + 66fb892e839cb6107ffb1630ceaad33c + 66fb892e839cb6107ffb1630ceaad33c + sys_hub_action_type_snapshot + var__m_sys_hub_action_input_66fb892e839cb6107ffb1630ceaad33c + + 3 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-03 03:13:36 + a2fb892e839cb6107ffb1630ceaad347 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:36 + false + false + false + false + false + simple + false + script + + + false + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String,uiUniqueId=cf2927b6-2ca8-48c8-97c1-01ed83bd686d + false + + + + + + + + + + + + + false + false + + + + parenttable + false + + + + false + + + string + + false + 8000 + 66fb892e839cb6107ffb1630ceaad33c + 66fb892e839cb6107ffb1630ceaad33c + sys_hub_action_type_snapshot + var__m_sys_hub_action_input_66fb892e839cb6107ffb1630ceaad33c + + 4 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-03 03:13:36 + fafb892e839cb6107ffb1630ceaad34a + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:36 + false + false + false + false + false + simple + false + script + + + false + + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=GUID,uiTypeLabel=Sys ID (GUID),uiUniqueId=0f8667d6-420a-44a6-b5bc-85a3706fc1c1 + false + + + + + + + + + + + + + false + false + + + + cleanedattachmentsysid + + false + + + + false + + + + GUID + + false + 32 + 66fb892e839cb6107ffb1630ceaad33c + 66fb892e839cb6107ffb1630ceaad33c + sys_hub_action_type_snapshot + var__m_sys_hub_action_output_66fb892e839cb6107ffb1630ceaad33c + + 3 + false + false + + + + false + + + + + + false + false + sys_hub_action_output + admin + 2025-10-03 03:13:37 + 3efb892e839cb6107ffb1630ceaad395 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:37 + false + false + false + false + false + simple + false + script + + + false + + + + + true + false + false + action_error_output=true,co_type_name=FDACTIONSTATUS,element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=object,uiTypeLabel=Object,uiUniqueId=3baac66e-ebe9-4fad-9ba2-cc2b9948a862 + false + + + + + + + + + + + + + false + false + + + + __action_status__ + + false + + + + false + + + + string + + false + 65000 + 66fb892e839cb6107ffb1630ceaad33c + 66fb892e839cb6107ffb1630ceaad33c + sys_hub_action_type_snapshot + var__m_sys_hub_action_output_66fb892e839cb6107ffb1630ceaad33c + + 2 + false + false + + + + false + + + + + + false + false + sys_hub_action_output + admin + 2025-10-03 03:13:37 + 72fb892e839cb6107ffb1630ceaad392 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:37 + false + false + false + false + false + simple + false + script + + + false + + + + + true + false + false + action_error_output=true,element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=boolean,uiTypeLabel=True/False,uiUniqueId=dc83ff1e-1ac9-4aa4-a11a-76af83816c4a,visible_in_ui=false + false + + + + + + + + true + + + + + false + false + + + + __dont_treat_as_error__ + + false + + + + false + + + + boolean + + false + 40 + 66fb892e839cb6107ffb1630ceaad33c + 66fb892e839cb6107ffb1630ceaad33c + sys_hub_action_type_snapshot + var__m_sys_hub_action_output_66fb892e839cb6107ffb1630ceaad33c + + 4 + false + false + + + + false + + + + + + false + false + sys_hub_action_output + admin + 2025-10-03 03:13:37 + 76fb892e839cb6107ffb1630ceaad399 + 1 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:37 + false + false + false + false + false + simple + false + script + + + false + + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,pwd2droppable=true,uiType=string,uiTypeLabel=String,uiUniqueId=3cc0165d-ec5e-4aa2-a2bb-24a661709299 + false + + + + + + + + + + + + + false + false + + + + cleanedcsv + + false + + + + false + + + + string + + false + 8000 + 66fb892e839cb6107ffb1630ceaad33c + 66fb892e839cb6107ffb1630ceaad33c + sys_hub_action_type_snapshot + var__m_sys_hub_action_output_66fb892e839cb6107ffb1630ceaad33c + + 1 + false + false + + + + false + + + + + + false + false + sys_hub_action_output + admin + 2025-10-03 03:13:37 + fefb892e839cb6107ffb1630ceaad38d + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:37 + false + false + false + false + false + simple + false + script + + + false + + + + + + + 66fb892e839cb6107ffb1630ceaad33c + admin + 2025-10-03 03:13:37 + c3fb892e839cb6107ffb1630ceaad3a5 + 0 + admin + 2025-10-03 03:13:37 + + + + writebackasattachment + + + + en + var__m_sys_hub_action_input_66fb892e839cb6107ffb1630ceaad33c + + sys_documentation + admin + 2025-10-03 03:13:36 + 32fb892e839cb6107ffb1630ceaad34a + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:36 + + + + + parenttable + + + + en + var__m_sys_hub_action_input_66fb892e839cb6107ffb1630ceaad33c + + sys_documentation + admin + 2025-10-03 03:13:36 + 7afb892e839cb6107ffb1630ceaad34d + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:36 + + + + + attachmentsysid + + + + en + var__m_sys_hub_action_input_66fb892e839cb6107ffb1630ceaad33c + + sys_documentation + admin + 2025-10-03 03:13:36 + aefb892e839cb6107ffb1630ceaad342 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:36 + + + + + parentsysid + + + + en + var__m_sys_hub_action_input_66fb892e839cb6107ffb1630ceaad33c + + sys_documentation + admin + 2025-10-03 03:13:36 + b2fb892e839cb6107ffb1630ceaad351 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:36 + + + + + linestoskip + + + + en + var__m_sys_hub_action_input_66fb892e839cb6107ffb1630ceaad33c + + sys_documentation + admin + 2025-10-03 03:13:36 + e6fb892e839cb6107ffb1630ceaad346 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:36 + + + + + newfilename + + + + en + var__m_sys_hub_action_input_66fb892e839cb6107ffb1630ceaad33c + + sys_documentation + admin + 2025-10-03 03:13:36 + fafb892e839cb6107ffb1630ceaad354 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:36 + + + + + + __action_status__ + + + + en + var__m_sys_hub_action_output_66fb892e839cb6107ffb1630ceaad33c + + sys_documentation + admin + 2025-10-03 03:13:37 + 72fb892e839cb6107ffb1630ceaad395 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:37 + + + + + cleanedcsv + + + + en + var__m_sys_hub_action_output_66fb892e839cb6107ffb1630ceaad33c + + sys_documentation + admin + 2025-10-03 03:13:37 + b6fb892e839cb6107ffb1630ceaad391 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:37 + + + + + cleanedattachmentsysid + + + + en + var__m_sys_hub_action_output_66fb892e839cb6107ffb1630ceaad33c + + sys_documentation + admin + 2025-10-03 03:13:37 + bafb892e839cb6107ffb1630ceaad398 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:37 + + + + + __dont_treat_as_error__ + + + + en + var__m_sys_hub_action_output_66fb892e839cb6107ffb1630ceaad33c + + sys_documentation + admin + 2025-10-03 03:13:37 + fefb892e839cb6107ffb1630ceaad39d + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-03 03:13:37 + + + + + + b01a4d6a839cb6107ffb1630ceaad395 + 66fb892e839cb6107ffb1630ceaad33c + glide-zurich-07-01-2025__patch0-07-15-2025_07-23-2025_1759.zip + + From c06b1dca1805f02bc2451fa0f42ef7eefaac284c Mon Sep 17 00:00:00 2001 From: admin Date: Sat, 4 Oct 2025 04:28:12 -0700 Subject: [PATCH 2/2] Two-step Flow Designer Action to parse JSON and send it via email in text or HTML. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Use Case: Automatically alert support teams and management of high-priority incidents, including all relevant fields, in a well-formatted email. Step 1 – Script: Recursively parses JSON (jsonString) into text or HTML (tables/lists). Supports nested objects and arrays. Outputs emailBody and status. Step 2 – Email: Sends the formatted email using emailTo and emailSubject. Script step is modular and reusable. Notable Features: outputFormat choice input added. Handles empty/invalid JSON gracefully with descriptive error messages in email body. Testing: Verified both text and HTML outputs. Confirmed emails to multiple recipients. Errors in JSON parsing appear in the email body instead of failing silently. --- b812ceb69337a210633378917cba10bc/checksum.txt | 2 +- ...ition_8494ebfa83dc3a107ffb1630ceaad3a5.xml | 3643 +++++++++++++++++ 2 files changed, 3644 insertions(+), 1 deletion(-) create mode 100644 b812ceb69337a210633378917cba10bc/update/sys_hub_action_type_definition_8494ebfa83dc3a107ffb1630ceaad3a5.xml diff --git a/b812ceb69337a210633378917cba10bc/checksum.txt b/b812ceb69337a210633378917cba10bc/checksum.txt index 92dc76f..0253cd0 100644 --- a/b812ceb69337a210633378917cba10bc/checksum.txt +++ b/b812ceb69337a210633378917cba10bc/checksum.txt @@ -1 +1 @@ -RatBKik3FOxKB_5oI2lWdYUzRHvggTAcv4oM7_ABaaEndq3qGUI429DMrJfeDHS7_Y26cLAW7QBlzSRIff6Hx1hIaNlMhRuQpAeKvyXRE5YlBg64SbBsukCusnlejGixuusrFM4Rbn03lBR-pnjc5djOz3-vkbRirTTwUDxP-Ue-e_Q6N75RIAPKvVm9VPTcRmjIHf2WxPfmmy660cgp4sLgG-A8cvtEt3vdSrzqqsKOxyX6lz6yZYzwBxolUN2THrKBHbfvgTS5z92hhOD0LAs3YnMeikeWPXYlJs6sMNuHQe6Hsf4YuoosAW9d1xE_d0EiD_gqLSqwLg397UxdkF_3i3ymXvMi1vp97iHToro8PhD1ALWKVsH3-9JLCqDXaQhpzkbPCn1FoMkVhJq7AjdfLjF5O4z5ps0mKYhdVLpfZyJzNh1yjfhVRIr9IIJq4kqr8HJDmDpljZQoTURdialBgMfdXEMJS70R7WGV8fqZuTg3L6NSBSi00DkYmsvtHdAxEed8rtDNzKEqIVOtoS2WV538YnAwkXytykxLin5VkCFzty-EBQtWzEkL19MIvufOI_yQ3S8oQx3LTah6Npouw3R69T6FvWNsQ3xVGyfwD8EMEeBfilgAab4Uf61n8WCUA7aV8_vMn3gNsgOHtbfnOUE-wXsVcf_ibxJbaIY \ No newline at end of file +TErJhnWB9Z_tTMB3L1s2TA_vf1-iNHHI38nbP9IBNVdecfTYPTW8bZwUCUf-p7zO3V4hPASuaFPX2DH8JIgis-1XG9g4qmrPLukZFGHHJmijZtUozmcsIoYjbNMCyolkRnicZT6ew1hXHdIfNnhqQsDMtZmMlZ0KYSw6qSoFBAC4onOmcr0P7TIHNs0GZcQ9NmHkCCRLqHrQvAJKM1SD_fXoQn7LSvoCwsOswlAxyK9icGgYZl1Jr7-wAhSnPiEuhuJEheSSSk0KwJUynddDklcDOvomLf9qKjCzByc7J0fmAdabpZ6SE_QQqTSGSoLucF2mA6R3Tsgl7UYxEVMd2Y_MKuiv-vUM_ScjibH00tSl9WMywkwz7vnYrIV1KLxCgcxUMLyA2u9GP9E3uw3fk8WYrpODUgvPElEF3ncTq5SK2d-mRFvKxYiyyvFJUmDM1ZbQC1FJMCIHya9RGhwP8otkFERoDp385-EQmt4lL0p9z81CqUW9SwX445ZDWjbDRItsO0e9bbONIJSb8OGHOcfFnWi5_E5IAUyAnRcyoJyr-v0qf4bIjq3-C4wXIdjr0A4jFbB6Nw1zPdLqrzwUeUpCtCMG_FV3OS7NxX_9siymuCsVKT6I7VvsB6-H2knBJZGNC2WDwlhNYVCALEco7YkCs-zRFqPDl2Kiz5OjHtI \ No newline at end of file diff --git a/b812ceb69337a210633378917cba10bc/update/sys_hub_action_type_definition_8494ebfa83dc3a107ffb1630ceaad3a5.xml b/b812ceb69337a210633378917cba10bc/update/sys_hub_action_type_definition_8494ebfa83dc3a107ffb1630ceaad3a5.xml new file mode 100644 index 0000000..46775d0 --- /dev/null +++ b/b812ceb69337a210633378917cba10bc/update/sys_hub_action_type_definition_8494ebfa83dc3a107ffb1630ceaad3a5.xml @@ -0,0 +1,3643 @@ + + + public + + + + true + + {labelCacheCleanUpExecuted=true} + 28000 + false + + + + Parses a JSON string into a human-readable message and sends it via email. + +The Action has two steps: + +1. Script step to parse and format JSON (plain text or HTML). +2. Email step to send the formatted output to the specified recipient. + +Flow Action is generic and reusable: +1. Works for any JSON. +2. Can send to one or many recipients. +3. Subject is customizable. +4. Output is selectable (plain text or HTML). + + false + parse_json_and_send_email + [{"name":"{{action.json_string}}","label":"action➛json String","type":"action","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.email_to}}","label":"action➛email_to","type":"action","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.email_subject}}","label":"action➛email_subject","type":"action","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.output_format}}","label":"action➛output_format","type":"action","ref":"","reference_display":"","base_type":"choice","parent_table_name":"","column_name":"","choices":[{"label":"text","value":"text","order":1.0},{"label":"html","value":"html","order":2.0}],"attributes":{"uiTypeLabel":"Choice","element_mapping_provider":"com.glide.flow_design.action.data.FlowDesignVariableMapper","uiType":"choice","uiUniqueId":"3a35560c-997e-49ac-a961-88f6bac9572f"}},{"name":"{{action.jsonstring}}","label":"action➛jsonString","type":"action","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.emailto}}","label":"action➛emailTo","type":"action","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.emailsubject}}","label":"action➛emailSubject","type":"action","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.outputformat}}","label":"action➛outputFormat","type":"action","ref":"","reference_display":"","base_type":"choice","parent_table_name":"","column_name":"","choices":[{"label":"text","value":"text","order":0.0},{"label":"html","value":"html","order":1.0}],"attributes":{}},{"name":"{{step[49f27f4b-9e85-4008-93ae-cb254135b954].emailbody}}","label":"step➛Script step : Build Email Message➛emailBody","type":"step","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{"uiTypeLabel":"String","element_mapping_provider":"com.glide.flow_design.action.data.FlowDesignVariableMapper","uiType":"string","uiUniqueId":"c61865d2-d9cf-4e5d-9a83-afd37c03b3c7"}}] + 54cda3ba83107a107ffb1630ceaad30c + + Parse JSON and Send Email + + + false + published + sys_hub_action_type_definition + admin + 2025-10-04 08:58:44 + global + / + 8494ebfa83dc3a107ffb1630ceaad3a5 + 51 + Parse JSON and Send Email + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + sys_hub_action_type_definition_8494ebfa83dc3a107ffb1630ceaad3a5 + admin + 2025-10-04 11:24:08 + false + + + + + + sys_hub_action_type_definition + 8494ebfa83dc3a107ffb1630ceaad3a5 + 1 + sys_variable_value + admin + 2025-10-04 09:07:23 + 7a86effe83dc3a107ffb1630ceaad3d0 + 0 + admin + 2025-10-04 09:07:23 + {"version":"1.0","complexObject":{"code":{"$cv":{"$c":"java.lang.String","$v":""}},"message":{"$cv":{"$c":"java.lang.String","$v":""}}},"complexObjectSchema":{"FlowDesigner:FDACTIONSTATUS":{"code":"Integer","code.$field_facets":{"SimpleMapFacet":"{\"uiTypeLabel\":\"Integer\",\"read_only\":\"false\",\"hint\":\"\",\"uiType\":\"integer\",\"default_value\":\"\",\"label\":\"Code\",\"action_error_output\":\"true\",\"mandatory\":\"false\",\"order\":\"1\",\"max_length\":\"40\"}"},"message":"String","message.$field_facets":{"SimpleMapFacet":"{\"uiTypeLabel\":\"String\",\"read_only\":\"false\",\"hint\":\"\",\"uiType\":\"string\",\"default_value\":\"\",\"label\":\"Message\",\"action_error_output\":\"true\",\"mandatory\":\"false\",\"order\":\"2\",\"max_length\":\"4000\"}"}},"FlowDesigner:FDACTIONSTATUS.$type_facets":{"SimpleMapFacet":"{\"default_value\":\"\",\"label\":\"Action Status\",\"action_error_output\":\"true\",\"mandatory\":\"false\",\"uiUniqueId\":\"4adfb7bc-9d67-498d-88d0-8d6c3d584fed\",\"uiTypeLabel\":\"Object\",\"co_type_name\":\"FDACTIONSTATUS\",\"element_mapping_provider\":\"com.glide.flow_design.action.data.FlowDesignVariableMapper\",\"read_only\":\"false\",\"hint\":null,\"uiType\":\"object\",\"order\":\"1\",\"max_length\":\"65000\"}"}},"serializationFormat":"JSON"} + 7686effe83dc3a107ffb1630ceaad3c1 + + + sys_hub_action_type_definition + 8494ebfa83dc3a107ffb1630ceaad3a5 + 2 + sys_variable_value + admin + 2025-10-04 09:07:23 + b686effe83dc3a107ffb1630ceaad3d0 + 0 + admin + 2025-10-04 09:07:23 + 0 + f286effe83dc3a107ffb1630ceaad3c6 + + + + + 8494ebfa83dc3a107ffb1630ceaad3a5 + 49f27f4b-9e85-4008-93ae-cb254135b954 + 1 + + + + + + + 1 + +
+ 106afb6647032200b4fad7527c9a71e7 + admin + 2025-10-04 09:07:22 + aa86effe83dc3a107ffb1630ceaad35f + 22 + b812ceb69337a210633378917cba10bc + admin + 2025-10-04 11:21:55 + + + + sys_hub_step_instance + aa86effe83dc3a107ffb1630ceaad35f + 400 + sys_variable_value + admin + 2025-10-04 09:07:23 + 7686effe83dc3a107ffb1630ceaad3bc + 0 + admin + 2025-10-04 09:07:23 + 35aa573fd7802200bdbaee5b5e610375 + f5e56d79b3101300176b051a16a8dce4 + + + sys_hub_step_instance + aa86effe83dc3a107ffb1630ceaad35f + 600 + sys_variable_value + admin + 2025-10-04 09:07:23 + be86effe83dc3a107ffb1630ceaad3bc + 18 + admin + 2025-10-04 11:21:55 + /** + * Hacktoberfest Prototype Notice + * + * This code is an initial concept submitted for Hacktoberfest. + * + * It is intended as a starting point and needs significant refinement, code review, and testing before it can be considered ready for production or any real-world ServiceNow implementation. + * + * The main concern is: + * - Optimizing JSON parsing, especially for deep/nested structures. + * + * Other important areas for improvement include: + * - Comprehensive error handling and edge case support. + * - Security reviews, including input validation(JSON Validation) and output sanitization. + * - Integration with wider ServiceNow Flow Designer best practices. + * + * + */ + +(function execute(inputs, outputs) { +/** +   * Custom Action Inputs +   * +   * This action accepts the following inputs: +   * +   * @param jsonString    (Type: String, Mandatory: Yes) +   *                       Example: { "user": "Anu", "role": "Admin" } +   *                       The JSON data to parse. +   * +   * @param emailTo       (Type: String, Mandatory: Yes) +   *                       Example: [anu@example.com](mailto:anu@example.com),[manager@example.com](mailto:manager@example.com) +   *                       Comma-separated list of recipients. +   * +   * @param emailSubject  (Type: String, Mandatory: Yes) +   *                       Example: New User Created in ServiceNow +   *                       Custom subject for the email. +   * +   * @param outputFormat  (Type: String, Mandatory: No, Default = text) +   *                       Example: html or text +   *                       Controls formatting of the email body. +   */ +function formatJsonText(obj, indent) { + var emailText = ""; + var spacing = " ".repeat(indent); + + if (Array.isArray(obj)) { + obj.forEach(function(item, index) { + emailText += spacing + "- Item " + (index + 1) + ":\n"; + emailText += formatJsonText(item, indent + 1); + }); + } else if (typeof obj === "object" && obj !== null) { + for (var key in obj) { + if (typeof obj[key] === "object") { + emailText += spacing + key + ":\n"; + emailText += formatJsonText(obj[key], indent + 1); + } else { + emailText += spacing + key + ": " + obj[key] + "\n"; + } + } + } else { + emailText += spacing + obj + "\n"; + } + return emailText; +} + +function formatJsonHtml(obj) { + var html = ""; + if (Array.isArray(obj)) { + html += "<ul>"; + obj.forEach(function(item) { + html += "<li>" + formatJsonHtml(item) + "</li>"; + }); + html += "</ul>"; + } else if (typeof obj === "object" && obj !== null) { + html += "<table border='1' cellspacing='0' cellpadding='4' style='border-collapse:collapse;'>"; + for (var key in obj) { + html += "<tr><td><b>" + key + "</b></td><td>" + formatJsonHtml(obj[key]) + "</td></tr>"; + } + html += "</table>"; + } else { + html += obj; + } + return html; +} + +try { + var parsed = JSON.parse(inputs.jsonString); + var formatted = ""; + var text = ""; + if (inputs.outputFormat === "html") { + text = formatJsonHtml(parsed); + } else { + text = formatJsonText(parsed, 0); + } + formatted = "Hello,\n\nHere is the parsed JSON data:\n\n" + + text + + "\nSent from,\nServiceNow Flow Action"; + outputs.emailbody = formatted; + outputs.status = "Success"; + +} catch (e) { + outputs.emailbody = "Error parsing JSON: " + e.message; + outputs.status = "Failed"; +} + +})(inputs, outputs); + 71aa7f6647032200b4fad7527c9a719b + + + + application + aa86effe83dc3a107ffb1630ceaad35f + admin + 2025-10-04 09:07:23 + 3e86effe83dc3a107ffb1630ceaad3bb + 0 + admin + 2025-10-04 09:07:23 + var__m_sys_flow_step_definition_input_106afb6647032200b4fad7527c9a71e7
+ +
+ + emailSubject + aa86effe83dc3a107ffb1630ceaad35f + admin + 2025-10-04 10:38:31 + 756bbffa83507a107ffb1630ceaad3f2 + 4 + admin + 2025-10-04 11:08:14 + var__m_sys_hub_step_ext_input_aa86effe83dc3a107ffb1630ceaad35f
+ {{action.emailsubject}} +
+ + emailTo + aa86effe83dc3a107ffb1630ceaad35f + admin + 2025-10-04 10:38:31 + a16bbffa83507a107ffb1630ceaad3f2 + 4 + admin + 2025-10-04 11:08:14 + var__m_sys_hub_step_ext_input_aa86effe83dc3a107ffb1630ceaad35f
+ {{action.emailto}} +
+ + email_subject + aa86effe83dc3a107ffb1630ceaad35f + admin + 2025-10-04 09:07:23 + b286effe83dc3a107ffb1630ceaad3be + 0 + admin + 2025-10-04 09:07:23 + var__m_sys_hub_step_ext_input_aa86effe83dc3a107ffb1630ceaad35f
+ {{action.email_subject}} +
+ + email_to + aa86effe83dc3a107ffb1630ceaad35f + admin + 2025-10-04 09:07:23 + 7a86effe83dc3a107ffb1630ceaad3bd + 0 + admin + 2025-10-04 09:07:23 + var__m_sys_hub_step_ext_input_aa86effe83dc3a107ffb1630ceaad35f
+ {{action.email_to}} +
+ + jsonString + aa86effe83dc3a107ffb1630ceaad35f + admin + 2025-10-04 10:38:31 + 296bbffa83507a107ffb1630ceaad3e5 + 4 + admin + 2025-10-04 11:08:14 + var__m_sys_hub_step_ext_input_aa86effe83dc3a107ffb1630ceaad35f
+ {{action.jsonstring}} +
+ + json_string + aa86effe83dc3a107ffb1630ceaad35f + admin + 2025-10-04 09:07:23 + 3e86effe83dc3a107ffb1630ceaad3bd + 0 + admin + 2025-10-04 09:07:23 + var__m_sys_hub_step_ext_input_aa86effe83dc3a107ffb1630ceaad35f
+ {{action.json_string}} +
+ + outputFormat + aa86effe83dc3a107ffb1630ceaad35f + admin + 2025-10-04 10:38:31 + 396bbffa83507a107ffb1630ceaad3f2 + 4 + admin + 2025-10-04 11:08:14 + var__m_sys_hub_step_ext_input_aa86effe83dc3a107ffb1630ceaad35f
+ {{action.outputformat}} +
+ + output_format + aa86effe83dc3a107ffb1630ceaad35f + admin + 2025-10-04 09:07:23 + fe86effe83dc3a107ffb1630ceaad3bd + 0 + admin + 2025-10-04 09:07:23 + var__m_sys_hub_step_ext_input_aa86effe83dc3a107ffb1630ceaad35f
+ {{action.output_format}} +
+ + script + aa86effe83dc3a107ffb1630ceaad35f + admin + 2025-10-04 09:07:23 + f286effe83dc3a107ffb1630ceaad3bc + 0 + admin + 2025-10-04 09:07:23 + var__m_sys_flow_step_definition_input_106afb6647032200b4fad7527c9a71e7
+ +
+ + + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String + false + + + + + + + + + + + + + false + false + + + + jsonString + false + + + + false + + + string + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String + false + + + + + + + + + + + + + false + false + + + + emailSubject + false + + + + false + + + string + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=choice,uiTypeLabel=Choice + false + + 1 + + + + + + + + + + + false + false + + + + outputFormat + false + + + + false + + + choice + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String + false + + + + + + + + + + + + + false + false + + + + emailTo + false + + + + false + + + string + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String,uiUniqueId=c61865d2-d9cf-4e5d-9a83-afd37c03b3c7 + false + + + + + + + + + + + + + false + false + + + + emailbody + false + + + + false + + + string + + false + 8000 + aa86effe83dc3a107ffb1630ceaad35f + aa86effe83dc3a107ffb1630ceaad35f + sys_hub_step_instance + var__m_sys_hub_step_ext_output_aa86effe83dc3a107ffb1630ceaad35f + + 1 + false + false + + + + false + + + + + + false + false + sys_hub_step_ext_output + admin + 2025-10-04 10:41:51 + 6e2cff3e83507a107ffb1630ceaad3e3 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 10:41:51 + false + false + false + false + false + simple + false + script + + + false + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String,uiUniqueId=45bbeeeb-b873-491a-b66a-12ae536883a6 + false + + + + + + + + + + + + + false + false + + + + status + false + + + + false + + + string + + false + 8000 + aa86effe83dc3a107ffb1630ceaad35f + aa86effe83dc3a107ffb1630ceaad35f + sys_hub_step_instance + var__m_sys_hub_step_ext_output_aa86effe83dc3a107ffb1630ceaad35f + + 2 + false + false + + + + false + + + + + + false + false + sys_hub_step_ext_output + admin + 2025-10-04 09:07:23 + be86effe83dc3a107ffb1630ceaad37b + 1 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 10:41:51 + false + false + false + false + false + simple + false + script + + + false + + + + status + + + + en + var__m_sys_hub_step_ext_output_aa86effe83dc3a107ffb1630ceaad35f + + sys_documentation + admin + 2025-10-04 09:07:23 + 3286effe83dc3a107ffb1630ceaad398 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 09:07:23 + + + + + emailbody + + + + en + var__m_sys_hub_step_ext_output_aa86effe83dc3a107ffb1630ceaad35f + + sys_documentation + admin + 2025-10-04 10:41:51 + ee2cff3e83507a107ffb1630ceaad3e6 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 10:41:51 + + + + + 8494ebfa83dc3a107ffb1630ceaad3a5 + 40794a43-d09b-408f-9078-888a5fd9fca8 + 1 + + + + + + + 2 + +
+ 4c5f36a37f0b32005f58108c3ffa9126 + admin + 2025-10-04 09:35:14 + aeec6f3a83107a107ffb1630ceaad341 + 3 + b812ceb69337a210633378917cba10bc + admin + 2025-10-04 10:52:06 + + + + sys_hub_step_instance + aeec6f3a83107a107ffb1630ceaad341 + 500 + sys_variable_value + admin + 2025-10-04 09:35:14 + 3aec6f3a83107a107ffb1630ceaad34c + 0 + admin + 2025-10-04 09:35:14 + + 8ef44f277f0b32005f58108c3ffa91f7 + + + sys_hub_step_instance + aeec6f3a83107a107ffb1630ceaad341 + 100 + sys_variable_value + admin + 2025-10-04 10:40:30 + bedb7b3e83507a107ffb1630ceaad306 + 1 + admin + 2025-10-04 10:52:06 + + 40cf3ae37f0b32005f58108c3ffa91f3 + + + + body + aeec6f3a83107a107ffb1630ceaad341 + admin + 2025-10-04 09:35:14 + b6ec6f3a83107a107ffb1630ceaad34c + 1 + admin + 2025-10-04 10:52:06 + var__m_sys_flow_step_definition_input_4c5f36a37f0b32005f58108c3ffa9126
+ <p data-tinymcerootblock=""><span class="data_parent_pill" style="display: inline;" contenteditable="false" data-pillvalue="{{fd_transform:233810ed-8d14-4889-b2ba-aaa75785c274}}"><span class="data_pill accepts_transform_functions" tabindex="0" contenteditable="false" data-pillvalue="{{fd_transform:233810ed-8d14-4889-b2ba-aaa75785c274}}" data-testid="DataPillId"><span class="data-pill-content-container"><span class="pills"><span class="pill-text" data-tooltip-id="ah_tooltipTop" data-tooltip-content="step &gt; Script step : Build Email Message &gt; emailBody"><span class="pill-start">step</span><span class="pill-arrow"><span class="data-pill-label-caret"><span class="data-pill-label-arrow">➛</span></span>...<span class="data-pill-label-caret"><span class="data-pill-label-arrow">➛</span></span></span><span class="pill-end">emailBody</span></span></span><button id="transform_function_facade_233810ed-8d14-4889-b2ba-aaa75785c274" class="transform_function_facade no_transform_applied" aria-label="Open transform function picker for step➛Script step : Build Email Message➛emailBody"><span class="inline-script-icon"><span style="display: none;">​</span></span></button></span></span></span><span class="data_parent_pill" style="display: inline;" contenteditable="false" data-pillvalue="{{fd_transform:4bf1d61b-a7c9-42ed-a42e-de19db704b72}}"><span class="data_pill accepts_transform_functions" tabindex="0" contenteditable="false" data-pillvalue="{{fd_transform:4bf1d61b-a7c9-42ed-a42e-de19db704b72}}" data-testid="DataPillId"><span class="data-pill-content-container"><button id="transform_function_facade_4bf1d61b-a7c9-42ed-a42e-de19db704b72" class="transform_function_facade no_transform_applied" aria-label="Open transform function picker for "><span class="inline-script-icon"><span style="display: none;">​</span></span></button></span></span></span></p> +
+ + subject + aeec6f3a83107a107ffb1630ceaad341 + admin + 2025-10-04 09:35:14 + 32ec6f3a83107a107ffb1630ceaad34c + 2 + admin + 2025-10-04 10:52:06 + var__m_sys_flow_step_definition_input_4c5f36a37f0b32005f58108c3ffa9126
+ {{action.emailsubject}} +
+ + to + aeec6f3a83107a107ffb1630ceaad341 + admin + 2025-10-04 09:35:14 + f2ec6f3a83107a107ffb1630ceaad34c + 2 + admin + 2025-10-04 10:52:06 + var__m_sys_flow_step_definition_input_4c5f36a37f0b32005f58108c3ffa9126
+ {{action.emailto}} +
+ + + + + + false + to + aeec6f3a83107a107ffb1630ceaad341 + sys_hub_step_instance + + admin + 2025-10-04 10:52:06 + 708ef33283907a107ffb1630ceaad3f2 + 0 + admin + 2025-10-04 10:52:06 + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String,uiUniqueId=4fa13113-06d1-4844-904a-5bc8bead6367 + false + + + + + + + + + + + + + false + false + + + + jsonstring + false + + + + false + + + string + + true + 8000 + 8494ebfa83dc3a107ffb1630ceaad3a5 + 8494ebfa83dc3a107ffb1630ceaad3a5 + sys_hub_action_type_definition + var__m_sys_hub_action_input_8494ebfa83dc3a107ffb1630ceaad3a5 + + 1 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-04 10:40:29 + 62db3b3e83507a107ffb1630ceaad38d + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 10:40:29 + false + false + false + false + false + simple + false + script + + + false + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String,uiUniqueId=1ebee2dc-8770-4f36-99c6-e1da16c16c75 + false + + + + + + + + + + + + + false + false + + + + emailsubject + false + + + + false + + + string + + true + 8000 + 8494ebfa83dc3a107ffb1630ceaad3a5 + 8494ebfa83dc3a107ffb1630ceaad3a5 + sys_hub_action_type_definition + var__m_sys_hub_action_input_8494ebfa83dc3a107ffb1630ceaad3a5 + + 3 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-04 10:40:29 + 6adb3b3e83507a107ffb1630ceaad395 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 10:40:29 + false + false + false + false + false + simple + false + script + + + false + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=choice,uiTypeLabel=Choice,uiUniqueId=f9f131f2-a937-48f5-bc6d-04a87497aebe + false + + 3 + + + + + + text + + + + + false + false + + + + outputformat + false + + + + false + + + choice + + false + 32 + 8494ebfa83dc3a107ffb1630ceaad3a5 + 8494ebfa83dc3a107ffb1630ceaad3a5 + sys_hub_action_type_definition + var__m_sys_hub_action_input_8494ebfa83dc3a107ffb1630ceaad3a5 + + 4 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-04 10:40:29 + e6db3b3e83507a107ffb1630ceaad399 + 29 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:24:06 + false + false + false + false + false + simple + false + script + + + false + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String,uiUniqueId=ae23f20c-20f9-46aa-8595-e1b3ec200516 + false + + + + + + + + + + + + + false + false + + + + emailto + false + + + + false + + + string + + true + 8000 + 8494ebfa83dc3a107ffb1630ceaad3a5 + 8494ebfa83dc3a107ffb1630ceaad3a5 + sys_hub_action_type_definition + var__m_sys_hub_action_input_8494ebfa83dc3a107ffb1630ceaad3a5 + + 2 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-04 10:40:29 + eadb3b3e83507a107ffb1630ceaad391 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 10:40:29 + false + false + false + false + false + simple + false + script + + + false + + + + + true + false + false + action_error_output=true,co_type_name=FDACTIONSTATUS,element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=object,uiTypeLabel=Object,uiUniqueId=0d69a5c6-e5e8-4bae-86d4-52293d841dec + false + + + + + + + + + + + + + false + false + + + + __action_status__ + + false + + + + false + + + + string + + false + 65000 + 8494ebfa83dc3a107ffb1630ceaad3a5 + 8494ebfa83dc3a107ffb1630ceaad3a5 + sys_hub_action_type_definition + var__m_sys_hub_action_output_8494ebfa83dc3a107ffb1630ceaad3a5 + + 1 + false + false + + + + false + + + + + + false + false + sys_hub_action_output + admin + 2025-10-04 09:07:23 + 7686effe83dc3a107ffb1630ceaad3c1 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 09:07:23 + false + false + false + false + false + simple + false + script + + + false + + + + + true + false + false + action_error_output=true,element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=boolean,uiTypeLabel=True/False,uiUniqueId=e3a947de-9259-4396-a666-99cd3bb43a67,visible_in_ui=false + false + + + + + + + + true + + + + + false + false + + + + __dont_treat_as_error__ + + false + + + + false + + + + boolean + + false + 40 + 8494ebfa83dc3a107ffb1630ceaad3a5 + 8494ebfa83dc3a107ffb1630ceaad3a5 + sys_hub_action_type_definition + var__m_sys_hub_action_output_8494ebfa83dc3a107ffb1630ceaad3a5 + + 2 + false + false + + + + false + + + + + + false + false + sys_hub_action_output + admin + 2025-10-04 09:07:23 + f286effe83dc3a107ffb1630ceaad3c6 + 63 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:24:06 + false + false + false + false + false + simple + false + script + + + false + + + + + + 8494ebfa83dc3a107ffb1630ceaad3a5 + + 0 + {{step[49f27f4b-9e85-4008-93ae-cb254135b954].emailbody}} + + admin + 2025-10-04 10:52:06 + 7c8e373283907a107ffb1630ceaad30b + 0 + b812ceb69337a210633378917cba10bc + admin + 2025-10-04 10:52:06 + [] + + 233810ed-8d14-4889-b2ba-aaa75785c274 + + + 8494ebfa83dc3a107ffb1630ceaad3a5 + + 0 + {{step[49f27f4b-9e85-4008-93ae-cb254135b954].email_body}} + + admin + 2025-10-04 09:35:14 + b2ec6f3a83107a107ffb1630ceaad358 + 0 + b812ceb69337a210633378917cba10bc + admin + 2025-10-04 09:35:14 + [] + + 4bf1d61b-a7c9-42ed-a42e-de19db704b72 + + + + 8494ebfa83dc3a107ffb1630ceaad3a5 + admin + 2025-10-04 09:07:23 + be86effe83dc3a107ffb1630ceaad3d1 + 0 + admin + 2025-10-04 09:07:23 + + + + emailto + + + + en + var__m_sys_hub_action_input_8494ebfa83dc3a107ffb1630ceaad3a5 + + sys_documentation + admin + 2025-10-04 10:40:29 + 2edb3b3e83507a107ffb1630ceaad394 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 10:40:29 + + + + + outputformat + + + + en + var__m_sys_hub_action_input_8494ebfa83dc3a107ffb1630ceaad3a5 + + sys_documentation + admin + 2025-10-04 10:40:30 + 3adb3b3e83507a107ffb1630ceaad3ab + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 10:40:30 + + + + + emailsubject + + + + en + var__m_sys_hub_action_input_8494ebfa83dc3a107ffb1630ceaad3a5 + + sys_documentation + admin + 2025-10-04 10:40:29 + aadb3b3e83507a107ffb1630ceaad398 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 10:40:29 + + + + + jsonstring + + + + en + var__m_sys_hub_action_input_8494ebfa83dc3a107ffb1630ceaad3a5 + + sys_documentation + admin + 2025-10-04 10:40:29 + aedb3b3e83507a107ffb1630ceaad390 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 10:40:29 + + + + + + + + outputformat + + false + + en + var__m_sys_hub_action_input_8494ebfa83dc3a107ffb1630ceaad3a5 + 1 + + admin + 2025-10-04 10:40:30 + global + / + 26db3b3e83507a107ffb1630ceaad39c + 0 + admin + 2025-10-04 10:40:30 + html + + + + outputformat + + false + + en + var__m_sys_hub_action_input_8494ebfa83dc3a107ffb1630ceaad3a5 + 0 + + admin + 2025-10-04 10:40:30 + global + / + 6edb3b3e83507a107ffb1630ceaad39b + 0 + admin + 2025-10-04 10:40:30 + text + + + + + + output_format + + false + + en + var__m_sys_hub_action_input_8494ebfa83dc3a107ffb1630ceaad3a5 + 2 + + admin + 2025-10-04 09:24:41 + global + / + 008aa77683107a107ffb1630ceaad3fb + 0 + admin + 2025-10-04 09:24:41 + html + + + + output_format + + false + + en + var__m_sys_hub_action_input_8494ebfa83dc3a107ffb1630ceaad3a5 + 0 + + admin + 2025-10-04 09:24:50 + global + / + 5e8ae77683107a107ffb1630ceaad3e3 + 2 + admin + 2025-10-04 09:26:11 + + + + + output_format + + false + + en + var__m_sys_hub_action_input_8494ebfa83dc3a107ffb1630ceaad3a5 + 1 + + admin + 2025-10-04 09:24:41 + global + / + 888aa77683107a107ffb1630ceaad3f9 + 0 + admin + 2025-10-04 09:24:41 + text + + + + __dont_treat_as_error__ + + + + en + var__m_sys_hub_action_output_8494ebfa83dc3a107ffb1630ceaad3a5 + + sys_documentation + admin + 2025-10-04 09:07:23 + 7a86effe83dc3a107ffb1630ceaad3cb + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 09:07:23 + + + + + __action_status__ + + + + en + var__m_sys_hub_action_output_8494ebfa83dc3a107ffb1630ceaad3a5 + + sys_documentation + admin + 2025-10-04 09:07:23 + b686effe83dc3a107ffb1630ceaad3c5 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 09:07:23 + + + + + + + 8494ebfa83dc3a107ffb1630ceaad3a5 + {"type":"PlanProxy","persistor":{"@class":".ChunkingPlanPersistor","table":"sys_hub_action_plan","id":"6ccda3ba83107a107ffb1630ceaad3c7","name":"plan","plan_signature":null}} + 7dd5c88b83907a107ffb1630ceaad3c8 + admin + 2025-10-04 09:38:55 + global + / + 6ccda3ba83107a107ffb1630ceaad3c7 + 3 + + + admin + 2025-10-04 11:24:08 + + + public + + + + + {labelCacheCleanUpExecuted=true} + 28000 + false + + + + Parses a JSON string into a human-readable message and sends it via email. + +The Action has two steps: + +1. Script step to parse and format JSON (plain text or HTML). +2. Email step to send the formatted output to the specified recipient. + +Flow Action is generic and reusable: +1. Works for any JSON. +2. Can send to one or many recipients. +3. Subject is customizable. +4. Output is selectable (plain text or HTML). + + parse_json_and_send_email + [{"name":"{{action.json_string}}","label":"action➛json String","type":"action","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.email_to}}","label":"action➛email_to","type":"action","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.email_subject}}","label":"action➛email_subject","type":"action","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.output_format}}","label":"action➛output_format","type":"action","ref":"","reference_display":"","base_type":"choice","parent_table_name":"","column_name":"","choices":[{"label":"text","value":"text","order":1.0},{"label":"html","value":"html","order":2.0}],"attributes":{"uiTypeLabel":"Choice","element_mapping_provider":"com.glide.flow_design.action.data.FlowDesignVariableMapper","uiType":"choice","uiUniqueId":"3a35560c-997e-49ac-a961-88f6bac9572f"}},{"name":"{{action.jsonstring}}","label":"action➛jsonString","type":"action","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.emailto}}","label":"action➛emailTo","type":"action","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.emailsubject}}","label":"action➛emailSubject","type":"action","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{}},{"name":"{{action.outputformat}}","label":"action➛outputFormat","type":"action","ref":"","reference_display":"","base_type":"choice","parent_table_name":"","column_name":"","choices":[{"label":"text","value":"text","order":0.0},{"label":"html","value":"html","order":1.0}],"attributes":{}},{"name":"{{step[49f27f4b-9e85-4008-93ae-cb254135b954].emailbody}}","label":"step➛Script step : Build Email Message➛emailBody","type":"step","ref":"","reference_display":"","base_type":"string","parent_table_name":"","column_name":"","choices":null,"attributes":{"uiTypeLabel":"String","element_mapping_provider":"com.glide.flow_design.action.data.FlowDesignVariableMapper","uiType":"string","uiUniqueId":"c61865d2-d9cf-4e5d-9a83-afd37c03b3c7"}}] + true + Parse JSON and Send Email + + + 8494ebfa83dc3a107ffb1630ceaad3a5 + sys_hub_action_type_snapshot + admin + 2025-10-04 09:38:53 + global + / + 54cda3ba83107a107ffb1630ceaad30c + 1 + + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:09:22 + false + + + + + + sys_hub_action_type_snapshot + 54cda3ba83107a107ffb1630ceaad30c + 1 + sys_variable_value + admin + 2025-10-04 09:38:54 + 28cda3ba83107a107ffb1630ceaad36e + 0 + admin + 2025-10-04 09:38:54 + {"version":"1.0","complexObject":{"code":{"$cv":{"$c":"java.lang.String","$v":""}},"message":{"$cv":{"$c":"java.lang.String","$v":""}}},"complexObjectSchema":{"FlowDesigner:FDACTIONSTATUS":{"code":"Integer","code.$field_facets":{"SimpleMapFacet":"{\"uiTypeLabel\":\"Integer\",\"read_only\":\"false\",\"hint\":\"\",\"uiType\":\"integer\",\"default_value\":\"\",\"label\":\"Code\",\"action_error_output\":\"true\",\"mandatory\":\"false\",\"order\":\"1\",\"max_length\":\"40\"}"},"message":"String","message.$field_facets":{"SimpleMapFacet":"{\"uiTypeLabel\":\"String\",\"read_only\":\"false\",\"hint\":\"\",\"uiType\":\"string\",\"default_value\":\"\",\"label\":\"Message\",\"action_error_output\":\"true\",\"mandatory\":\"false\",\"order\":\"2\",\"max_length\":\"4000\"}"}},"FlowDesigner:FDACTIONSTATUS.$type_facets":{"SimpleMapFacet":"{\"default_value\":\"\",\"label\":\"Action Status\",\"action_error_output\":\"true\",\"mandatory\":\"false\",\"uiUniqueId\":\"4adfb7bc-9d67-498d-88d0-8d6c3d584fed\",\"uiTypeLabel\":\"Object\",\"co_type_name\":\"FDACTIONSTATUS\",\"element_mapping_provider\":\"com.glide.flow_design.action.data.FlowDesignVariableMapper\",\"read_only\":\"false\",\"hint\":null,\"uiType\":\"object\",\"order\":\"1\",\"max_length\":\"65000\"}"}},"serializationFormat":"JSON"} + 58cda3ba83107a107ffb1630ceaad360 + + + sys_hub_action_type_snapshot + 54cda3ba83107a107ffb1630ceaad30c + 2 + sys_variable_value + admin + 2025-10-04 09:38:54 + 64cda3ba83107a107ffb1630ceaad36e + 0 + admin + 2025-10-04 09:38:54 + 0 + eccda3ba83107a107ffb1630ceaad364 + + + + + 54cda3ba83107a107ffb1630ceaad30c + 49f27f4b-9e85-4008-93ae-cb254135b954 + 1 + + + + + + + 1 + +
+ 106afb6647032200b4fad7527c9a71e7 + admin + 2025-10-04 09:38:53 + 1ccda3ba83107a107ffb1630ceaad326 + 4 + b812ceb69337a210633378917cba10bc + admin + 2025-10-04 11:24:07 + + + + sys_hub_step_instance + 1ccda3ba83107a107ffb1630ceaad326 + 600 + sys_variable_value + admin + 2025-10-04 09:38:54 + 50cda3ba83107a107ffb1630ceaad352 + 3 + admin + 2025-10-04 11:24:07 + /** + * Hacktoberfest Prototype Notice + * + * This code is an initial concept submitted for Hacktoberfest. + * + * It is intended as a starting point and needs significant refinement, code review, and testing before it can be considered ready for production or any real-world ServiceNow implementation. + * + * The main concern is: + * - Optimizing JSON parsing, especially for deep/nested structures. + * + * Other important areas for improvement include: + * - Comprehensive error handling and edge case support. + * - Security reviews, including input validation(JSON Validation) and output sanitization. + * - Integration with wider ServiceNow Flow Designer best practices. + * + * + */ + +(function execute(inputs, outputs) { +/** +   * Custom Action Inputs +   * +   * This action accepts the following inputs: +   * +   * @param jsonString    (Type: String, Mandatory: Yes) +   *                       Example: { "user": "Anu", "role": "Admin" } +   *                       The JSON data to parse. +   * +   * @param emailTo       (Type: String, Mandatory: Yes) +   *                       Example: [anu@example.com](mailto:anu@example.com),[manager@example.com](mailto:manager@example.com) +   *                       Comma-separated list of recipients. +   * +   * @param emailSubject  (Type: String, Mandatory: Yes) +   *                       Example: New User Created in ServiceNow +   *                       Custom subject for the email. +   * +   * @param outputFormat  (Type: String, Mandatory: No, Default = text) +   *                       Example: html or text +   *                       Controls formatting of the email body. +   */ +function formatJsonText(obj, indent) { + var emailText = ""; + var spacing = " ".repeat(indent); + + if (Array.isArray(obj)) { + obj.forEach(function(item, index) { + emailText += spacing + "- Item " + (index + 1) + ":\n"; + emailText += formatJsonText(item, indent + 1); + }); + } else if (typeof obj === "object" && obj !== null) { + for (var key in obj) { + if (typeof obj[key] === "object") { + emailText += spacing + key + ":\n"; + emailText += formatJsonText(obj[key], indent + 1); + } else { + emailText += spacing + key + ": " + obj[key] + "\n"; + } + } + } else { + emailText += spacing + obj + "\n"; + } + return emailText; +} + +function formatJsonHtml(obj) { + var html = ""; + if (Array.isArray(obj)) { + html += "<ul>"; + obj.forEach(function(item) { + html += "<li>" + formatJsonHtml(item) + "</li>"; + }); + html += "</ul>"; + } else if (typeof obj === "object" && obj !== null) { + html += "<table border='1' cellspacing='0' cellpadding='4' style='border-collapse:collapse;'>"; + for (var key in obj) { + html += "<tr><td><b>" + key + "</b></td><td>" + formatJsonHtml(obj[key]) + "</td></tr>"; + } + html += "</table>"; + } else { + html += obj; + } + return html; +} + +try { + var parsed = JSON.parse(inputs.jsonString); + var formatted = ""; + var text = ""; + if (inputs.outputFormat === "html") { + text = formatJsonHtml(parsed); + } else { + text = formatJsonText(parsed, 0); + } + formatted = "Hello,\n\nHere is the parsed JSON data:\n\n" + + text + + "\nSent from,\nServiceNow Flow Action"; + outputs.emailbody = formatted; + outputs.status = "Success"; + +} catch (e) { + outputs.emailbody = "Error parsing JSON: " + e.message; + outputs.status = "Failed"; +} + +})(inputs, outputs); + 71aa7f6647032200b4fad7527c9a719b + + + sys_hub_step_instance + 1ccda3ba83107a107ffb1630ceaad326 + 400 + sys_variable_value + admin + 2025-10-04 09:38:54 + 9ccda3ba83107a107ffb1630ceaad351 + 0 + admin + 2025-10-04 09:38:54 + 35aa573fd7802200bdbaee5b5e610375 + f5e56d79b3101300176b051a16a8dce4 + + + + application + 1ccda3ba83107a107ffb1630ceaad326 + admin + 2025-10-04 09:38:54 + 58cda3ba83107a107ffb1630ceaad351 + 0 + admin + 2025-10-04 09:38:54 + var__m_sys_flow_step_definition_input_106afb6647032200b4fad7527c9a71e7
+ +
+ + emailSubject + 1ccda3ba83107a107ffb1630ceaad326 + admin + 2025-10-04 11:09:24 + 8272c08783907a107ffb1630ceaad35a + 0 + admin + 2025-10-04 11:09:24 + var__m_sys_hub_step_ext_input_1ccda3ba83107a107ffb1630ceaad326
+ {{action.emailsubject}} +
+ + emailTo + 1ccda3ba83107a107ffb1630ceaad326 + admin + 2025-10-04 11:09:24 + 0e72c08783907a107ffb1630ceaad359 + 0 + admin + 2025-10-04 11:09:24 + var__m_sys_hub_step_ext_input_1ccda3ba83107a107ffb1630ceaad326
+ {{action.emailto}} +
+ + email_subject + 1ccda3ba83107a107ffb1630ceaad326 + admin + 2025-10-04 09:38:54 + d0cda3ba83107a107ffb1630ceaad353 + 0 + admin + 2025-10-04 09:38:54 + var__m_sys_hub_step_ext_input_1ccda3ba83107a107ffb1630ceaad326
+ {{action.email_subject}} +
+ + email_to + 1ccda3ba83107a107ffb1630ceaad326 + admin + 2025-10-04 09:38:54 + 98cda3ba83107a107ffb1630ceaad352 + 0 + admin + 2025-10-04 09:38:54 + var__m_sys_hub_step_ext_input_1ccda3ba83107a107ffb1630ceaad326
+ {{action.email_to}} +
+ + jsonString + 1ccda3ba83107a107ffb1630ceaad326 + admin + 2025-10-04 11:09:24 + 4a72c08783907a107ffb1630ceaad359 + 0 + admin + 2025-10-04 11:09:24 + var__m_sys_hub_step_ext_input_1ccda3ba83107a107ffb1630ceaad326
+ {{action.jsonstring}} +
+ + json_string + 1ccda3ba83107a107ffb1630ceaad326 + admin + 2025-10-04 09:38:54 + 5ccda3ba83107a107ffb1630ceaad352 + 0 + admin + 2025-10-04 09:38:54 + var__m_sys_hub_step_ext_input_1ccda3ba83107a107ffb1630ceaad326
+ {{action.json_string}} +
+ + outputFormat + 1ccda3ba83107a107ffb1630ceaad326 + admin + 2025-10-04 11:09:24 + ce72c08783907a107ffb1630ceaad359 + 0 + admin + 2025-10-04 11:09:24 + var__m_sys_hub_step_ext_input_1ccda3ba83107a107ffb1630ceaad326
+ {{action.outputformat}} +
+ + output_format + 1ccda3ba83107a107ffb1630ceaad326 + admin + 2025-10-04 09:38:54 + 10cda3ba83107a107ffb1630ceaad353 + 0 + admin + 2025-10-04 09:38:54 + var__m_sys_hub_step_ext_input_1ccda3ba83107a107ffb1630ceaad326
+ {{action.output_format}} +
+ + script + 1ccda3ba83107a107ffb1630ceaad326 + admin + 2025-10-04 09:38:54 + 1ccda3ba83107a107ffb1630ceaad351 + 0 + admin + 2025-10-04 09:38:54 + var__m_sys_flow_step_definition_input_106afb6647032200b4fad7527c9a71e7
+ +
+ + + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=choice,uiTypeLabel=Choice + false + + 1 + + + + + + + + + + + false + false + + + + outputFormat + false + + + + false + + + choice + + true + 40 + 1ccda3ba83107a107ffb1630ceaad326 + 1ccda3ba83107a107ffb1630ceaad326 + sys_hub_step_instance + var__m_sys_hub_step_ext_input_1ccda3ba83107a107ffb1630ceaad326 + + 300 + false + false + + + + false + + + + + + false + false + sys_hub_step_ext_input + admin + 2025-10-04 11:09:23 + 0272c08783907a107ffb1630ceaad305 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:09:23 + false + false + false + false + false + simple + false + script + + + false + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String + false + + + + + + + + + + + + + false + false + + + + emailTo + false + + + + false + + + string + + true + 8000 + 1ccda3ba83107a107ffb1630ceaad326 + 1ccda3ba83107a107ffb1630ceaad326 + sys_hub_step_instance + var__m_sys_hub_step_ext_input_1ccda3ba83107a107ffb1630ceaad326 + + 100 + false + false + + + + false + + + + + + false + false + sys_hub_step_ext_input + admin + 2025-10-04 11:09:23 + 8e72808783907a107ffb1630ceaad3fe + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:09:23 + false + false + false + false + false + simple + false + script + + + false + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String + false + + + + + + + + + + + + + false + false + + + + jsonString + false + + + + false + + + string + + true + 8000 + 1ccda3ba83107a107ffb1630ceaad326 + 1ccda3ba83107a107ffb1630ceaad326 + sys_hub_step_instance + var__m_sys_hub_step_ext_input_1ccda3ba83107a107ffb1630ceaad326 + + 0 + false + false + + + + false + + + + + + false + false + sys_hub_step_ext_input + admin + 2025-10-04 11:09:23 + bd72808783907a107ffb1630ceaad3fa + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:09:23 + false + false + false + false + false + simple + false + script + + + false + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String + false + + + + + + + + + + + + + false + false + + + + emailSubject + false + + + + false + + + string + + true + 8000 + 1ccda3ba83107a107ffb1630ceaad326 + 1ccda3ba83107a107ffb1630ceaad326 + sys_hub_step_instance + var__m_sys_hub_step_ext_input_1ccda3ba83107a107ffb1630ceaad326 + + 200 + false + false + + + + false + + + + + + false + false + sys_hub_step_ext_input + admin + 2025-10-04 11:09:23 + ce72c08783907a107ffb1630ceaad301 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:09:23 + false + false + false + false + false + simple + false + script + + + false + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String,uiUniqueId=c61865d2-d9cf-4e5d-9a83-afd37c03b3c7 + false + + + + + + + + + + + + + false + false + + + + emailbody + false + + + + false + + + string + + false + 8000 + 1ccda3ba83107a107ffb1630ceaad326 + 1ccda3ba83107a107ffb1630ceaad326 + sys_hub_step_instance + var__m_sys_hub_step_ext_output_1ccda3ba83107a107ffb1630ceaad326 + + 1 + false + false + + + + false + + + + + + false + false + sys_hub_step_ext_output + admin + 2025-10-04 11:09:24 + 0272c08783907a107ffb1630ceaad33a + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:09:24 + false + false + false + false + false + simple + false + script + + + false + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String,uiUniqueId=45bbeeeb-b873-491a-b66a-12ae536883a6 + false + + + + + + + + + + + + + false + false + + + + status + false + + + + false + + + string + + false + 8000 + 1ccda3ba83107a107ffb1630ceaad326 + 1ccda3ba83107a107ffb1630ceaad326 + sys_hub_step_instance + var__m_sys_hub_step_ext_output_1ccda3ba83107a107ffb1630ceaad326 + + 2 + false + false + + + + false + + + + + + false + false + sys_hub_step_ext_output + admin + 2025-10-04 09:38:54 + 58cda3ba83107a107ffb1630ceaad338 + 1 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:09:24 + false + false + false + false + false + simple + false + script + + + false + + + + emailbody + + + + en + var__m_sys_hub_step_ext_output_1ccda3ba83107a107ffb1630ceaad326 + + sys_documentation + admin + 2025-10-04 11:09:24 + 8e72c08783907a107ffb1630ceaad33c + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:09:24 + + + + + status + + + + en + var__m_sys_hub_step_ext_output_1ccda3ba83107a107ffb1630ceaad326 + + sys_documentation + admin + 2025-10-04 09:38:54 + 94cda3ba83107a107ffb1630ceaad33b + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 09:38:54 + + + + + 54cda3ba83107a107ffb1630ceaad30c + 40794a43-d09b-408f-9078-888a5fd9fca8 + 1 + + + + + + + 2 + +
+ 4c5f36a37f0b32005f58108c3ffa9126 + admin + 2025-10-04 09:38:54 + 50cda3ba83107a107ffb1630ceaad356 + 2 + b812ceb69337a210633378917cba10bc + admin + 2025-10-04 11:09:24 + + + + sys_hub_step_instance + 50cda3ba83107a107ffb1630ceaad356 + 500 + sys_variable_value + admin + 2025-10-04 09:38:54 + 90cda3ba83107a107ffb1630ceaad35f + 0 + admin + 2025-10-04 09:38:54 + + 8ef44f277f0b32005f58108c3ffa91f7 + + + + body + 50cda3ba83107a107ffb1630ceaad356 + admin + 2025-10-04 09:38:54 + 10cda3ba83107a107ffb1630ceaad35f + 1 + admin + 2025-10-04 11:09:24 + var__m_sys_flow_step_definition_input_4c5f36a37f0b32005f58108c3ffa9126
+ <p data-tinymcerootblock=""><span class="data_parent_pill" style="display: inline;" contenteditable="false" data-pillvalue="{{fd_transform:233810ed-8d14-4889-b2ba-aaa75785c274}}"><span class="data_pill accepts_transform_functions" tabindex="0" contenteditable="false" data-pillvalue="{{fd_transform:233810ed-8d14-4889-b2ba-aaa75785c274}}" data-testid="DataPillId"><span class="data-pill-content-container"><span class="pills"><span class="pill-text" data-tooltip-id="ah_tooltipTop" data-tooltip-content="step &gt; Script step : Build Email Message &gt; emailBody"><span class="pill-start">step</span><span class="pill-arrow"><span class="data-pill-label-caret"><span class="data-pill-label-arrow">➛</span></span>...<span class="data-pill-label-caret"><span class="data-pill-label-arrow">➛</span></span></span><span class="pill-end">emailBody</span></span></span><button id="transform_function_facade_233810ed-8d14-4889-b2ba-aaa75785c274" class="transform_function_facade no_transform_applied" aria-label="Open transform function picker for step➛Script step : Build Email Message➛emailBody"><span class="inline-script-icon"><span style="display: none;">​</span></span></button></span></span></span><span class="data_parent_pill" style="display: inline;" contenteditable="false" data-pillvalue="{{fd_transform:4bf1d61b-a7c9-42ed-a42e-de19db704b72}}"><span class="data_pill accepts_transform_functions" tabindex="0" contenteditable="false" data-pillvalue="{{fd_transform:4bf1d61b-a7c9-42ed-a42e-de19db704b72}}" data-testid="DataPillId"><span class="data-pill-content-container"><button id="transform_function_facade_4bf1d61b-a7c9-42ed-a42e-de19db704b72" class="transform_function_facade no_transform_applied" aria-label="Open transform function picker for "><span class="inline-script-icon"><span style="display: none;">​</span></span></button></span></span></span></p> +
+ + subject + 50cda3ba83107a107ffb1630ceaad356 + admin + 2025-10-04 09:38:54 + 98cda3ba83107a107ffb1630ceaad35e + 1 + admin + 2025-10-04 11:09:24 + var__m_sys_flow_step_definition_input_4c5f36a37f0b32005f58108c3ffa9126
+ {{action.emailsubject}} +
+ + to + 50cda3ba83107a107ffb1630ceaad356 + admin + 2025-10-04 09:38:54 + 5ccda3ba83107a107ffb1630ceaad35e + 1 + admin + 2025-10-04 11:09:24 + var__m_sys_flow_step_definition_input_4c5f36a37f0b32005f58108c3ffa9126
+ {{action.emailto}} +
+ + + + + + false + to + 50cda3ba83107a107ffb1630ceaad356 + sys_hub_step_instance + + admin + 2025-10-04 11:09:24 + 4272c08783907a107ffb1630ceaad365 + 0 + admin + 2025-10-04 11:09:24 + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String,uiUniqueId=ae23f20c-20f9-46aa-8595-e1b3ec200516 + false + + + + + + + + + + + + + false + false + + + + emailto + false + + + + false + + + string + + true + 8000 + 54cda3ba83107a107ffb1630ceaad30c + 54cda3ba83107a107ffb1630ceaad30c + sys_hub_action_type_snapshot + var__m_sys_hub_action_input_54cda3ba83107a107ffb1630ceaad30c + + 2 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-04 11:09:22 + 3172808783907a107ffb1630ceaad39f + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:09:22 + false + false + false + false + false + simple + false + script + + + false + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String,uiUniqueId=4fa13113-06d1-4844-904a-5bc8bead6367 + false + + + + + + + + + + + + + false + false + + + + jsonstring + false + + + + false + + + string + + true + 8000 + 54cda3ba83107a107ffb1630ceaad30c + 54cda3ba83107a107ffb1630ceaad30c + sys_hub_action_type_snapshot + var__m_sys_hub_action_input_54cda3ba83107a107ffb1630ceaad30c + + 1 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-04 11:09:22 + 7972808783907a107ffb1630ceaad39a + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:09:22 + false + false + false + false + false + simple + false + script + + + false + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=string,uiTypeLabel=String,uiUniqueId=1ebee2dc-8770-4f36-99c6-e1da16c16c75 + false + + + + + + + + + + + + + false + false + + + + emailsubject + false + + + + false + + + string + + true + 8000 + 54cda3ba83107a107ffb1630ceaad30c + 54cda3ba83107a107ffb1630ceaad30c + sys_hub_action_type_snapshot + var__m_sys_hub_action_input_54cda3ba83107a107ffb1630ceaad30c + + 3 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-04 11:09:23 + f172808783907a107ffb1630ceaad3af + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:09:23 + false + false + false + false + false + simple + false + script + + + false + + + + true + false + false + element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=choice,uiTypeLabel=Choice,uiUniqueId=f9f131f2-a937-48f5-bc6d-04a87497aebe + false + + 3 + + + + + + text + + + + + false + false + + + + outputformat + false + + + + false + + + choice + + false + 32 + 54cda3ba83107a107ffb1630ceaad30c + 54cda3ba83107a107ffb1630ceaad30c + sys_hub_action_type_snapshot + var__m_sys_hub_action_input_54cda3ba83107a107ffb1630ceaad30c + + 4 + false + false + + + + false + + + + + + false + false + sys_hub_action_input + admin + 2025-10-04 11:09:23 + fd72808783907a107ffb1630ceaad3b2 + 3 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:24:07 + false + false + false + false + false + simple + false + script + + + false + + + + + true + false + false + action_error_output=true,co_type_name=FDACTIONSTATUS,element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=object,uiTypeLabel=Object,uiUniqueId=0d69a5c6-e5e8-4bae-86d4-52293d841dec + false + + + + + + + + + + + + + false + false + + + + __action_status__ + + false + + + + false + + + + string + + false + 65000 + 54cda3ba83107a107ffb1630ceaad30c + 54cda3ba83107a107ffb1630ceaad30c + sys_hub_action_type_snapshot + var__m_sys_hub_action_output_54cda3ba83107a107ffb1630ceaad30c + + 1 + false + false + + + + false + + + + + + false + false + sys_hub_action_output + admin + 2025-10-04 09:38:54 + 58cda3ba83107a107ffb1630ceaad360 + 0 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 09:38:54 + false + false + false + false + false + simple + false + script + + + false + + + + + true + false + false + action_error_output=true,element_mapping_provider=com.glide.flow_design.action.data.FlowDesignVariableMapper,uiType=boolean,uiTypeLabel=True/False,uiUniqueId=e3a947de-9259-4396-a666-99cd3bb43a67,visible_in_ui=false + false + + + + + + + + true + + + + + false + false + + + + __dont_treat_as_error__ + + false + + + + false + + + + boolean + + false + 40 + 54cda3ba83107a107ffb1630ceaad30c + 54cda3ba83107a107ffb1630ceaad30c + sys_hub_action_type_snapshot + var__m_sys_hub_action_output_54cda3ba83107a107ffb1630ceaad30c + + 2 + false + false + + + + false + + + + + + false + false + sys_hub_action_output + admin + 2025-10-04 09:38:54 + eccda3ba83107a107ffb1630ceaad364 + 7 + + + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:24:08 + false + false + false + false + false + simple + false + script + + + false + + + + + + 54cda3ba83107a107ffb1630ceaad30c + + 0 + {{step[49f27f4b-9e85-4008-93ae-cb254135b954].email_body}} + + admin + 2025-10-04 09:38:54 + 2ccda3ba83107a107ffb1630ceaad36f + 0 + b812ceb69337a210633378917cba10bc + admin + 2025-10-04 09:38:54 + [] + + 4bf1d61b-a7c9-42ed-a42e-de19db704b72 + + + 54cda3ba83107a107ffb1630ceaad30c + + 0 + {{step[49f27f4b-9e85-4008-93ae-cb254135b954].emailbody}} + + admin + 2025-10-04 11:09:24 + 4272c08783907a107ffb1630ceaad372 + 0 + b812ceb69337a210633378917cba10bc + admin + 2025-10-04 11:09:24 + [] + + 233810ed-8d14-4889-b2ba-aaa75785c274 + + + + 54cda3ba83107a107ffb1630ceaad30c + admin + 2025-10-04 09:38:54 + 20cda3ba83107a107ffb1630ceaad370 + 0 + admin + 2025-10-04 09:38:54 + + + + emailsubject + + + + en + var__m_sys_hub_action_input_54cda3ba83107a107ffb1630ceaad30c + + sys_documentation + admin + 2025-10-04 11:09:23 + b172808783907a107ffb1630ceaad3b2 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:09:23 + + + + + emailto + + + + en + var__m_sys_hub_action_input_54cda3ba83107a107ffb1630ceaad30c + + sys_documentation + admin + 2025-10-04 11:09:23 + b572808783907a107ffb1630ceaad3ae + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:09:23 + + + + + jsonstring + + + + en + var__m_sys_hub_action_input_54cda3ba83107a107ffb1630ceaad30c + + sys_documentation + admin + 2025-10-04 11:09:22 + f172808783907a107ffb1630ceaad39e + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:09:22 + + + + + outputformat + + + + en + var__m_sys_hub_action_input_54cda3ba83107a107ffb1630ceaad30c + + sys_documentation + admin + 2025-10-04 11:09:23 + f572808783907a107ffb1630ceaad3b8 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 11:09:23 + + + + + + + + outputformat + + false + + en + var__m_sys_hub_action_input_54cda3ba83107a107ffb1630ceaad30c + 0 + + admin + 2025-10-04 11:09:23 + global + / + 3572808783907a107ffb1630ceaad3b5 + 0 + admin + 2025-10-04 11:09:23 + text + + + + outputformat + + false + + en + var__m_sys_hub_action_input_54cda3ba83107a107ffb1630ceaad30c + 1 + + admin + 2025-10-04 11:09:23 + global + / + f972808783907a107ffb1630ceaad3b5 + 0 + admin + 2025-10-04 11:09:23 + html + + + + + + output_format + + false + + en + var__m_sys_hub_action_input_54cda3ba83107a107ffb1630ceaad30c + 0 + + admin + 2025-10-04 09:38:53 + global + / + 14cda3ba83107a107ffb1630ceaad31d + 0 + admin + 2025-10-04 09:38:53 + + + + + output_format + + false + + en + var__m_sys_hub_action_input_54cda3ba83107a107ffb1630ceaad30c + 2 + + admin + 2025-10-04 09:38:53 + global + / + 90cda3ba83107a107ffb1630ceaad31e + 0 + admin + 2025-10-04 09:38:53 + html + + + + output_format + + false + + en + var__m_sys_hub_action_input_54cda3ba83107a107ffb1630ceaad30c + 1 + + admin + 2025-10-04 09:38:53 + global + / + d8cda3ba83107a107ffb1630ceaad31d + 0 + admin + 2025-10-04 09:38:53 + text + + + + __action_status__ + + + + en + var__m_sys_hub_action_output_54cda3ba83107a107ffb1630ceaad30c + + sys_documentation + admin + 2025-10-04 09:38:54 + 90cda3ba83107a107ffb1630ceaad364 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 09:38:54 + + + + + __dont_treat_as_error__ + + + + en + var__m_sys_hub_action_output_54cda3ba83107a107ffb1630ceaad30c + + sys_documentation + admin + 2025-10-04 09:38:54 + e8cda3ba83107a107ffb1630ceaad369 + 0 + + b812ceb69337a210633378917cba10bc + + b812ceb69337a210633378917cba10bc + + admin + 2025-10-04 09:38:54 + + + + + + 8494ebfa83dc3a107ffb1630ceaad3a5 + 54cda3ba83107a107ffb1630ceaad30c + glide-zurich-07-01-2025__patch0-07-15-2025_07-23-2025_1759.zip + +