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 |
|---|---|
Email delivery via SMTP server |
|
SMS via serial GSM modem (AT commands) |
|
Messages via Telegram Bot API |
|
Messages via Slack Incoming Webhooks |
|
Messages via Mattermost API |
|
Messages to Matrix rooms via the Matrix Client-Server API |
|
Execute a shell command for notification delivery |
|
Messages via Google Chat webhooks |
|
Adaptive Cards via Microsoft Teams Workflows (Power Automate) webhooks |
|
Messages via XMPP/Jabber protocol |
|
Publish messages to MQTT broker |
|
Templated HTTP requests to arbitrary REST/webhook endpoints |
|
SMS via any-sms.biz gateway |
|
SMS via Kannel open-source SMS gateway |
|
SMS via MyMobile API gateway |
|
SMS via Nexmo (Vonage) gateway |
|
SMS via GSM modem attached to NetXMS agent |
|
SMS via Portech MV-72x GSM gateway |
|
SMS via SMSEagle hardware SMS gateway |
|
SMS via Text2Reach.com service |
|
SMS and voice calls via Twilio API |
|
SMS via websms.ru service |
|
Send notifications as SNMP traps |
|
Save notifications to a database table |
|
Write notifications to a text file |
|
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 |
|
AuthMethod |
PLAIN |
SMTP authentication method: |
ClientId |
OAuth2 application (client) ID (used with |
|
ClientSecret |
OAuth2 client secret; can be obfuscated with |
|
TokenEndpoint |
OAuth2 token endpoint URL (used with |
|
Scope |
OAuth2 token scope |
|
FromAddr |
netxms@localhost |
Sender email address |
FromName |
NetXMS Server |
Sender display name |
TLSMode |
NONE |
Encryption mode: |
IsHTML |
no |
Set to |
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:
-
Create a Telegram bot by sending
/newbotto @BotFather -
Copy the authentication token (format:
1234567890:ABCdefGhIJKlmNoPQRsTUVwxyZ) -
Create a notification channel with the Telegram driver and set
AuthToken -
Users must send a message to the bot first (bot cannot initiate conversations)
-
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: |
|
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 |
|
ProxyPort |
Proxy port (if not specified in Proxy URL) |
|
ProxyType |
Proxy type: |
|
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; requiresLongPolling=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:
-
In Mattermost, go to System Console → Integrations → Bot Accounts and enable Enable Bot Account Creation (requires Mattermost system administrator rights)
-
Go to Integrations → Bot Accounts → Add Bot Account, create a bot, and copy the generated access token — it is displayed only once
-
Add the bot to the team, then invite it to every channel it should post to (e.g., by typing
/invite @botnamein the channel) — the bot can only post to channels it is a member of -
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
-
Create a notification channel with the Mattermost driver and set
ServerURLandAuthTokenin 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., |
AuthToken |
(required) |
Bot account or personal access token |
Color |
Accent color of message attachments, in CSS-compatible format: |
|
Footer |
Attachment footer text |
|
UseAttachments |
true |
Send messages as rich attachments (subject as title, colored accent bar); set to |
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., |
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: |
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: |
ContentType |
application/json |
Value of the |
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., |
|
SuccessValue |
Required value at |
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 ( |
Speed |
9600 |
Serial port baud rate |
DataBits |
8 |
Data bits (7 or 8) |
StopBits |
1 |
Stop bits (1 or 2) |
Parity |
n |
Parity: |
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: |
UseQuotes |
1 |
Use quotes around phone number: |
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: |
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 ( |
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: |
blacklist |
0 |
Check number against blacklist: |
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 |
Voice |
TTS voice: |
|
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: |
Community |
public |
SNMP community string (v1/v2c) |
SNMPv3 parameters:
| Parameter | Default | Description |
|---|---|---|
UserName |
netxms |
SNMPv3 security name |
AuthMethod |
none |
Authentication: |
AuthPassword |
Authentication password |
|
PrivMethod |
none |
Privacy: |
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 |
|
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).
|