{"id":8185,"date":"2025-05-28T10:18:20","date_gmt":"2025-05-28T01:18:20","guid":{"rendered":"https:\/\/aireviewirush.com\/?p=8185"},"modified":"2025-05-28T10:18:20","modified_gmt":"2025-05-28T01:18:20","slug":"integrating-servicenow-ot-asset-workspaces-with-aws-iot-sitewise-asset-fashions","status":"publish","type":"post","link":"https:\/\/aireviewirush.com\/?p=8185","title":{"rendered":"Integrating ServiceNow OT Asset Workspaces with AWS IoT SiteWise Asset Fashions"},"content":{"rendered":"<p> <br \/>\n<\/p>\n<div id=\"\">\n<p>In as we speak\u2019s digital enterprise panorama, organizations more and more depend on asset administration options to streamline their operations. Corporations typically discover themselves managing the identical bodily property throughout a number of IT and operational expertise (OT) methods. One of many providers that assist IT groups observe and handle enterprise IT property is <a href=\"https:\/\/www.servicenow.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">ServiceNow<\/a>. This service handles every thing from {hardware} and software program stock to service requests, license compliance, and the entire lifecycle of expertise sources. For OT, <a href=\"https:\/\/aws.amazon.com\/iot-sitewise\/\" target=\"_blank\" rel=\"noopener noreferrer\">AWS IoT SiteWise<\/a> is a managed service that allows corporations to gather, manage, and analyze industrial gear knowledge at scale. This service supplies a unified repository of stay and historic operational knowledge, empowering organizations to make data-driven choices that improve manufacturing effectivity and optimize asset upkeep.<\/p>\n<p>A standard problem that organizations face utilizing ServiceNow and AWS IoT SiteWise collectively is sustaining constant asset data throughout their methods. When an asset hierarchy is up to date in ServiceNow, operations groups should manually replicate these modifications in AWS IoT SiteWise, resulting in duplicate work and potential inconsistencies. This course of can be time-consuming, error-prone, and creates pointless overhead to handle the identical property in each environments.This weblog put up presents an method to synchronize asset knowledge between ServiceNow and AWS IoT SiteWise. By implementing this integration sample, you may eradicate guide updates, scale back errors, and preserve constant asset hierarchies throughout your IT and OT platforms.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_53 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title \" >Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\" role=\"button\"><label for=\"item-6a2c75ce0f912\" ><span class=\"\"><span style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input aria-label=\"Toggle\" aria-label=\"item-6a2c75ce0f912\"  type=\"checkbox\" id=\"item-6a2c75ce0f912\"><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/aireviewirush.com\/?p=8185\/#Resolution_overview\" title=\"Resolution overview\">Resolution overview<\/a><ul class='ez-toc-list-level-3'><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/aireviewirush.com\/?p=8185\/#Conditions\" title=\"Conditions\">Conditions<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/aireviewirush.com\/?p=8185\/#Implementation\" title=\"Implementation\">Implementation<\/a><ul class='ez-toc-list-level-3'><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/aireviewirush.com\/?p=8185\/#Configure_the_ServiceNow_connector\" title=\"Configure the ServiceNow connector\">Configure the ServiceNow connector<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/aireviewirush.com\/?p=8185\/#Remodel_the_JSON_information\" title=\"Remodel the JSON information\">Remodel the JSON information<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/aireviewirush.com\/?p=8185\/#Import_into_AWS_IoT_SiteWise\" title=\"Import into AWS IoT SiteWise\">Import into AWS IoT SiteWise<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/aireviewirush.com\/?p=8185\/#Validate_your_work\" title=\"Validate your work\">Validate your work<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/aireviewirush.com\/?p=8185\/#Cleanup\" title=\"Cleanup\">Cleanup<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/aireviewirush.com\/?p=8185\/#Conclusion\" title=\"Conclusion\">Conclusion<\/a><ul class='ez-toc-list-level-3'><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/aireviewirush.com\/?p=8185\/#In_regards_to_the_authors\" title=\"In regards to the authors\">In regards to the authors<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Resolution_overview\"><\/span>Resolution overview<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>This answer makes use of AWS providers to create an automatic integration between ServiceNow and AWS IoT SiteWise. When modifications happen in ServiceNow\u2019s asset administration system, they will robotically circulation via to AWS IoT SiteWise, guaranteeing each methods stay synchronized.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-16730 aligncenter\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_1_Architecture.png\" alt=\"Architecture\" width=\"1020\" height=\"327\"\/><\/p>\n<p style=\"text-align: center\">Determine 1: Structure<\/p>\n<p>Determine 1 reveals a two-phase knowledge circulation. Within the first section (Ingest), knowledge strikes from ServiceNow via Amazon AppFlow to in <a href=\"https:\/\/aws.amazon.com\/pm\/serv-s3\/?trk=fecf68c9-3874-4ae2-a7ed-72b6d19c8034&amp;sc_channel=ps&amp;ef_id=Cj0KCQjwh_i_BhCzARIsANimeoERoEnC94DM5XOVtkPcj1PeePw7UAHM89HxZju9yOs32soV4xVTpnoaAiUHEALw_wcB:G:s&amp;s_kwcid=AL!4422!3!536452728638!e!!g!!amazon%20s3!11204620052!112938567994&amp;gclid=Cj0KCQjwh_i_BhCzARIsANimeoERoEnC94DM5XOVtkPcj1PeePw7UAHM89HxZju9yOs32soV4xVTpnoaAiUHEALw_wcB\" target=\"_blank\" rel=\"noopener noreferrer\">Amazon Easy Storage Service (Amazon S3)<\/a>. Within the second section (Import), the info flows via AWS Glue and again to Amazon S3 earlier than reaching AWS IoT SiteWise. Each phases serve totally different functions:<\/p>\n<p><strong>Ingest section:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/aws.amazon.com\/appflow\/\" target=\"_blank\" rel=\"noopener noreferrer\">Amazon AppFlow<\/a> pulls asset knowledge from ServiceNow tables: Operations Know-how (OT), OT Entity, OT Entity Sort.<\/li>\n<li>The info is then saved in Amazon S3 and in <a href=\"https:\/\/parquet.apache.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">parquet format<\/a>.<\/li>\n<\/ul>\n<p><strong>Import section:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/aws.amazon.com\/glue\/\" target=\"_blank\" rel=\"noopener noreferrer\">AWS Glue<\/a> transforms the parquet information to a <a href=\"https:\/\/docs.aws.amazon.com\/iot-sitewise\/latest\/userguide\/bulk-operations-schema.html\" target=\"_blank\" rel=\"noopener noreferrer\">JSON format<\/a> that AWS IoT SiteWise can import.<\/li>\n<li>Remodeled JSON information are saved in Amazon S3.<\/li>\n<li>AWS IoT SiteWise imports the asset data to create or replace asset fashions and hierarchies.<\/li>\n<\/ul>\n<p><strong>Implementation overview<\/strong><\/p>\n<p>This put up presents the next phases to implement this integration:<\/p>\n<ol>\n<li>Configure the ServiceNow connector in Amazon AppFlow to ingest asset knowledge into Amazon S3.<\/li>\n<li>Create AWS Glue jobs to rework the info from parquet to JSON to match the required AWS IoT SiteWise import format.<\/li>\n<li>Arrange AWS IoT SiteWise asset import from Amazon S3.<\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"Conditions\"><\/span>Conditions<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Earlier than implementing this answer, you\u2019ll want:<\/p>\n<ul>\n<li>A ServiceNow occasion with entry to your asset tables. On this instance, we use:\n<ul>\n<li>Operations Know-how (OT) (<code>cmdb_ci_ot<\/code>): Incorporates operational expertise system data from ServiceNow. These data embrace primary attributes like title, serial quantity, mannequin quantity, producer, and placement data.<\/li>\n<li>OT Entity (<code>cmdb_ot_entity<\/code>): Incorporates data that outline the OT entity situations and their relationships. It additionally represents how gadgets join to one another within the operational hierarchy.<\/li>\n<li>OT Entity Sort (<code>cmdb_ot_entity_type<\/code>): Incorporates data that outline the categories or classes of OT entities (akin to, Space, Course of Cell, Unit, and Tools Module). It additionally defines the allowed parent-child relationships within the operational hierarchy.<\/li>\n<\/ul>\n<\/li>\n<li>Three tables work collectively to supply an entire image of OT property:\n<ul>\n<li><code>cmdb_ci_ot<\/code> handles the bodily system data (configuration Gadgets).<\/li>\n<li><code>cmdb_ot_entity<\/code> manages the situations and relationships of those gadgets.<\/li>\n<li><code>cmdb_ot_entity_type<\/code> defines the hierarchy construction guidelines and classes.<\/li>\n<\/ul>\n<\/li>\n<li>An AWS account with permissions to make use of Amazon AppFlow, Amazon S3, AWS Glue, and AWS IoT SiteWise.<\/li>\n<li>ServiceNow credentials for a system-only consumer with permission to learn your asset tables.<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Implementation\"><\/span>Implementation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"Configure_the_ServiceNow_connector\"><\/span>Configure the ServiceNow connector<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>On this part, you&#8217;ll arrange Amazon AppFlow to tug knowledge from ServiceNow and configure AWS Glue to catalog the info.<\/p>\n<p><strong>Create a ServiceNow connection in Amazon AppFlow<\/strong><\/p>\n<ol>\n<li>Navigate to the Amazon AppFlow console.<\/li>\n<li>Within the left menu, underneath <strong>Connections<\/strong>, select <strong>ServiceNow<\/strong> from the Connectors dropdown.<\/li>\n<li>Select <strong>Create connection<\/strong>.<\/li>\n<li>Within the <strong>Connect with ServiceNow<\/strong> pop up, see Determine 2, enter the next:\n<ol type=\"a\">\n<li>Choose both <strong>Primary Auth<\/strong> or <strong>OAuth2<\/strong> as wanted.<\/li>\n<li>Fill within the mandatory data in accordance with the <a href=\"https:\/\/docs.aws.amazon.com\/appflow\/latest\/userguide\/servicenow.html\" target=\"_blank\" rel=\"noopener noreferrer\">consumer information<\/a>.\n<ol type=\"i\">\n<li>In case you select OAuth2 fill within the Shopper ID, Shopper secret and Occasion URL to your ServiceNow Occasion.<\/li>\n<li>In case you select Primary Auth fill within the Username, Password and Occasion URL to your ServiceNow Occasion.<\/li>\n<\/ol>\n<\/li>\n<li>Click on join as soon as all data is stuffed in.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-16731\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_2_Connect-to-ServiceNow-1024x1024.png\" alt=\"Connect to ServiceNow\" width=\"600\" height=\"599\"\/><\/p>\n<p style=\"text-align: center\">Determine 2: Connect with ServiceNow<\/p>\n<p><strong>Create flows for every desk<\/strong><\/p>\n<ol>\n<li>Navigate to the Amazon AppFlow console.<\/li>\n<li>Within the left menu, underneath <strong>Flows<\/strong>, select <strong>Create circulation<\/strong>.<\/li>\n<li>Enter a <strong>Movement Title<\/strong> (for instance: <code>cmdb_ci_ot<\/code>), see Determine 3, and choose <strong>Subsequent<\/strong>.<\/li>\n<\/ol>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-16732 \" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_3_Create-flow.png\" alt=\"Create flow\" width=\"600\" height=\"322\"\/><\/p>\n<p style=\"text-align: center\">Determine 3: Create circulation<\/p>\n<ol start=\"4\">\n<li>Within the <strong>Supply particulars <\/strong>dialog field, see Determine 4, enter the next:\n<ol type=\"a\">\n<li>For <strong>Supply Title,<\/strong> choose <strong>ServiceNow.<\/strong><\/li>\n<li>Ensure that the connection you created earlier is chosen underneath <strong>ServiceNow connection<\/strong>. The reference may have the title of your ServiceNow occasion, this instance makes use of \u201cdev287617\u201d.<\/li>\n<li>For <strong>ServiceNow object<\/strong>, choose <strong>Operational Know-how (OT)<\/strong>.<\/li>\n<\/ol>\n<\/li>\n<li>Navigate to the <strong>Vacation spot particulars <\/strong>dialog field, see Determine 4, and enter the next:\n<ol type=\"a\">\n<li>For <strong>Vacation spot title<\/strong>, select <strong>Amazon S3.<\/strong><\/li>\n<li>Underneath <strong>Bucket particulars<\/strong>, both select your vacation spot bucket or <a href=\"https:\/\/docs.aws.amazon.com\/AmazonS3\/latest\/userguide\/create-bucket-overview.html\" target=\"_blank\" rel=\"noopener noreferrer\">create one<\/a> via the <a href=\"https:\/\/console.aws.amazon.com\/s3\/\" target=\"_blank\" rel=\"noopener noreferrer\">Amazon S3 console<\/a>. This instance makes use of the bucket prefix <code>cmdb_ci_ot<\/code>.<\/li>\n<\/ol>\n<\/li>\n<li>Select <strong>Subsequent<\/strong>.<\/li>\n<\/ol>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-16733 \" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_4_Flow-source-and-destination.png\" alt=\"Flow source and destination\" width=\"599\" height=\"345\"\/><\/p>\n<p style=\"text-align: center\">Determine 4: Movement supply and vacation spot<\/p>\n<ol start=\"7\">\n<li>Within the <strong>Supply to vacation spot discipline mapping <\/strong>dialog field, see Determine 5, enter the next:\n<ol type=\"a\">\n<li>Underneath <strong>Supply discipline title<\/strong>, select <strong>Map all fields straight<\/strong>.<\/li>\n<li>Select <strong>Subsequent<\/strong> after which select <strong>Subsequent<\/strong> once more.<\/li>\n<li>End by selecting <strong>Run circulation<\/strong>.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-16734 aligncenter\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_5_Run-flow.png\" alt=\"Run flow\" width=\"594\" height=\"125\"\/><\/p>\n<p style=\"text-align: center\">Determine 5: Run circulation<\/p>\n<p>Repeat the \u201cCreate flows for every desk\u201d process to create a circulation for every of your tables to create connections with the opposite ServiceNow objects:<\/p>\n<ol type=\"a\">\n<li>Movement title and Amazon S3 prefix: <code>cmdb_ot_entity<\/code>, ServiceNow object: OT Asset.<\/li>\n<li>Movement title and Amazon S3 prefix: <code>cmdb_ot_entity_type<\/code>, ServiceNow object: OT Asset Sort.<\/li>\n<li style=\"list-style-type: none\"\/>\n       <\/ol>\n<p><strong>Arrange and run AWS Glue Crawler to determine the schema<\/strong><\/p>\n<ol>\n<li>Navigate to AWS Glue console.<\/li>\n<li>Within the left menu, underneath <strong>Knowledge Catalog<\/strong>, select <strong>Crawlers<\/strong>.<\/li>\n<li>Within the <strong>Crawlers<\/strong> dialog field, see Determine 6, select <strong>Create crawler<\/strong>.<\/li>\n<\/ol>\n<p><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-16735 aligncenter\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_6_AWS-Glue-crawlers.png\" alt=\"AWS Glue crawlers\" width=\"594\" height=\"114\"\/><\/p>\n<p style=\"text-align: center\">Determine 6: AWS Glue crawlers<\/p>\n<ol start=\"4\">\n<li>For <strong>Crawler title<\/strong>, use <strong>ServiceNow Crawler<\/strong> and select <strong>Subsequent<\/strong>.<\/li>\n<\/ol>\n<p><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-16736 aligncenter\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_7_Crawler-properties.png\" alt=\"Crawler properties\" width=\"599\" height=\"196\"\/><\/p>\n<p style=\"text-align: center\">Determine 7: Crawler properties<\/p>\n<ol start=\"5\">\n<li>Select <strong>Add an information supply<\/strong>.<\/li>\n<li>Within the <strong>Add knowledge supply <\/strong>dialog field, see Determine 8, enter the next:\n<ol type=\"a\">\n<li>For <strong>Knowledge supply<\/strong>, select <strong>S3<\/strong>.<\/li>\n<li>For <strong>S3 path<\/strong>, select <code>&lt;your_bucket_name&gt;<\/code>.<\/li>\n<li>Choose <strong>Add an S3 knowledge supply<\/strong>.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p style=\"text-align: center\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-16737 \" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_8_Crawler-data-source-777x1024.png\" alt=\"Crawler data source\" width=\"203\" height=\"268\"\/><br \/>Determine 8: Crawler knowledge supply<\/p>\n<ol start=\"7\">\n<li>Select <strong>Subsequent<\/strong>.<\/li>\n<li>Underneath IAM function, choose <strong>Create new IAM function, <\/strong>see Determine 9.<\/li>\n<\/ol>\n<p><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-16738 aligncenter\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_9_Crawler-IAM-Role.png\" alt=\"Crawler IAM Role\" width=\"481\" height=\"243\"\/><\/p>\n<p style=\"text-align: center\">Determine 9: Crawler IAM Position<\/p>\n<ol start=\"9\">\n<li>Select a reputation for the function. On this instance, we use <code>AWSGlueServiceRole-ServiceNowCrawler<\/code>.<\/li>\n<li>Choose <strong>Subsequent.<\/strong><\/li>\n<li>Underneath Goal database, select an AWS Glue Database. This instance makes use of the default database.<\/li>\n<\/ol>\n<p><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-16739 aligncenter\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_10_AWS-Glue-Database-Selection.png\" alt=\"AWS Glue Database\" width=\"509\" height=\"258\"\/><\/p>\n<p style=\"text-align: center\">Determine 10: AWS Glue Database Choice<\/p>\n<ol start=\"12\">\n<li>Select <strong>Subsequent<\/strong>.<\/li>\n<li>Select <strong>Create<\/strong>.<\/li>\n<li>Run the crawler. It ought to take round two minutes to finish.<\/li>\n<\/ol>\n<p>The ServiceNow parquet knowledge has now been efficiently imported into Amazon S3.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Remodel_the_JSON_information\"><\/span>Remodel the JSON information<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>On this part, you&#8217;ll arrange the AWS Glue job to rework the parquet information to JSON format appropriate for AWS IoT SiteWise and import the info into AWS IoT SiteWise.<\/p>\n<p><strong>Create AWS Glue Job<\/strong><\/p>\n<ol>\n<li>Navigate to AWS Glue console.<\/li>\n<li>Within the menu to the left, underneath <strong>ETL Jobs<\/strong>, select <strong>Visible ETL.<\/strong><\/li>\n<li>In <strong>Create Job<\/strong>, choose <strong>Visible ETL.<\/strong><\/li>\n<\/ol>\n<p><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-16740 aligncenter\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_11_AWS-Glue-studio.png\" alt=\"AWS Glue studio\" width=\"666\" height=\"242\"\/><\/p>\n<p style=\"text-align: center\">Determine 11: AWS Glue studio<\/p>\n<ol start=\"4\">\n<li>Create a Supply node. Choose the blue plus (+) button, see Determine 12, and choose <strong>Amazon S3<\/strong>.<\/li>\n<\/ol>\n<p><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-16741 aligncenter\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_12_Visual-ETL.png\" alt=\"Visual ETL\" width=\"659\" height=\"293\"\/><\/p>\n<p style=\"text-align: center\">Determine 12: Visible ETL<\/p>\n<ol start=\"5\">\n<li>For <strong>Title<\/strong>, select any title for the node, see Determine 13. On this instance, we are going to use cmdb_ot_entity.<\/li>\n<li>For <strong>S3 supply kind<\/strong>, choose <strong>Knowledge Catalog desk<\/strong>.<\/li>\n<li>For <strong>Database, <\/strong>select the goal database you beforehand chosen when organising your AWS Glue Crawler.<\/li>\n<li>For <strong>Desk<\/strong>, select the primary desk <code>cmbd_ot_entity<\/code>. Repeat this step for every of the tables: <code>cmdb_ci_ot<\/code> and <code>cmdb_ot_entity_type<\/code>.<\/li>\n<\/ol>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-16742\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_13_Adding-source-node.png\" alt=\"Adding source node\" width=\"300\" height=\"263\"\/><\/p>\n<p style=\"text-align: center\">Determine 13: Including supply node<\/p>\n<p><strong>Map property to the AWS IoT SiteWise import format<\/strong><\/p>\n<ol>\n<li>Create a brand new Supply node by deciding on the blue \u201c+\u201d button as proven in Determine 12.<\/li>\n<li>Add a <strong>Remodel<\/strong> node and choose <strong>SQL Question<\/strong>.<\/li>\n<li>For <strong>Title<\/strong>, use <strong>\u201cproperty\u201d<\/strong>.<\/li>\n<li>For <strong>Node dad and mom<\/strong>, select the supply nodes <code>cmdb_ot_entity<\/code> and <code>cmdb_ci_ot<\/code>.<\/li>\n<li>For Enter sources and SQL Aliases, select <code>cmdb_ot_entity<\/code> and <code>cmdb_ci_ot<\/code> for every, as proven in Determine 14.<\/li>\n<\/ol>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-16743\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_14_assets-transform.png\" alt=\"assets transform\" width=\"300\" height=\"263\"\/><\/p>\n<p style=\"text-align: center\">Determine 14: property remodel<\/p>\n<ol start=\"6\">\n<li>For <strong>SQL Question<\/strong>, copy and paste the next question:<\/li>\n<\/ol>\n<div class=\"hide-language\">\n<div class=\"hide-language\">\n<pre><code class=\"lang-sql\">SELECT DISTINCT\n    mother or father.sys_id as assetExternalId,\n    mother or father.title as assetName,\n    mother or father.ot_asset_type as assetModelExternalId,\n    COLLECT_LIST(\n        CASE \n            WHEN baby.sys_id IS NOT NULL THEN \n                STRUCT(\n                    array_join(array(mother or father.ot_asset_type, baby.ot_asset_type), '-') as externalId,\n                    baby.sys_id as childAssetExternalId\n                )\n        END\n    ) as assetHierarchies,\n    (\n        CASE \n            WHEN ot.sys_id IS NOT NULL THEN \n                array(\n                    STRUCT('title' as externalId, ot.title as attributeValue),\n                    STRUCT('serial_number' as externalId, ot.serial_number as attributeValue),\n                    STRUCT('producer' as externalId, ot.producer as attributeValue),\n                    STRUCT('model_number' as externalId, ot.model_number as attributeValue),\n                    STRUCT('firmware_version' as externalId, ot.firmware_version as attributeValue),\n                    STRUCT('hardware_version' as externalId, ot.hardware_version as attributeValue),\n                    STRUCT('asset_tag' as externalId, ot.asset_tag as attributeValue),\n                    STRUCT('class' as externalId, ot.class as attributeValue),\n                    STRUCT('atmosphere' as externalId, ot.atmosphere as attributeValue),\n                    STRUCT('short_description' as externalId, ot.short_description as attributeValue)\n                )\n            ELSE array()\n        END\n    ) as assetProperties\nFROM cmdb_ot_entity as mother or father\nLEFT JOIN cmdb_ci_ot as ot\n    ON mother or father.ot_asset = ot.sys_id\nLEFT JOIN cmdb_ot_entity as baby\n    ON mother or father.sys_id = baby.mother or father\nGROUP BY mother or father.sys_id, mother or father.title, mother or father.ot_asset_type, ot.sys_id, ot.title, ot.serial_number, ot.producer, ot.model_number, ot.firmware_version, ot.hardware_version, ot.asset_tag, ot.class, ot.atmosphere, ot.short_description<\/code><\/pre>\n<\/p><\/div>\n<\/p><\/div>\n<p><strong>Map the asset mannequin<\/strong><\/p>\n<ol start=\"7\">\n<li>Create a brand new Supply node by deciding on the blue \u201c+\u201d button as proven in Determine 12.<\/li>\n<li>Add a brand new <strong>Remodel<\/strong> node and choose <strong>SQL Question<\/strong>.<\/li>\n<li>For <strong>Title<\/strong>, use \u201c<strong>assetModels<\/strong>\u201d.<\/li>\n<li>For <strong>Node Dad and mom, <\/strong>select the supply node <code>cmdb_ot_entity_type<\/code>.<\/li>\n<li>For Enter sources and SQL Aliases, use <code>cmdb_ot_entity_type<\/code> for every, as proven in Determine 15.<\/li>\n<\/ol>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-16744\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_15_assetModel-transform.png\" alt=\"assetModel transform\" width=\"300\" height=\"365\"\/><\/p>\n<p style=\"text-align: center\">Determine 15: assetModel remodel<\/p>\n<ol start=\"12\">\n<li>For <strong>SQL Question<\/strong>, copy and paste the next question:<\/li>\n<\/ol>\n<div class=\"hide-language\">\n<div class=\"hide-language\">\n<pre><code class=\"lang-sql\">SELECT DISTINCT\n    mother or father.sys_id as assetModelExternalId,\n    mother or father.label as assetModelName,\n    (\n        CASE \n            WHEN mother or father.ot_table IS NOT NULL THEN \n                from_json(\n                '[{\"dataType\":\"STRING\",\"externalId\":\"name\",\"name\":\"Name\",\"type\":{\"attribute\":{\"defaultValue\":\"-\"}},\"unit\":\"-\"},{\"dataType\":\"STRING\",\"externalId\":\"serial_number\",\"name\":\"Serial Number\",\"type\":{\"attribute\":{\"defaultValue\":\"-\"}},\"unit\":\"-\"},{\"dataType\":\"STRING\",\"externalId\":\"manufacturer\",\"name\":\"Manufacturer\",\"type\":{\"attribute\":{\"defaultValue\":\"-\"}},\"unit\":\"-\"},{\"dataType\":\"STRING\",\"externalId\":\"model_number\",\"name\":\"Model Number\",\"type\":{\"attribute\":{\"defaultValue\":\"-\"}},\"unit\":\"-\"},{\"dataType\":\"STRING\",\"externalId\":\"firmware_version\",\"name\":\"Firmware Version\",\"type\":{\"attribute\":{\"defaultValue\":\"-\"}},\"unit\":\"-\"},{\"dataType\":\"STRING\",\"externalId\":\"hardware_version\",\"name\":\"Hardware Version\",\"type\":{\"attribute\":{\"defaultValue\":\"-\"}},\"unit\":\"-\"},{\"dataType\":\"STRING\",\"externalId\":\"asset_tag\",\"name\":\"Asset Tag\",\"type\":{\"attribute\":{\"defaultValue\":\"-\"}},\"unit\":\"-\"},{\"dataType\":\"STRING\",\"externalId\":\"category\",\"name\":\"Category\",\"type\":{\"attribute\":{\"defaultValue\":\"-\"}},\"unit\":\"-\"},{\"dataType\":\"STRING\",\"externalId\":\"environment\",\"name\":\"Environment\",\"type\":{\"attribute\":{\"defaultValue\":\"-\"}},\"unit\":\"-\"},{\"dataType\":\"STRING\",\"externalId\":\"short_description\",\"name\":\"Short Description\",\"type\":{\"attribute\":{\"defaultValue\":\"-\"}},\"unit\":\"-\"}]',\n                    'array&amp;amp;lt;struct&amp;amp;lt;dataType:string,externalId:string,title:string,kind:struct&amp;amp;lt;attribute:struct&amp;amp;lt;defaultValue:string&amp;amp;gt;&amp;amp;gt;,unit:string&amp;amp;gt;&amp;amp;gt;'\n                )\n            ELSE array()\n        END\n    ) as assetModelProperties,\n    COLLECT_LIST(\n        CASE \n            WHEN baby.sys_id IS NOT NULL THEN \n                STRUCT(\n                    array_join(array(mother or father.sys_id, baby.sys_id), '-') as externalId,\n                    baby.title as title,\n                    baby.sys_id as childAssetModelExternalId\n                )\n        END\n    ) as assetModelHierarchies\nFROM cmdb_ot_entity_type as mother or father\nLEFT JOIN cmdb_ot_entity_type as baby\n    ON mother or father.sys_id = baby.parent_type\nGROUP BY mother or father.sys_id, mother or father.title, mother or father.label, mother or father.ot_table<\/code><\/pre>\n<\/p><\/div>\n<\/p><\/div>\n<p><strong>Mix the property and assetModels<\/strong><\/p>\n<ol start=\"13\">\n<li>Create a brand new Supply node by deciding on the blue \u201c+\u201d button as proven in Determine 12.<\/li>\n<li>Add a brand new node <strong>Remodel<\/strong> and choose <strong>SQL Question<\/strong>.<\/li>\n<li>For <strong>Title<\/strong>, use <strong>\u201cassetModelHierarchy\u201d<\/strong>.<\/li>\n<li>For <strong>Node dad and mom<\/strong>, select the supply nodes <strong>property<\/strong> and <strong>assetModels<\/strong>.<\/li>\n<li>For Enter sources and SQL aliases, use <strong>property <\/strong>and <strong>assetModels<\/strong> for every, as proven in Determine 16.<\/li>\n<\/ol>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-16745\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_16_assetModelHierarchy-transform.png\" alt=\"assetModelHierarchy transform\" width=\"300\" height=\"263\"\/><\/p>\n<p style=\"text-align: center\">Determine 16: assetModelHierarchy remodel<\/p>\n<ol start=\"18\">\n<li>For <strong>SQL Question<\/strong>, copy and paste the next question:<\/li>\n<\/ol>\n<div class=\"hide-language\">\n<pre><code class=\"lang-sql\">SELECT (\n    SELECT COLLECT_LIST(STRUCT(assetModels.*)) as assetModels\n    FROM assetModels\n) as assetModels,\n(\n    SELECT COLLECT_LIST(STRUCT(property.*)) as property\n    FROM property\n) as property<\/code><\/pre>\n<\/p><\/div>\n<p>Now, add the goal of the remodel so you may retailer the results of our AWS Glue Job for use for importing into AWS IoT SiteWise.<\/p>\n<p><strong>Add the goal of the remodel<\/strong><\/p>\n<ol start=\"19\">\n<li>Create a brand new Supply node by deciding on the blue \u201c+\u201d button as proven in Determine 12.<\/li>\n<li>Add a brand new node <strong>Remodel<\/strong> and choose <strong>Amazon S3 <\/strong>from the targets.<\/li>\n<li>For <strong>Title<\/strong>, use something. This instance usesAmazon S3.<\/li>\n<li>For <strong>Node Dad and mom<\/strong>, select the supply node <strong>assetModelHierarchy<\/strong>.<\/li>\n<li>For <strong>Format<\/strong>, select <strong>JSON<\/strong>.<\/li>\n<li>For <strong>Compression Sort<\/strong>, select <strong>None<\/strong>.<\/li>\n<li>For <strong>S3 Goal Location<\/strong>, choose <code>&lt;your_destination_bucket&gt;<\/code>.<\/li>\n<\/ol>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-16746\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_17_Adding-target-node.png\" alt=\"Adding target node\" width=\"300\" height=\"358\"\/><\/p>\n<p style=\"text-align: center\">Determine 17: Including goal node<\/p>\n<p>As soon as full, you must see the ETL that\u2019s proven in Determine 18. Select <strong>Save<\/strong>.<\/p>\n<p>Then choose <strong>Run <\/strong>and await it to complete.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-16747 aligncenter\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_18_Asset-hierarchy.png\" alt=\"Asset hierarchy\" width=\"644\" height=\"290\"\/><\/p>\n<p style=\"text-align: center\">Determine 18: Asset hierarchy<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Import_into_AWS_IoT_SiteWise\"><\/span>Import into AWS IoT SiteWise<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>On this part, you&#8217;ll affirm the creation of the JSON file in Amazon S3 and import the ServiceNow property into AWS IoT SiteWise.<\/p>\n<ol>\n<li>First, affirm JSON file was created by doing the next:\n<ol type=\"a\">\n<li>Open the Amazon S3 console.<\/li>\n<li>Choose <code>&lt;your_destination_bucket&gt;<\/code><strong>.<\/strong><\/li>\n<li>Choose the <code>run-&lt;timestamp&gt;-part-r-00000<\/code> file, then select <strong>Actions.<\/strong><\/li>\n<li>Choose <strong>Rename Object<\/strong>, then rename it to <code>sitewise-import.json<\/code>. With a purpose to import it to AWS IoT SiteWise, the item should have the json extension added to the title.<\/li>\n<\/ol>\n<\/li>\n<li>To import into AWS IoT SiteWise, open the AWS IoT SiteWise console.\n<ol type=\"a\">\n<li>Within the navigation pane, select <strong>Bulk Operations<\/strong>.<\/li>\n<li style=\"text-align: left\">Choose <strong>New Import<\/strong><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-16748 aligncenter\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_19_AWS-IoT-SiteWise-bulk-operations.png\" alt=\"AWS IoT SiteWise bulk operations\" width=\"634\" height=\"273\"\/>\n<p>\n             Determine 19: AWS IoT SiteWise bulk operations\n           <\/p>\n<\/li>\n<li style=\"text-align: left\">Within the Import metadata dialog field, for S3 URI, choose <code>&lt;your_destination_bucket&gt;<\/code> then the <code>sitewise-import.json file.<\/code><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-16749 aligncenter\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_20_S3-import.png\" alt=\"S3 import\" width=\"630\" height=\"271\"\/>\n<p>\n             Determine 20: S3 import\n           <\/p>\n<\/li>\n<li style=\"text-align: left\">Choose <strong>Import<\/strong> and await the import to complete.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"Validate_your_work\"><\/span>Validate your work<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Now you can view the totally different fashions and mannequin properties as proven in Determine 21. It&#8217;s also possible to view the totally different property and asset properties as proven in Figures 22, 23, and 24. Your ServiceNow hierarchy is now efficiently replicated into AWS IoT SiteWise.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-16750 aligncenter\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_21_AWS-IoT-SiteWise-models.png\" alt=\"AWS IoT SiteWise models\" width=\"669\" height=\"176\"\/><\/p>\n<p style=\"text-align: center\">Determine 21: AWS IoT SiteWise fashions<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-16751 aligncenter\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_22_AWS-IoT-SiteWise-model-properties.png\" alt=\"AWS IoT SiteWise model properties\" width=\"667\" height=\"345\"\/><\/p>\n<p style=\"text-align: center\">Determine 22: AWS IoT SiteWise mannequin properties<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-16752 aligncenter\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_23_AWS-IoT-SiteWise-assets.png\" alt=\"AWS IoT SiteWise assets\" width=\"672\" height=\"305\"\/><\/p>\n<p style=\"text-align: center\">Determine 23: AWS IoT SiteWise property<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\" wp-image-16753 aligncenter\" style=\"margin: 10px 0px 10px 0px;border: 1px solid #CCCCCC\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/21\/IOTB-835_24_AWS-IoT-SIteWise-asset-properties.png\" alt=\"AWS IoT SiteWise asset properties\" width=\"678\" height=\"351\"\/><\/p>\n<p style=\"text-align: center\">Determine 24: AWS IoT SiteWise asset properties<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Cleanup\"><\/span>Cleanup<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>To wash up the work outlined on this weblog, navigate to the Amazon AppFlow console to delete the flows and ServiceNow connection. Delete any consumer and consumer credentials created for ServiceNow. In AWS Glue, delete the crawler, job, and tables from the AWS Glue Knowledge Catalog. Take away the property and asset fashions from AWS IoT SiteWise. Lastly, delete each the parquet and reworked JSON information out of your Amazon S3 buckets.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>This weblog offered a course of to combine ServiceNow asset knowledge with AWS IoT SiteWise, a observe that permits organizations to keep up constant asset data throughout their IT and OT asset administration options. To totally automate this integration, schedule your Amazon AppFlow flows to run at common intervals and configure your AWS Glue job with a schedule set off. When organising the AWS Glue job, you can even add the \u2018.json\u2019 extension to the output file through the ETL script. Each options eradicate guide knowledge entry and guarantee consistency between IT and OT methods.<\/p>\n<p>Strive implementing this answer and tell us about your expertise within the feedback part under. Wish to be taught extra about AWS IoT SiteWise? See the <a href=\"https:\/\/docs.aws.amazon.com\/iot-sitewise\/latest\/userguide\/what-is-sitewise.html\" target=\"_blank\" rel=\"noopener noreferrer\">AWS IoT SiteWise Developer Information<\/a> for extra data.<\/p>\n<hr\/>\n<h3><span class=\"ez-toc-section\" id=\"In_regards_to_the_authors\"><\/span>In regards to the authors<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p style=\"clear: both\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft wp-image-4649 size-thumbnail\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/22\/IOTB-835_Maria-El-Khoury.jpg\" alt=\"\" width=\"100\" height=\"121\"><br \/><strong>Maria El Khoury<\/strong> is a Options Architect at AWS supporting manufacturing clients of their digital transformation journey. With a background of constructing IoT and laptop imaginative and prescient options, Maria is very concerned with making use of AWS within the fields of Industrial IoT and provide chain.<\/p>\n<p style=\"clear: both\"><img decoding=\"async\" loading=\"lazy\" class=\"alignleft size-thumbnail wp-image-16778\" src=\"https:\/\/d2908q01vomqb2.cloudfront.net\/f6e1126cedebf23e1463aee73f9df08783640400\/2025\/05\/22\/IOTB-835_Brent-Van-Wynsberge.jpg\" alt=\"\" width=\"100\" height=\"121\"><br \/><strong>Brent Van Wynsberge<\/strong> is a Options Architect at AWS supporting enterprise clients. He accelerates the cloud adoption journey for organizations by aligning technical aims to enterprise outcomes and strategic targets. Brent is an IoT fanatic, particularly within the utility of IoT in manufacturing, he&#8217;s additionally concerned with DevOps, knowledge analytics and containers.<\/p>\n<p>       <!-- '\"` -->\n      <\/div>\n\n","protected":false},"excerpt":{"rendered":"<p>In as we speak\u2019s digital enterprise panorama, organizations more and more depend on asset administration options to streamline their operations. Corporations typically discover themselves managing the identical bodily property throughout a number of IT and operational expertise (OT) methods. One of many providers that assist IT groups observe and handle enterprise IT property is ServiceNow. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":8187,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22],"tags":[],"class_list":["post-8185","post","type-post","status-publish","format-standard","has-post-thumbnail","category-iot"],"_links":{"self":[{"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/posts\/8185","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=8185"}],"version-history":[{"count":1,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/posts\/8185\/revisions"}],"predecessor-version":[{"id":8186,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/posts\/8185\/revisions\/8186"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=\/wp\/v2\/media\/8187"}],"wp:attachment":[{"href":"https:\/\/aireviewirush.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=8185"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=8185"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aireviewirush.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=8185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}