Skip to content

Commit ea35b03

Browse files
committed
Update Blog “no-code-integration-of-hpe-greenlake-cloud-with-servicenow”
1 parent ae164fd commit ea35b03

File tree

1 file changed

+19
-18
lines changed

1 file changed

+19
-18
lines changed

content/blog/no-code-integration-of-hpe-greenlake-cloud-with-servicenow.md

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ date: 2025-03-18T07:49:59.220Z
44
author: Didier Lalli
55
authorimage: /img/didier-lalli-192x192.png
66
disable: false
7+
tags:
8+
- hpe-greenlake-cloud
9+
- webhooks
710
---
811
<style>
912
li {
@@ -13,19 +16,17 @@ li {
1316
}
1417
</style>
1518

16-
17-
1819
In my [previous tutorial](https://developer.hpe.com/blog/getting-started-with-the-hpe-greenlake-cloud-eventing-framework/) on webhooks for HPE GreenLake cloud, I used a no-code/low-code platform called [Make.com](https://www.make.com/) to implement a webhook handler. The webhook handler’s URL endpoint was then registered with HPE GreenLake cloud to subscribe to audit log events from the platform. In my simplistic use case, I stored these events in a Google Sheet as they arrived.
1920

2021
For this handler, I was responsible for taking care of the handshake initiated by HPE GreenLake cloud when the new webhook was registered. This is a security feature that uses a secret key shared by HPE GreenLake cloud and the webhook handler. The following diagram illustrates the mechanics involved in this process.
2122

2223
![HPE Greenlake cloud event framework](/img/slide-pour-blog-webhooks.jpg "HPE Greenlake cloud event framework")
2324

24-
As this implementation was working well, I thought I would reuse this low-code handler technique to demonstrate another use case of an integration with an IT service management (ITSM) platform. I decided to use **ServiceNow** because it’s a very popular ITSM platform and because it provides a very nice way for developers to fire up a [personal developer instance](https://devportaluat.service-now.com/dev.do#!/learn/learning-plans/washingtondc/new_to_servicenow/app_store_learnv2_buildmyfirstapp_washingtondc_personal_developer_instances) (PDI) and get their work done.
25+
As this implementation was working well, I thought I would reuse this low-code handler technique to demonstrate another use case of an integration with an IT service management (ITSM) platform. I decided to use ServiceNow because it’s a very popular ITSM platform and because it provides a very nice way for developers to fire up a [personal developer instance](https://devportaluat.service-now.com/dev.do#!/learn/learning-plans/washingtondc/new_to_servicenow/app_store_learnv2_buildmyfirstapp_washingtondc_personal_developer_instances) (PDI) and get their work done.
2526

2627
## Problems, incidents and change orders
2728

28-
Most of these ITSM platforms are managed through the lifecycle of different types of tickets (New, In Progress, Resolved). One of the most common ticket types is called **Incident**, which is the type of ticket that users might open when they face an issue and want to raise it to their IT team for resolution. In most cases, end users use a web portal to do this. However, there is also an API to programmatically do it, and this is exactly what I’m going to use in this blog.
29+
Most of these ITSM platforms are managed through the lifecycle of different types of tickets (New, In Progress, Resolved). One of the most common ticket types is called *Incident*, which is the type of ticket that users might open when they face an issue and want to raise it to their IT team for resolution. In most cases, end users use a web portal to do this. However, there is also an API to programmatically do it, and this is exactly what I’m going to use in this blog.
2930

3031
## What’s the right API then?
3132

@@ -76,7 +77,7 @@ else:
7677
7778
Nevertheless, this script was very helpful because I now understand:
7879

79-
* The API I need to use is the table API and the table name to be used is called incident, thus the API call: **POST /api/now/table/incident**
80+
* The API I need to use is the table API and the table name to be used is called incident, thus the API call: POST /api/now/table/incident
8081
* The (minimal) payload I need to pass in the API call
8182
* The necessary headers
8283
* The response code expected if it worked: 201
@@ -144,23 +145,23 @@ For more information, you can refer to the chapter *“Getting started with Make
144145

145146
Next, I’ll dive into the properties of the **HTTP Make a request** module that needs to be configured based on the details collected from the Python script:
146147

147-
* **The URL endpoint of my ServiceNow instance**: *https://{your-instance}/api/now/table/incident*
148-
* **Method**: *POST*
149-
* Two custom headers for **Accept** and **Content-Type** both set to *application/json*
150-
* **Body type**: *Raw*
148+
* The URL endpoint of my ServiceNow instance: *https://{your-instance}/api/now/table/incident*
149+
* Method: *POST*
150+
* Two custom headers for Accept and Content-Type both set to *application/json*
151+
* Body type: *Raw*
151152

152153
![Setting up HTTP Make a request properties - part 1](/img/webhook-blog-servicenow-picture-3.jpg "Setting up HTTP Make a request properties - part 1")
153154

154-
To setup the JSON payload as shown below, I need to first configure the first step of my webhook scenario to use the JSON payload of the ***Expiring Subscriptions*** event described earlier.
155+
To setup the JSON payload as shown below, I need to first configure the first step of my webhook scenario to use the JSON payload of the **Expiring Subscriptions** event described earlier.
155156

156-
I then need to set up the JSON payload (***Request content*** as shown below) with ServiceNow information such as:
157+
I then need to set up the JSON payload (**Request content** as shown below) with ServiceNow information such as:
157158

158-
* The ***short description*** (for example, the subscription type is expiring soon)
159-
* The ***description*** (for example, License <license type> expires on <date>)
160-
* The ***category***, and the ***subcategory***
161-
* The level of ***urgency*** (high, medium, low), the level of ***priority*** (high, medium, low) and the level of the ***impact*** (high, medium, low)
162-
* The ***caller_id***
163-
* The ***service***
159+
* The *short description* (for example, the subscription type is expiring soon)
160+
* The *description* (for example, License <license type> expires on <date>)
161+
* The *category*, and the *subcategory*
162+
* The level of *urgency* (1 to 5) and the level of the *impact* (1 to 5)
163+
* The *caller_id*
164+
* The *service*
164165

165166
Once this is in place, I can build the Request content and drag/drop items from the JSON input payload (shown in red) into the Request content of the HTTP call as shown below:
166167

@@ -170,7 +171,7 @@ It’s important not to forget to specify username and password obtained when cr
170171

171172
## Putting it all together
172173

173-
Voila! Now the Webhook scenario is in place. I need to subscribe to the event with HPE GreenLake cloud. As noted in my first [blog](https://developer.hpe.com/blog/getting-started-with-the-hpe-greenlake-cloud-eventing-framework/) post, I can apply the same logic, except that this time I will subscribe to ***Expiring Subscriptions*** event as shown below:
174+
Voila! Now the Webhook scenario is in place. I need to subscribe to the event with HPE GreenLake cloud. As noted in my first [blog](https://developer.hpe.com/blog/getting-started-with-the-hpe-greenlake-cloud-eventing-framework/) post, I can apply the same logic, except that this time I will subscribe to **Expiring Subscriptions** event as shown below:
174175

175176
![Subscribing to expiring subscriptions](/img/webhook-blog-servicenow-picture-5.jpg "Subscribing to expiring subscriptions")
176177

0 commit comments

Comments
 (0)