Notification Channel Driver Reference

This page documents all built-in notification channel drivers in NetXMS, their configuration parameters, and examples.

Driver parameters are specified in the Driver configuration field of the notification channel, one parameter per line in format parameter_name=parameter_value. If a parameter is not specified, its default value is used.

For notification channel setup and architecture, see Notifications.

Driver Summary

Driver Description

SMTP

Email delivery via SMTP server

GSM

SMS via serial GSM modem (AT commands)

Telegram

Messages via Telegram Bot API

Slack

Messages via Slack Incoming Webhooks

Mattermost

Messages via Mattermost API

Matrix

Messages to Matrix rooms via the Matrix Client-Server API

Shell

Execute a shell command for notification delivery

Google Chat

Messages via Google Chat webhooks

Microsoft Teams

Adaptive Cards via Microsoft Teams Workflows (Power Automate) webhooks

XMPP

Messages via XMPP/Jabber protocol

MQTT

Publish messages to MQTT broker

Webhook

Templated HTTP requests to arbitrary REST/webhook endpoints

AnySMS

SMS via any-sms.biz gateway

Kannel

SMS via Kannel open-source SMS gateway

MyMobile

SMS via MyMobile API gateway

Nexmo

SMS via Nexmo (Vonage) gateway

NXAgent

SMS via GSM modem attached to NetXMS agent

Portech

SMS via Portech MV-72x GSM gateway

SMSEagle

SMS via SMSEagle hardware SMS gateway

Text2Reach

SMS via Text2Reach.com service

Twilio

SMS and voice calls via Twilio API

WebSMS

SMS via websms.ru service

SNMPTrap

Send notifications as SNMP traps

DBTable

Save notifications to a database table

TextFile

Write notifications to a text file

Dummy

Debug driver that only logs messages

SMTP

Email delivery using SMTP protocol. Supports authentication, TLS/STARTTLS encryption, and HTML content. Passwords obfuscated with nxencpasswd are supported.

Parameter Default Description

Server

localhost

SMTP server hostname or IP address

Port

25 (465 for TLS, 587 for STARTTLS)

SMTP server port

Login

SMTP authentication username

Password

SMTP authentication password (supports nxencpasswd-obfuscated passwords)

AuthMethod

PLAIN

SMTP authentication method: PLAIN or XOAUTH2

ClientId

OAuth2 application (client) ID (used with AuthMethod=XOAUTH2)

ClientSecret

OAuth2 client secret; can be obfuscated with nxencpasswd using the mailbox Login as the key

TokenEndpoint

OAuth2 token endpoint URL (used with AuthMethod=XOAUTH2)

Scope

https://outlook.office365.com/.default

OAuth2 token scope

FromAddr

netxms@localhost

Sender email address

FromName

NetXMS Server

Sender display name

TLSMode

NONE

Encryption mode: NONE, TLS (enforced TLS), or STARTTLS (opportunistic TLS)

IsHTML

no

Set to yes to send HTML-formatted messages

VerifyPeer

true

Verify server TLS certificate

Example configuration:

Server=smtp.company.com
Port=587
[email protected]
Password=your_password
[email protected]
FromName=NetXMS Alerts
TLSMode=STARTTLS
If password provided by your email service is a 44- or 88-character base64 string, it will be interpreted as a password obfuscated with nxencpasswd. Use the nxencpasswd tool explicitly if you need to obfuscate your actual password.

XOAUTH2 authentication requires Login, ClientId, ClientSecret, and TokenEndpoint to be set, and cannot be used with TLSMode=NONE.

Telegram

Send notifications via Telegram Bot API.

To set up Telegram notifications:

  1. Create a Telegram bot by sending /newbot to @BotFather

  2. Copy the authentication token (format: 1234567890:ABCdefGhIJKlmNoPQRsTUVwxyZ)

  3. Create a notification channel with the Telegram driver and set AuthToken

  4. Users must send a message to the bot first (bot cannot initiate conversations)

  5. Use the user’s chat ID or username as the recipient in notification actions

Parameter Default Description

AuthToken

(required)

Telegram Bot API token from @BotFather

ParseMode

Message formatting: Markdown, MarkdownV2, or HTML (empty for plain text)

LongPolling

true

Use long polling to receive updates (required for username-based recipient resolution)

PollingInterval

300

Interval between polling requests in seconds

DisableIPv4

false

Disable IPv4 for API connections

DisableIPv6

false

Disable IPv6 for API connections

Proxy

Proxy URL in format [scheme]://[login:password@]host[:port]

ProxyPort

Proxy port (if not specified in Proxy URL)

