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:

  1. An alarm is raised in NetXMS based on event processing rules

  2. An operator creates a helpdesk ticket from the alarm

  3. The ticket ID is linked to the alarm in NetXMS

  4. Alarm comments are synchronized with ticket comments (Jira only)

  5. When the ticket is moved to a resolved status in the helpdesk system, the linked alarm is resolved in NetXMS (Jira, via webhook)

Jira Integration

Loading the Module

Helpdesk links are server modules. Enable Jira integration by loading the module in netxmsd.conf and restarting the server:

Module = jira

After startup, the server log should contain "Server module JIRA loaded successfully" and "Helpdesk link \"JIRA\" registered".

Configuration

Configure the Jira connection using server configuration variables (Configuration > Server configuration). All variables except Jira.Webhook.Enable are re-read on every helpdesk operation and take effect immediately; changing Jira.Webhook.Enable requires a server restart:

Variable Description

Jira.ServerURL

Jira server URL

Jira.Login

Jira username (must have permission to create issues in the configured project and comment on own issues)

Jira.Password

Jira password or API token (for Jira Cloud)

Jira.ProjectCode

Jira project key (project must already exist)

Jira.ProjectComponent

Jira project component (optional)

Jira.IssueType

Jira issue type name (default: Task)

Jira.ResolvedStatus

Comma-separated list of issue statuses indicating the issue is resolved (default: Done)

Jira.VerifyPeer

Verify Jira server’s TLS certificate (default: enabled). This variable has no pre-created entry — create it manually to change the setting.

Jira.Webhook.Enable

Enable the Jira webhook receiver (default: enabled)

Jira.Webhook.Secret

Shared secret for validating webhook calls, passed by Jira as the secret query parameter in the webhook URL

Jira-to-NetXMS Webhook

Updates flowing back from Jira are received through a webhook served by the server’s built-in web API listener at the fixed path /jira-webhook (see the [WEBAPI] section in Configuration File Reference for the listener address and port). Configure a webhook in Jira pointing to that URL. If Jira.Webhook.Secret is set, append it as the secret query parameter (…​/jira-webhook?secret=<value>) — calls without a matching secret are rejected with HTTP 403.

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):

  1. Right-click an alarm and select Create ticket in helpdesk system

  2. NetXMS creates an issue in Jira with alarm details

  3. 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 loading the module in netxmsd.conf and restarting the server:

Module = redmine

Configuration variables (create them manually in Configuration > Server configuration — no entries are pre-created; the module falls back to the built-in defaults listed below):

Variable Description

Redmine.ServerURL

Redmine server URL (default: http://localhost)

Redmine.ApiKey

Redmine API key used for issue creation

Redmine.VerifyPeer

Verify Redmine server’s TLS certificate

Redmine.ProjectId

Target project identifier (default: 1)

Redmine.TrackerId

Tracker to use for created issues (default: 3)

Redmine.StatusId

Initial status for created issues (default: 1)

Redmine.PriorityId

Priority for created issues (default: 2)

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 (Module = jira or Module = redmine in netxmsd.conf)

  • 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.Enable is on and the web API listener is enabled

  • Verify the webhook URL configured in Jira points to /jira-webhook on the web API port

  • If Jira.Webhook.Secret is set, verify the webhook URL in Jira includes ?secret=<value> with the matching value (missing or wrong secret results in HTTP 403)

  • Check that the issue status transition target is listed in Jira.ResolvedStatus

Next Steps