---
title: Notifier plugin
description: Send notifications and alerts to various channels including email, Slack, and webhooks.
url: https://docs.influxdata.com/influxdb3/enterprise/plugins/library/official/notifier/
estimated_tokens: 4357
product: InfluxDB 3 Enterprise
version: enterprise
---

# Notifier plugin

The Notifier Plugin provides multi-channel notification capabilities for InfluxDB 3 Enterprise, enabling real-time alert delivery through various communication channels. Send notifications via Slack, Discord, HTTP webhooks, SMS, or WhatsApp based on incoming HTTP requests. Acts as a centralized notification dispatcher that receives data from other plugins or external systems and routes notifications to the appropriate channels.

## Configuration

This HTTP plugin receives all configuration via the request body. No trigger arguments are required.

### Plugin metadata

This plugin includes a JSON metadata schema in its docstring that defines supported trigger types and configuration parameters. This metadata enables the [InfluxDB 3 Explorer](https://docs.influxdata.com/influxdb3/explorer/) UI to display and configure the plugin.

### Request body parameters

Send these parameters as JSON in the HTTP POST request body:

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| notification_text | string | required | Text content of the notification message |
| senders_config | object | required | Configuration for each notification channel |

### Sender-specific configuration (in request body)

The `senders_config` object accepts channel configurations where keys are sender names and values contain channel-specific settings:

#### Slack notifications

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| slack_webhook_url | string | required | Slack webhook URL |
| slack_headers | string | none | Base64-encoded JSON headers |

#### Discord notifications

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| discord_webhook_url | string | required | Discord webhook URL |
| discord_headers | string | none | Base64-encoded JSON headers |

#### HTTP webhook notifications

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| http_webhook_url | string | required | Custom webhook URL for HTTP POST |
| http_headers | string | none | Base64-encoded JSON headers |

#### SMS notifications (via Twilio)

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| twilio_sid | string | required | Twilio Account SID (or use TWILIO_SID env var) |
| twilio_token | string | required | Twilio Auth Token (or use TWILIO_TOKEN env var) |
| twilio_from_number | string | required | Sender phone number in E.164 format |
| twilio_to_number | string | required | Recipient phone number in E.164 format |

#### WhatsApp notifications (via Twilio)

| Parameter | Type | Default | Description |
| --- | --- | --- | --- |
| twilio_sid | string | required | Twilio Account SID (or use TWILIO_SID env var) |
| twilio_token | string | required | Twilio Auth Token (or use TWILIO_TOKEN env var) |
| twilio_from_number | string | required | Sender WhatsApp number in E.164 format |
| twilio_to_number | string | required | Recipient WhatsApp number in E.164 format |

## Software Requirements

-   **InfluxDB 3 Enterprise**: with the Processing Engine enabled.
-   **Python packages**:
    -   `httpx` (for HTTP requests)
    -   `twilio` (for SMS/WhatsApp notifications)

### Installation steps

1. Start InfluxDB 3 Enterprise with the Processing Engine enabled (`--plugin-dir /path/to/plugins`):
    
    ```bash
    influxdb3 serve \
      --node-id node0 \
      --object-store file \
      --data-dir ~/.influxdb3 \
      --plugin-dir ~/.plugins
    ```
    
2. Install required Python packages:
    
    ```bash
    influxdb3 install package httpx
    influxdb3 install package twilio
    ```
    

## Trigger setup

### HTTP trigger

Create an HTTP trigger to handle notification requests:

```bash
influxdb3 create trigger \
  --database mydb \
  --path "gh:influxdata/notifier/notifier_plugin.py" \
  --trigger-spec "request:notify" \
  notification_trigger
```

This registers an HTTP endpoint at `/api/v3/engine/notify`.

### Enable trigger

```bash
influxdb3 enable trigger --database mydb notification_trigger
```

## Example usage

### Example 1: Slack notification

Send a notification to Slack:

```bash
curl -X POST http://localhost:8181/api/v3/engine/notify \
  -H "Authorization: Bearer $INFLUXDB3_AUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "notification_text": "Alert: High CPU usage detected on server1",
    "senders_config": {
      "slack": {
        "slack_webhook_url": "'"$SLACK_WEBHOOK_URL"'"
      }
    }
  }'
```

Set `INFLUXDB3_AUTH_TOKEN` and `SLACK_WEBHOOK_URL` to your credentials.

**Expected output**

Notification sent to Slack channel with message: “Alert: High CPU usage detected on server1”

### Example 2: SMS notification

Send an SMS via Twilio:

```bash
curl -X POST http://localhost:8181/api/v3/engine/notify \
  -H "Authorization: Bearer $INFLUXDB3_AUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "notification_text": "Critical alert: System down",
    "senders_config": {
      "sms": {
        "twilio_from_number": "'"$TWILIO_FROM_NUMBER"'",
        "twilio_to_number": "'"$TWILIO_TO_NUMBER"'"
      }
    }
  }'
```

Set `TWILIO_FROM_NUMBER` and `TWILIO_TO_NUMBER` to your phone numbers. Twilio credentials can be set via `TWILIO_SID` and `TWILIO_TOKEN` environment variables.

### Example 3: Multi-channel notification

Send notifications via multiple channels simultaneously:

```bash
curl -X POST http://localhost:8181/api/v3/engine/notify \
  -H "Authorization: Bearer $INFLUXDB3_AUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "notification_text": "Performance warning: Memory usage above threshold",
    "senders_config": {
      "slack": {
        "slack_webhook_url": "'"$SLACK_WEBHOOK_URL"'"
      },
      "discord": {
        "discord_webhook_url": "'"$DISCORD_WEBHOOK_URL"'"
      }
    }
  }'
```

Set `SLACK_WEBHOOK_URL` and `DISCORD_WEBHOOK_URL` to your webhook URLs.

## Code overview

### Files

-   `notifier_plugin.py`: The main plugin code containing the HTTP handler for notification dispatch

### Logging

Logs are stored in the trigger’s database in the `system.processing_engine_logs` table. To view logs:

```bash
influxdb3 query --database YOUR_DATABASE "SELECT * FROM system.processing_engine_logs WHERE trigger_name = 'notification_trigger'"
```

### Main functions

#### `process_http_request(influxdb3_local, request_body, args)`

Handles incoming HTTP notification requests. Parses the request body, extracts notification text and sender configurations, and dispatches notifications to configured channels.

Key operations:

1. Validates request body for required `notification_text` and `senders_config`
2. Iterates through sender configurations (Slack, Discord, HTTP, SMS, WhatsApp)
3. Dispatches notifications with built-in retry logic and error handling
4. Returns success/failure status for each channel

## Troubleshooting

### Common issues

#### Issue: Notification not delivered

**Solution**: Verify webhook URLs are correct and accessible. Check Twilio credentials and phone number formats. Review logs for specific error messages.

#### Issue: Authentication errors

**Solution**: Ensure Twilio credentials are set via environment variables or request parameters. Verify webhook URLs have proper authentication if required.

#### Issue: Rate limiting

**Solution**: Plugin includes built-in retry logic with exponential backoff. Consider implementing client-side rate limiting for high-frequency notifications.

### Environment variables

For security, set Twilio credentials as environment variables:

```bash
export TWILIO_SID=your_account_sid
export TWILIO_TOKEN=your_auth_token
```

### Viewing logs

Check processing logs in the InfluxDB system tables:

```bash
influxdb3 query --database YOUR_DATABASE "SELECT * FROM system.processing_engine_logs WHERE log_text LIKE '%notifier%' ORDER BY event_time DESC LIMIT 10"
```

## Report an issue

For plugin issues, see the Plugins repository [issues page](https://github.com/influxdata/influxdb3_plugins/issues).

## Find support for InfluxDB 3 Enterprise

The [InfluxDB Discord server](https://discord.gg/9zaNCW2PRT) is the best place to find support for InfluxDB 3 Core and InfluxDB 3 Enterprise. For other InfluxDB versions, see the [Support and feedback](#bug-reports-and-feedback) options.

#### Related

-   [Notifier plugin on GitHub](https://github.com/influxdata/influxdb3_plugins/tree/main/influxdata/notifier)

[plugins](/influxdb3/enterprise/tags/plugins/) [processing engine](/influxdb3/enterprise/tags/processing-engine/) [python](/influxdb3/enterprise/tags/python/) [notifications](/influxdb3/enterprise/tags/notifications/) [alerting](/influxdb3/enterprise/tags/alerting/) [integration](/influxdb3/enterprise/tags/integration/)
