- 7 minutes to read

Variables and JSON Path examples for Alerts

Unlock the full power of dynamic, actionable notifications in Nodinite by leveraging built-in variables and JSONPath expressions. This guide shows you how to extract Repository Model data and tailor email and event log content for advanced integration monitoring.

✅ Personalize alerts with dynamic variables and JSONPath
✅ Extract actionable data from Repository Model for notifications
✅ Automate and customize email and event log content
✅ Empower rapid response and compliance for integration teams

Control the content in email and Windows Event Log entries using variables and JSONPath for maximum flexibility and actionable insights.

With Nodinite, you can dynamically generate alert content at run-time using built-in variables (like CustomerName, Environment) and data from the Repository Model. This enables you to deliver highly relevant, context-rich notifications to your team and stakeholders—empowering rapid response and compliance.

Typical use cases include:

  • Event Log
    • Event Source – Default: Nodinite: [{Customer} | {Environment}]
    • EventId (0-65535) – Defaults to 0 if the value is invalid or cannot be retrieved.
  • Email Plugins
    • Subject – Personalize subject lines with dynamic data for clarity and traceability.

Variables

Variable name Description Example
{Customer} Customer name of the Nodinite installation ACME
{Environment} Environment name of the Nodinite installation Prod/Test/QA...
{Version} Nodinite version 5.1.3.37
{Status} List of Monitor View statuses Errors/OK
{StatusAndCount} List of Monitor View statuses and the count for each 2 Errors/1 OK
{DateTime} Date when the alarm was triggered 2019-05-17 13:37:00
{Alarm.JsonPath:...} Advanced: Use JSONPath to extract Repository data from the alarm object sent to the Alarm Plugin See JSONPath examples below

Source Name
Example: Event Log entry using variables for dynamic output.

Important

The Windows Event Log does not accept certain characters for the Event Source name. Nodinite automatically adjusts the name to comply with these restrictions.

JSONPath Examples

Any valid JSONPath on the Alarm (JSON) object can be used to set run-time values for Subject, Event Source, and EventId. For example:

  • Monitor View Name{Alarm.JsonPath:MonitorViews[*].Name}
  • Repository Model Data
{Alarm.JsonPath:MonitorViews[0].Integrations[0].CustomMetaDatas[?(@.Name=='SLA')].CustomValues[0].Value}
{Alarm.JsonPath:MonitorViews[0].Integrations[0].CustomMetaDatas[?(@.Name=='Integration Number')].CustomValues[0].Value}

JSON Alarm Example

Here is an example of an Alarm (JSON) object to apply your JSONPath expressions on:

{
	"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": "1",
					"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",
			"Monitoring Agent Configuration": {
				"SourceId": 1,
				"Name": "Test Monitoring Agent Configuration",
				"Description": "Simple Monitoring Agent Configuration 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!"
		},
		{
			"ResourceId": 2,
			"Name": "Second Resource - Receive Port",
			"Description": null,
			"WebSite": null,
			"Monitoring Agent Configuration": {
				"SourceId": 1,
				"Name": "Test Monitoring Agent Configuration",
				"Description": "Simple Monitoring Agent Configuration 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\\IMuser",
			"Description": null,
			"MailAddress": "support@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 LogAPI.",
			"WebSite": null,
			"Monitoring Agent Configuration": {
				"SourceId": 2,
				"Name": "MSMQ",
				"Description": "Monitoring Agent Configuration to monitor MSMQ queues.",
				"Server": "NODINITE-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,
			"Monitoring Agent Configuration": {
				"SourceId": 2,
				"Name": "MSMQ",
				"Description": "Monitoring Agent Configuration to monitor MSMQ queues.",
				"Server": "NODINITE-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": "\\Domain\\user",
			"Description": null,
			"MailAddress": "support@nodinite.com"
		}]
	}],
	"Version": "5.0.0.0",
	"Environment": "Test",
	"Customer": "Nodinite",
	"Created": "2019-01-01T01:00:00.000000Z",
	"WebClientUrl": "https://localhost/Nodinite/WebClient/",
	"IsRecurring": false,
	"ProductStatus": {
		"IsTrial": false,
		"ExpirationDate": null
	}
}

Next Step

Alarm Plugins - Overview
Edit Alarm Plugins