ProxyType

Proxy type: http, https, socks4, socks4a, socks5, socks5h

ProxyUser

Proxy authentication username

ProxyPassword

Proxy authentication password

UseLocalResolver

false

Use local DNS resolver instead of the default resolver for Telegram API hostname resolution (only takes effect when a proxy is configured)

Example configuration:

AuthToken=1234567890:ABCdefGhIJKlmNoPQRsTUVwxyZ
ParseMode=HTML

Multiple fallback proxies can be configured using the [FallbackProxy] section. If the primary Proxy and all fallback proxies fail, the driver retries from the beginning after a delay.

AuthToken=1234567890:ABCdefGhIJKlmNoPQRsTUVwxyZ
Proxy=proxy1.company.com
ProxyPort=8080
ProxyType=http
[FallbackProxy/proxy2]
Hostname=proxy2.company.com
Port=8080
Type=socks5
[FallbackProxy/proxy3]
Hostname=proxy3.company.com
Port=3128
Type=http
User=proxyuser
Password=proxypass

Each [FallbackProxy/<name>] entry supports: Hostname, Port, Type (http, https, socks4, socks4a, socks5, socks5h), User, Password.

Bot capabilities:

  • Private chats with individual users

  • Group and supergroup chats (bot must be added to the group)

  • Channel posts (bot must be a channel administrator)

  • Forum topics in supergroups

Recipients can be specified by:

  • Numeric chat ID (always works)

  • @username — public channel username with @ prefix (always works)

  • Username (without @ prefix) — only for users who have set a Telegram username; requires LongPolling=true

  • Group/channel name — correspondence between name and ID is stored when bot receives a message

To target a specific forum topic, set the notification Subject field to the topic’s numeric message_thread_id, or to the topic name (resolved automatically from messages the bot has seen in the topic).

To find a chat ID, open in a browser: https://api.telegram.org/bot<AUTH_TOKEN>/getUpdates

Slack

Send notifications via Slack Incoming Webhooks.

Parameter Default Description

url

Slack Incoming Webhook URL

username

Override the default username for messages

