Managing the Webhook Alarm Plugin
Empower your integration monitoring with the Nodinite HTTP Webhook Alarm Plugin. Instantly automate incident management and customer support by sending real-time alerts to any HTTP endpoint. Seamlessly connect Nodinite with platforms like Jira, Freshdesk, ServiceNow, and hundreds more for rapid response and streamlined workflows.
On this page, you will learn how to:
✅ Send Nodinite alerts to any HTTP endpoint for instant integration
✅ Automate incident management and customer support workflows
✅ Include rich Custom Metadata in every alert for advanced automation
✅ Securely connect with custom headers and manage multiple webhooks
✅ Authenticate with OpenID Connect for secure integrations (v7.x and later)
Keep your business users informed by sending real-time notifications based on Nodinite monitoring alerts.
The Webhook Alarm Plugin sends an HTTP request with alert data to your custom Webhook endpoint whenever the status of Resources in one or more Monitor Views changes state, according to your configuration.
- Custom Metadata is included in every alert, providing rich context for automated workflows.
- Supports custom HTTP headers, such as x-api-key, for secure integrations.
- Configure multiple Webhooks for different Monitor Views to tailor alerting strategies.
Seamlessly integrate Nodinite monitoring with Freshdesk, Jira, ServiceNow, or any other customer support or incident management platform. Automate your incident response and tag tickets with Custom Metadata properties from the Nodinite Repository Model.
The HTTP Webhook Alarm Plugin comes pre-installed with Nodinite Core Services.
Example templates
- Logic App Template – Integrate Nodinite Alarms with Freshdesk template
- Azure Connectors – Use the HTTP Webhook plugin to trigger actions in hundreds of external systems.
There are several hundred connectors to choose from!
- Send alarms to Jira using the Integrations hub for Jira available on the Atlassian marketplace.
Follow the How to guide on creating alarm issues from Nodinite to set it up.
Webhooks are user-defined HTTP callbacks. When an event is triggered by the Nodinite Monitoring Service, the HTTP Webhook plugin makes an HTTP request to the configured URL. Use these events to invoke actions in other systems—trigger your incident process, update dashboards, or automate ticket creation.
Configuring the Webhook Alarm Plugin
You can configure the Alarm Plugin in two ways:
Global Configuration
Configure the Alarm Plugin using the Nodinite Web Client by navigating to 'Administration' 'Settings' 'Alarm Plugins' and selecting 'HTTP Webhook'. Review the Add or manage Alarm Plugin for generic details.
Example of navigating to the Alarm Plugins section in the Nodinite Web Client.
The following properties can be configured for this plugin:
Property | Description |
---|---|
Web Client URL | The URL for end-users to access your Nodinite Web Client instance |
URL | The address of the Webhook to send alerts to |
Compress Body | Whether the request body should be compressed (GZIP), or not NOTE: The receiving solution must decompress the body to read the JSON payload. |
Test URL | Destination URL for the Execute Alarm Test or Restore Alarm Test features in Nodinite |
Authentication Type | Choose between 'None', 'Basic', or 'OpenID' authentication (v7.x and later). The default is None |
Custom Headers | Add custom HTTP headers (e.g., x-api-key) for secure integrations |
None Authentication
💡Use this option when the Webhook endpoint does not require authentication.
When None is selected, no authentication is used when sending the webhook request. This is the default setting.
Example: None authentication settings for the HTTP Webhook Alarm Plugin.
Basic Authentication
When Basic is selected, you must provide a username and password. The plugin uses these credentials to authenticate with the Webhook endpoint using Basic Authentication.
Screenshot of Basic authentication settings for the Webhook with options Alarm Plugin.
Property | Description |
---|---|
User name | User name for authentication |
Password | Basic authentication password |
OpenID Authentication
New 7.x
With Nodinite v7, the HTTP Webhook Alarm Plugin supports secure authentication using OpenID Connect (OAuth 2.0). This enables integration with identity providers for enhanced security when sending webhook alerts.
Register an application in your identity provider to obtain the necessary credentials.
Screenshot of OpenID authentication settings for the HTTP Webhook Alarm Plugin.
The following settings are required:
Property | Description |
---|---|
Client Id | The registered client ID for your identity provider |
Client Secret | Secret used for authentication |
OpenID Endpoint Configuration | URL to the OpenID Connect metadata endpoint |
Scope | Optional scope for the authentication request. For more than one scope, separate each with a comma. |
- OpenID authentication for HTTP Webhook is available from Nodinite version 7.1.x and later.
- Secrets are encrypted using certificate-based encryption as described in the Secret Management user guide.
- To update credentials, simply replace the client secret in the configuration; Nodinite will handle encryption automatically.
Troubleshooting OpenID Authentication
If you encounter issues sending webhook requests with OpenID authentication, check the following:
- Ensure the registered application in your identity provider has the correct permissions and scopes.
- Verify the OpenID endpoint URL and credentials.
- Review Nodinite logs for authentication errors (see Core Services diagnostics files or the Log Audits log).
- If test requests fail, click the "Test" buttons and review error messages for details.
Role and Permission Requirements
Note
You need to be a Nodinite administrator or have appropriate permissions to access and configure the Alarm Plugin settings.
Audit and Logging
Nodinite logs all email sending events and authentication failures. These logs can be found in any or all of the following places (please review in the following order):
- Alarm Queue
- Distributed Notifications
- The Nodinite Log Audits log
- The Nodinite Monitoring Service diagnostic files
Specific Settings from within Monitor Views
You can edit a Monitor View with an Alarm Plugin and override some of the global (default) settings. This is called a 'Specific' setting:
Example: Monitor View-specific override options for the HTTP Webhook plugin.
- Trigger on changed Resource state – Trigger alarms when a Resource changes state. By default, alarms trigger when the Monitor View changes state.
- Override default URL – The Webhook URL to send alerts to from this Monitor View. Leave empty to use the default value.
- Override Compress Body – When checked, the alert body is sent in compressed format. This setting is honored if 'Override default URL' is also set.
- Enable Recurrence – Configure recurrence for redistributing alarms.
Monitoring State Options tab
You can override global Monitoring State Options as needed.
Monitoring State Options tab
Example: Monitoring State Options override for the HTTP Webhook plugin.
What does the alert payload look like?
You can send the payload to the Webhook either in compressed or uncompressed format.
Compress body option
When the Override Compress Body checkbox is checked, the payload is sent compressed.
Please review the following examples (actual data varies with each alert):
Uncompressed body example
Below is an example of an uncompressed JSON alert object:
{
"MonitorViews": [
{
"MonitorViewId": 1,
"Name": "Test View",
"Description": "Simple unit testing view.",
"WebSite": null,
"StatusCode": {
"StatusCode": 0,
"Name": "OK"
},
"NumberOfMonitoredResources": 2,
"Integrations": [
{
"IntegrationId": 1,
"Name": "INT001 - Orders to first company",
"Description": "",
"WebSite": "https://www.nodinite.com",
"CustomFields": [
{
"CustomFieldId": 1,
"Name": "SLA",
"Description": "",
"WebSite": null,
"ValueType": {
"CustomFieldTypeId": 1,
"Name": "Text",
"Description": null,
"WebSite": null
},
"CustomValues": [
{
"CustomValueId": 1,
"Value": "Gold",
"Description": "Act fast!!",
"WebSite": "https://www.nodinite.com",
"ValueType": {
"CustomFieldTypeId": 1,
"Name": "Text",
"Description": null,
"WebSite": null
}
}
]
}
],
"CustomMetaDatas": [
{
"CustomMetaDataId": 1,
"Name": "Summary",
"Description": "My integration is the perfect one",
"WebSite": "https://www.nodinite.com",
"DataType": 1,
"CustomValues": [
{
"CustomValueId": 1,
"Value": "My integration is the perfect one",
"Description": "Act fast!!",
"WebSite": "https://www.nodinite.com",
"ValueType": null
}
]
}
]
}
],
"ChangedResources": [
{
"ResourceId": 1,
"Name": "First Resource - Send Port",
"Description": null,
"WebSite": "https://www.nodinite.com/resource/send-port",
"Source": {
"SourceId": 1,
"Name": "Test Source",
"Description": "Simple source for testing purposes only.",
"Server": null,
"Environment": null,
"Version": null,
"WebSite": "https://www.nodinite.com/"
},
"Category": {
"CategoryId": 1,
"Name": "Send Ports",
"Description": "Send ports category.",
"WebSite": null
},
"Application": {
"ApplicationId": 1,
"Name": "BizTalk System",
"Description": "Default biztalk application",
"WebSite": "https://www.nodinite.com/application/biztalk-system"
},
"StatusCode": {
"StatusCode": 0,
"Name": "OK"
},
"LogText": "All OK! \r\nTest\t - \r - \n"
},
{
"ResourceId": 2,
"Name": "Second Resource - Receive Port",
"Description": null,
"WebSite": null,
"Source": {
"SourceId": 1,
"Name": "Test Source",
"Description": "Simple source for testing purposes only.",
"Server": null,
"Environment": null,
"Version": null,
"WebSite": "https://www.nodinite.com/"
},
"Category": {
"CategoryId": 2,
"Name": "Receive Ports",
"Description": "Receive ports category.",
"WebSite": "https://www.nodinite.com/category/receive-ports"
},
"Application": {
"ApplicationId": 1,
"Name": "BizTalk System",
"Description": "Default biztalk application",
"WebSite": "https://www.nodinite.com/application/biztalk-system"
},
"StatusCode": {
"StatusCode": 0,
"Name": "OK"
},
"LogText": "All OK!"
}
],
"Users": [
{
"UserId": 1,
"Name": "\\IBSS\\imsvc",
"Description": null,
"MailAddress": "john.doe@nodinite.com"
},
{
"UserId": 2,
"Name": "\\IBSS\\imsvc",
"Description": null,
"MailAddress": "jane.doe@nodinite.com"
}
]
},
{
"MonitorViewId": 2,
"Name": "Second View",
"Description": "Simple test view (second).",
"WebSite": null,
"StatusCode": {
"StatusCode": 2,
"Name": "ERROR"
},
"NumberOfMonitoredResources": 2,
"Integrations": [],
"ChangedResources": [
{
"ResourceId": 10,
"Name": "LogAPI Queue",
"Description": "Queue for Nodinite's LogAPI.",
"WebSite": null,
"Source": {
"SourceId": 2,
"Name": "MSMQ",
"Description": "Source to monitor MSMQ queues.",
"Server": "IBSS-DEV01",
"Environment": "Production",
"Version": "1.0",
"WebSite": null
},
"Category": {
"CategoryId": 10,
"Name": "MSMQ Queue",
"Description": "MSMQ Queues category",
"WebSite": "https://msdn.microsoft.com/en-us/library/ms711472%28v=vs.85%29.aspx"
},
"Application": null,
"StatusCode": {
"StatusCode": 2,
"Name": "ERROR"
},
"LogText": "Number of messages in queue exceeded error limit."
},
{
"ResourceId": 11,
"Name": "LogAPI Test Queue",
"Description": "",
"WebSite": null,
"Source": {
"SourceId": 2,
"Name": "MSMQ",
"Description": "Source to monitor MSMQ queues.",
"Server": "IBSS-DEV01",
"Environment": "Production",
"Version": "1.0",
"WebSite": null
},
"Category": {
"CategoryId": 10,
"Name": "MSMQ Queue",
"Description": "MSMQ Queues category",
"WebSite": "https://msdn.microsoft.com/en-us/library/ms711472%28v=vs.85%29.aspx"
},
"Application": null,
"StatusCode": {
"StatusCode": 1,
"Name": "WARNING"
},
"LogText": "Number of messages in queue exceeded warning limit, but not error limit."
}
],
"Users": [
{
"UserId": 1,
"Name": "\\IBSS\\imsvc",
"Description": null,
"MailAddress": "jane.doe@nodinite.com"
}
]
}
],
"Version": "1.0.0.0",
"Environment": "Test",
"Customer": "UnitTest",
"Created": "2019-02-06T13:06:00.0604707Z",
"WebClientUrl": "http://localhost/IM-Dev/WebClient/",
"IsRecurring": false,
"ProductStatus": {
"IsTrial": false,
"ExpirationDate": null
}
}
Example payload with some Custom Metadata.
Compressed body example
Below is an example of a compressed JSON alert object:
Ew0AAB+LCAAAAAAABADtVWtv2zYU/SscgWIdYMuS6jaJgQLz7HQwstip5aZAHx9o6dolKpEaSdlJg/z3XuphS5ZbNAEKDNu+SZe8r3PP4b2jl1JwI9U1h62mg/d3dcMkogOvQ6csATqgC9CGWDPt0DHoUPHUcCnwJOBJGgPJ0JEYvMXFmmzwImHxlt1qMrtw0OctLANuMJLI4rhDA8NMpkcyQstd48/dpZxd0Hv8yZIlqNmqrAyiOWiZqRCwYL9DJ8LAWjFbi+3gY4eOPjGxblzDvqq/ZlOvuMKuqjPSJQGIiFxJZQ67LKreNUE/GZPqQa+33W4dISOOtYETyqRX/fQsFD1Vhu5pDNxNi8BBbsr7PlJTDnTZLBmuQbRqqRAvq17hvQr3NFOp1KCJFPGthT0AtQFV1X8uNlxJkdigpekalH5Yh3YoI4aoS3Vrm6i+m23skNTt8u2RxUKTsPRtMQRzDNM05iErnO7qv81Mf/AvCxZ/JsGtNpC0so1hxbLYkCX/Yuw1Vgv7iInW3HtlyK4uMt8/hNZ/yfUCbnAMdBjHqJFf0NikqV/DMpQIWY2ncwiBb+BHqFrq7d/LuT1OdVTatKtOv8O8HyVB5Yz6zmPmytb0v0hafHDfaJxn/srar2afHz5Ybln7cZpeMh4PowjfSYxAbbG/1/vA+FYWB1uppYzv7SUbs9hHT3V++7cHraN9rvP5fDb/SRtpDzRCPLyakNcZZNBqKbfm4puWIP2qSeFxrKkjmt+3cxlcvm4laLwBxEiSlAZ7m/xt0+u6xOlCMaFZaN0Lm+/6Lj1QPb1SMsrCkr079VPPcY+8+9/cLW6j9m9AtD/aa/yoZBIdCSfhoZJarkwuGhDdTPdivlQMtZ3oE8/rn/hP/NPNy412Tp8/8c8cptObltAfQaK9lAo6EbkiCaqArbFwLgqsCdyEABFEBJTCKcQ84cZpbQrPO6RP/qAfB+h/nvxzebKf49vhfDqZ/vkIpmyZEnYt51zpLDNDhDQH/Pn5j/bH+vz6Tt9xHa9/1hr4GDZoG2XayCTnyWS6CGavFuPza2tXgJPB0qjvemdd1++6LxaeO/CeDXzXOXnWPzv13hVDG8UcI75RcVVjSaUCXYvzRC8UZ3i+YrEGLOQm5cUrPWY7Vt1/BSAomRwTDQAA
Example with a compressed payload.
Next Step
Alarm Plugins - Overview
Add or manage Alarm Plugin
Related Topics
Alarm Plugins
Core Services
Monitor Views
Repository Model
ResendWebhookSettings - Configure resend of Nodinite Log Events using Webhooks