Helpdesk Integration
NetXMS can integrate with external helpdesk and ticketing systems to create and track trouble tickets based on alarms. This allows operations teams to manage incidents using their existing ITSM tools while keeping NetXMS as the event source.
Two helpdesk link modules are included: Jira and Redmine.
Overview
The helpdesk integration works through the alarm management workflow:
-
An alarm is raised in NetXMS based on event processing rules
-
An operator creates a helpdesk ticket from the alarm
-
The ticket ID is linked to the alarm in NetXMS
-
Alarm comments are synchronized with ticket comments (Jira only)
-
When the ticket is moved to a resolved status in the helpdesk system, the linked alarm is resolved in NetXMS (Jira, via webhook)
Selecting the Helpdesk Link Module
Helpdesk links are loadable modules (jira.hdlink and redmine.hdlink, installed in the NetXMS library directory).
Select the module with the HelpDeskLink server configuration variable (Configuration > Server configuration) and restart the server:
| Value | Module |
|---|---|
|
No helpdesk link (default) |
|
Jira integration |
|
Redmine integration |
The .hdlink extension is appended automatically, and a name without a path is looked up in the library directory.
After startup, the server log should contain a line like "Helpdesk link module JIRA (version …) loaded successfully".
Jira Integration
Configuration
Configure the Jira connection using server configuration variables (Configuration > Server configuration).
Jira.Webhook.Path and Jira.Webhook.Port are read when the module is loaded, so changing them requires a server restart. Other settings are read during helpdesk operations; Jira.VerifyPeer has the limitation described below.
| Variable | Description |
|---|---|
|
Jira server URL, without a trailing slash |
|
Jira username (must have permission to create issues in the configured project and comment on own issues) |
|
Jira password or API token (for Jira Cloud) |
|
Jira project key (project must already exist) |
|
Jira project component (optional) |
|
Jira issue type name (default: |
|
Comma-separated list of issue statuses indicating the issue is resolved (default: |
|
Request verification of Jira server’s TLS certificate (configured default: enabled; see the limitation below). This variable has no pre-created entry — create it manually to change the setting. |
|
Path part of the Jira webhook URL; must start with |
|
Port of the Jira webhook listener; |
In version 6.2.6, the first Jira connection after server startup disables peer-certificate verification, and changing Jira.VerifyPeer does not update an existing connection. A later reconnect uses the most recently read value.
Jira-to-NetXMS Webhook
Updates flowing back from Jira are received through a webhook served by a dedicated HTTP listener that the Jira module starts on Jira.Webhook.Port.
Configure a webhook in Jira pointing to http://<server>:<Jira.Webhook.Port><Jira.Webhook.Path> (for example, http://netxms.example.com:8008/jira-webhook).
The listener accepts only POST requests with a JSON body; it does not authenticate the caller, so restrict access to the port at the network level.
The webhook handles two things:
-
Comments added to a linked issue in Jira appear as comments on the alarm
-
When a linked issue transitions to a status listed in
Jira.ResolvedStatus, the alarm is resolved
Other alarm state changes (acknowledge, terminate) are not driven from Jira.
Creating Tickets from Alarms
Operators can create Jira tickets from the Alarms view (requires the Create helpdesk tickets access right):
-
Right-click an alarm and select Create ticket in helpdesk system
-
NetXMS creates an issue in Jira with alarm details
-
The Jira issue key (e.g.,
OPS-1234) appears in the Helpdesk ID column
To view the ticket, right-click the alarm and select Show helpdesk ticket in web browser.
Redmine Integration
Enable Redmine integration by setting HelpDeskLink to redmine and restarting the server.
Configure the connection using server configuration variables.
These variables are not created by default — add them with Create new… in Configuration > Server configuration as needed; a missing variable takes the default value shown below.
Redmine.ServerURL, Redmine.ApiKey, and Redmine.VerifyPeer are read when the module is loaded, so changing them requires a server restart; the other variables are re-read on every ticket creation and take effect immediately:
| Variable | Description |
|---|---|
|
Redmine server URL (default: |
|
Redmine API key used for issue creation |
|
Verify Redmine server’s TLS certificate (default: enabled) |
|
ID of the project where issues are created (default: |
|
Tracker ID assigned to created issues (default: |
|
Initial status ID of created issues (default: |
|
Priority ID of created issues (default: |
Ticket creation from alarms works the same way as with Jira. The Redmine integration does not synchronize comments and cannot push updates back to NetXMS; the only information flowing back from Redmine is the issue state, which the server checks when an operator resolves or terminates the linked alarm.
Troubleshooting
Ticket Creation Fails
-
Check the server log for helpdesk link errors
-
Verify the module is loaded (
HelpDeskLinkset tojiraorredmine, and the "loaded successfully" message in the server log) -
Verify the configured URL, credentials, and project key
-
Test API connectivity from the NetXMS server host
-
Verify the helpdesk user has permission to create issues in the configured project
-
For Jira Cloud: ensure the API token is valid and not expired
Alarms Not Updating from Jira
-
Verify
Jira.Webhook.Portis not0and the server log contains "Jira webhook initialized on port …" -
Verify the webhook URL configured in Jira matches
Jira.Webhook.PathandJira.Webhook.Port, and that the port is reachable from Jira -
Check that the issue status transition target is listed in
Jira.ResolvedStatus
Next Steps
-
Alarms — alarm management and lifecycle
-
Actions — automated actions including ticket creation
-
Event Processing Policy — rules that trigger alarm-based actions