Recipient field in notification action specifies the Slack channel (e.g., #alerts).

Mattermost

Send notifications via Mattermost REST API.

To set up Mattermost notifications:

  1. In Mattermost, go to System Console → Integrations → Bot Accounts and enable Enable Bot Account Creation (requires Mattermost system administrator rights)

  2. Go to Integrations → Bot Accounts → Add Bot Account, create a bot, and copy the generated access token — it is displayed only once

  3. Add the bot to the team, then invite it to every channel it should post to (e.g., by typing /invite @botname in the channel) — the bot can only post to channels it is a member of

  4. Find the ID of each target channel: open the channel, click the channel name, and select View Info — the channel ID is displayed at the bottom of the dialog

  5. Create a notification channel with the Mattermost driver and set ServerURL and AuthToken in the driver configuration

A personal access token can be used instead of a bot account token (enable personal access tokens in System Console → Integrations → Integration Management, then create one in Profile → Security → Personal Access Tokens), but a dedicated bot account is recommended: notifications do not depend on a personal account, and posts are clearly marked with a BOT tag.

Parameter Default Description

ServerURL

(required)

Mattermost server base URL, including scheme (e.g., https://mattermost.company.com)

AuthToken

(required)

Bot account or personal access token

Color

Accent color of message attachments, in CSS-compatible format: #RRGGBB, 0xRRGGBB, rgb(r,g,b), or a CSS color name (e.g., #FF6A00)

Footer

Attachment footer text

UseAttachments

true

Send messages as rich attachments (subject as title, colored accent bar); set to false to send plain messages

Optional [Channels] section maps aliases to Mattermost channel IDs:

ServerURL=https://mattermost.company.com
AuthToken=5hkzmt87y7fjjfsz9fzzmoo84o
Color=#FF6A00
[Channels]
alerts=hxx6u8pyginmxfa6xhpp5e9qxo
critical=o8kdwac3bib3ipn6kfyob1coqc

Recipient field in the notification action accepts either a channel alias from the [Channels] section or a Mattermost channel ID. Message body is rendered by Mattermost as Markdown.

Matrix

Send notifications to Matrix rooms via the Matrix Client-Server API.

Parameter Default Description

ServerURL

(required)

Matrix homeserver URL (e.g., https://matrix.company.com)

AccessToken

(required)

Access token of the Matrix account used for sending messages

AliasCacheTTL

3600

Time in seconds to cache room alias resolution results

HtmlFormatting

false

Send HTML-formatted messages with plain text fallback

Proxy

Proxy hostname

ProxyPort

Proxy port

ProxyType

http

Proxy type: http, https, socks4, socks4a, socks5, socks5h

ProxyUser

Proxy authentication username

ProxyPassword

Proxy authentication password

Fallback proxies can be configured using [FallbackProxy/<name>] sections in the same format as the Telegram driver.

Example configuration:

ServerURL=https://matrix.company.com
AccessToken=syt_xxxxxxxxxxxxxxxxxxxx
HtmlFormatting=true

Recipient field accepts either a room ID (!roomId:server) or a room alias (#room:server). Room aliases are resolved via the homeserver API and cached for AliasCacheTTL seconds.

Shell

Execute an external shell command for each notification. This driver enables integration with any external notification system.

Parameter Default Description

Command

(required)

Shell command to execute

The command supports these template variables:

  • ${recipient} — recipient address

  • ${subject} — message subject

  • ${text} — message body

Example configuration:

Command=/usr/local/bin/send-alert.sh $\{recipient\} "$\{subject\}"

Google Chat

Send notifications to Google Chat (formerly Google Hangouts Chat) via incoming webhooks.

To set up, create an incoming webhook in Google Chat: Google Chat webhook documentation

The Google Chat driver requires no configuration parameters. Room webhook URLs are configured in the [Rooms] section below.

Optional [Rooms] section for room name aliases:

[Rooms]
alerts=https://chat.googleapis.com/v1/spaces/XXXX/messages?key=YYYY&token=ZZZZ
ops=https://chat.googleapis.com/v1/spaces/AAAA/messages?key=BBBB&token=CCCC

Recipient field accepts either a room alias from the [Rooms] section or the full webhook URL.

Microsoft Teams

Send notifications to Microsoft Teams channels as Adaptive Cards via Microsoft Teams Workflows (Power Automate) webhook URLs.

To set up, create a Workflow with the When a Teams webhook request is received trigger and copy its trigger URL (only https URLs are accepted).

Legacy Office 365 incoming webhook connectors are not supported (retired by Microsoft). The former ThemeColor and UseMessageCards parameters are ignored and produce a warning in the server log.
Parameter Default Description

EventSeverityMapping

false

Color the card according to the severity of the source event (green for Normal, yellow for Warning/Minor, red for Major/Critical)

Optional [Channels] section maps channel name aliases to Workflow trigger URLs:

EventSeverityMapping=true
[Channels]
alerts=https://prod-XX.westeurope.logic.azure.com/workflows/xxxx/triggers/manual/paths/invoke?...
ops=https://prod-YY.westeurope.logic.azure.com/workflows/yyyy/triggers/manual/paths/invoke?...

The action configuration fields:

  • Recipient — channel alias from the [Channels] section or the full Workflow trigger URL

  • Subject — Adaptive Card title (optional)

  • Message — notification text

XMPP

Send notifications via XMPP (Jabber) protocol.

Parameter Default Description

Login

netxms@localhost

XMPP JID (Jabber ID). If no domain part is specified, server name is appended

Password

netxms

XMPP account password

Server

XMPP server hostname (auto-derived from Login JID if empty)

Port

5222

XMPP server port

Example configuration:

[email protected]
Password=your_password
Server=jabber.company.com

The driver maintains a persistent connection to the XMPP server with automatic reconnection. Recipient field should contain the JID of the message recipient.

MQTT

Publish notification messages to an MQTT broker. The MQTT topic is specified in the recipient field, and the message body becomes the MQTT payload.

Parameter Default Description

hostname

127.0.0.1

MQTT broker hostname or IP address

port

1883

MQTT broker port

login

MQTT authentication username

password

MQTT authentication password

Example configuration:

hostname=mqtt.company.com
port=1883
login=netxms
password=your_password

The recipient field in the notification action specifies the MQTT topic to publish to.

Webhook

Send notifications as templated HTTP requests (POST, PUT, or PATCH) with a user-supplied body. Most REST/JSON notification gateways can be integrated with this driver by configuration alone, without a vendor-specific driver.

Parameter Default Description

URL

(required)

Endpoint URL; supports placeholders (percent-encoded on substitution)

TemplateFile

(required)

Path to the request body template file; re-read on every send

Method

POST

HTTP method: POST, PUT, or PATCH

ContentType

application/json

Value of the Content-Type request header

Timeout

10

Request timeout in seconds (valid range 1-300; out-of-range values are reset to the default)

VerifyPeer

true

Verify server TLS certificate

SuccessHttpCodes

200,201,202,204

Comma-separated list of HTTP response codes treated as success

RetryHttpCodes

429,502,503,504

Comma-separated list of HTTP response codes that cause a delivery retry

SuccessJsonPath

Slash-separated path through nested objects in the JSON response (e.g., /data/status) checked to confirm delivery

SuccessValue

Required value at SuccessJsonPath; mandatory when SuccessJsonPath is set (the channel fails to start otherwise)

An optional [Headers] section adds extra request headers as Name=Value lines. Header values are sent literally, without placeholder substitution.

The URL and the body template support the placeholders ${recipient}, ${subject}, and ${body}. Placeholders in the URL are percent-encoded; placeholders in the body template are JSON-escaped. Unknown placeholders are left as-is.

Example configuration:

URL=https://api.example.com/v1/notify/${recipient}
Method=POST
ContentType=application/json
TemplateFile=/etc/netxms/webhook-template.json
Timeout=15
SuccessHttpCodes=200,202
SuccessJsonPath=/status
SuccessValue=ok
[Headers]
Authorization=Bearer abc123
X-Source=netxms

Example body template (/etc/netxms/webhook-template.json):

{
  "to": "${recipient}",
  "title": "${subject}",
  "text": "${body}"
}

GSM

Send SMS via serial or USB attached GSM modems using AT commands.

Parameter Default Description

Port

COM1: (Windows), /dev/ttyS0 (other)

Serial port device name (PortName is accepted as an alias)

Speed

9600

Serial port baud rate

DataBits

8

Data bits (7 or 8)

StopBits

1

Stop bits (1 or 2)

Parity

n

Parity: n (none), e (even), o (odd)

BlockSize

8

Serial port write block size in bytes (1-256; invalid values are reset to 8)

WriteDelay

100

Delay between writes in milliseconds (1-10000)

TextMode

1

SMS mode: 1 for text mode, 0 for PDU mode

UseQuotes

1

Use quotes around phone number: 1 yes, 0 no

Example configuration:

Port=/dev/ttyUSB0
Speed=115200
TextMode=1

AnySMS

Send SMS via the any-sms.biz gateway service.

Parameter Default Description

login

user

any-sms.biz account login

password

password

any-sms.biz account password

sender

NETXMS

Sender ID displayed on recipient’s phone

gateway

28

Gateway number to use

verifyPeer

true

Verify TLS certificate

Kannel

Send SMS via Kannel open-source SMS/WAP gateway.

Parameter Default Description

host

127.0.0.1

Kannel SMS gateway hostname

port

13001

Kannel sendsms port

login

user

Kannel sendsms username

password

password

Kannel sendsms password

Example configuration:

host=kannel.company.com
port=13001
login=netxms
password=your_password

MyMobile

Send SMS via MyMobile API gateway.

Parameter Default Description

username

MyMobile account username

password

MyMobile account password

Nexmo

Send SMS via Nexmo (Vonage) gateway.

Parameter Default Description

apiKey

key

Nexmo API key

apiSecret

secret

Nexmo API secret

from

NetXMS

Sender ID displayed on recipient’s phone

NXAgent

Send SMS via a GSM modem attached to a remote NetXMS agent. This is similar to the GSM driver, but the modem is physically connected to an agent host rather than the server. The server sends the SMS request to the agent using the SMS.Send agent action.

Parameter Default Description

hostname

localhost

NetXMS agent hostname or IP address

port

4700

Agent port

timeout

30

Connection timeout in seconds

secret

Agent shared secret

keyFile

Path to server’s key file (uses default if not specified)

The driver always uses encrypted communication with the agent.

Example configuration:

hostname=agent-with-modem.company.com
port=4700
secret=shared_secret

Portech

Send SMS via Portech MV-72x VoIP GSM gateways.

Parameter Default Description

host

10.0.0.1

Primary gateway hostname or IP address

secondaryHost

Secondary (failover) gateway hostname or IP address

login

admin

Gateway login

password

admin

Gateway password

mode

PDU

SMS mode: PDU or TEXT

The driver connects to the gateway via Telnet (port 23). If the primary host fails, the driver automatically falls back to secondaryHost if configured.

SMSEagle

Send SMS via SMSEagle hardware SMS gateway.

Parameter Default Description

host

127.0.0.1

SMSEagle gateway hostname or IP address

port

80 (443 if HTTPS)

Gateway API port

login

user

API username

password

password

API password

UseEncryption

true

Use HTTPS instead of HTTP (HTTPS is accepted as an alias)

VerifyCertificate

true

Verify TLS certificate

VerifyHost

true

Verify TLS hostname

BaseURL

Full base URL (overrides host/port/encryption settings)

Example configuration:

host=smseagle.company.com
login=api-user
password=your_password
UseEncryption=true

Text2Reach

Send SMS via Text2Reach.com service.

Parameter Default Description

apikey

apikey

Text2Reach API key

from

from

Sender ID

unicode

1

Enable Unicode support: 1 yes, 0 no

blacklist

0

Check number against blacklist: 1 yes, 0 no

verifyPeer

true

Verify TLS certificate

Twilio

Send SMS or make voice calls (with text-to-speech) via Twilio API.

Parameter Default Description

SID

(required)

Twilio Account SID

Token

(required)

Twilio Auth Token

CallerId

(required)

Twilio phone number or Caller ID for outgoing messages/calls

UseTTS

false

Set to true to make voice calls with text-to-speech instead of sending SMS

Voice

TTS voice: man, woman, alice, or any Amazon Polly voice name

verifyPeer

false

Verify TLS certificate

Example SMS configuration:

SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Token=your_auth_token
CallerId=+15551234567

Example voice call configuration:

SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Token=your_auth_token
CallerId=+15551234567
UseTTS=true
Voice=alice

WebSMS

Send SMS via websms.ru service.

Parameter Default Description

login

user

websms.ru account login

password

password

websms.ru account password

fromPhone

Sender phone number (optional)

verifyPeer

true

Verify TLS certificate

SNMPTrap

Send notifications as SNMP traps to a remote SNMP manager.

This driver is deprecated and logs a deprecation warning on startup. Use the snmptrap event forwarder instead.
Parameter Default Description

Port

162

Destination SNMP trap port

ProtocolVersion

2c

SNMP version: 1, 2 (or 2c), or 3

Community

public

SNMP community string (v1/v2c)

SNMPv3 parameters:

Parameter Default Description

UserName

netxms

SNMPv3 security name

AuthMethod

none

Authentication: none, md5, sha1, sha224, sha256, sha384, sha512

AuthPassword

Authentication password

PrivMethod

none

Privacy: none, des, aes, aes-128, aes-192, aes-256

PrivPassword

Privacy password

UseInformRequest

false

Send INFORM requests instead of traps (waits for acknowledgment); applies to SNMPv3 only and is ignored for v1/v2c

Custom OID configuration (Raden Solutions IANA PEN 57163):

Parameter Default OID

TrapID

.1.3.6.1.4.1.57163.1.0.1

SourceFieldID

.1.3.6.1.4.1.57163.1.1.1.0

SeverityFieldID

.1.3.6.1.4.1.57163.1.1.2.0

MessageFieldID

.1.3.6.1.4.1.57163.1.1.3.0

TimestampFieldID

.1.3.6.1.4.1.57163.1.1.4.0

AlarmKeyFieldID

.1.3.6.1.4.1.57163.1.1.5.0

AdditionalDataFieldID

.1.3.6.1.4.1.57163.1.1.6.0

The recipient field should contain the hostname or IP address of the SNMP trap receiver. Message and subject are sent as separate fields in the trap.

The subject field supports structured data as semicolon-separated key=value pairs or JSON, with these keys:

  • key — alarm key

  • source — source object name

  • severity — event severity (integer 0-4)

  • timestamp — original event timestamp as UNIX time

MIB files RADENSOLUTIONS-SMI.txt and NETXMS-MIB.txt are included with the NetXMS distribution.

DBTable

Save notifications to a database table instead of sending them externally. Useful for integration with third-party systems that poll a database, or for SMS delivery via database-backed gateways.

Parameter Default Description

DBDriver

sqlite.ddr

Database driver name

DBServer

localhost

Database server hostname

DBName

netxms

Database name

DBLogin

netxms

Database login

DBPassword

Database password (supports nxencpasswd-obfuscated passwords)

DBSchema

Database schema name

MaxNumberLength

32

Maximum recipient number length

MaxMessageLength

255

Maximum message length

QueryTemplate

Custom SQL INSERT template

If QueryTemplate is not specified, the driver creates a default table and insert statement. A custom template uses standard SQL positional parameters (?): the first parameter is the recipient number and the second is the message text. For example: INSERT INTO sms_queue(number, message, status) VALUES (?, ?, 0).

TextFile

Write notifications to a text file. Useful for testing, debugging, or integration with file-based monitoring systems.

Parameter Default Description

OutputFile

(required)

Full path to the output file

Messages are appended to the file, one notification per line.

Dummy

Debug driver that does not send any actual notifications. All messages are logged to the server log file for debugging purposes.

No configuration parameters are required.

Set the ncd.dummy debug tag to level 6 or higher to see notification records in the log file (see Enabling Debug Logging).