- 0 minutes to read

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.

graph LR alert(fal:fa-bolt Alert)--> |Custom Metadata| webhook{WebHook with Your Own Logic} webhook -->|Office hours| mail[fal:fa-envelope Mail] webhook -->|Statistics| DB[fal:fa-database Data Warehouse] webhook -->|Critical| ticketSystem[fal:fa-ticket-alt Jira/Freshdesk/ServiceNow/...]
*Diagram: How :Nodinite: alerts and custom metadata flow to your HTTP Webhook and downstream systems.*

The HTTP Webhook Alarm Plugin comes pre-installed with Nodinite Core Services.

Example templates

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.
Web Client Navigation
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.
None Authentication Settings
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.
Basic Authentication Settings
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.
OpenID Authentication Settings
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):

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:
Specific Settings
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

Alarm Plugins
Core Services
Monitor Views
Repository Model
ResendWebhookSettings - Configure resend of Nodinite Log Events using Webhooks