# Notification channel types

> Every kind of notification channel, the parameters each one needs, how messages are retried, and what the Test action shows.

Source: https://proxus.io/docs/reference/notification-channels

A notification channel is a way for Proxus to send a message to people: by email, SMS or a chat service. Rules,
pipelines and functions send through a channel by naming it. This page lists every channel type and its
parameters. To create one, see [Notification channels](https://proxus.io/docs/connect/notification-channels).

## Fields of every channel

| Field | Meaning |
| --- | --- |
| **Name** | A unique name, for example `Ops Slack #alerts`. Functions refer to the channel by this name. |
| **Notification Type** | The kind of channel, from the table below. |
| **Description** | Free text. |
| **Parameters** | Key and value rows. The keys each type reads are listed below. Secret values are masked. |
| **Status** | `Configured`, `Missing: <keys>` when required keys are empty, `Sample values` when the channel still has the example values it was created with, or `Delivery failing` when the last send failed after the last success. |
| **Last Success** | When a notification last went out through the channel. |
| **Last Failure** | When a send through the channel last failed. |
| **Last Error** | The reason the provider gave for the last failure. Cleared by the next successful send. |
| **Actions** | How many rule actions send through this channel. |

## Channel types

Required keys are in bold.

| Type | Parameters | Sent with |
| --- | --- | --- |
| **Email Notification** | **`SmtpServer`** (for example `smtp.office365.com`), `SmtpPort` (587), **`Username`**, **`Password`**, **`From`**, **`To`** (one or more addresses separated by `,` or `;`), `Cc`, `Bcc`, `UseSsl` (true) | Your SMTP server. The subject is the message title. |
| **SMS Notification** | **`AccountSid`**, **`AuthToken`**, **`From`** (a Twilio number in E.164 form, `+31201234567`), **`To`** (E.164) | Twilio |
| **WhatsApp Notification** | **`AccountSid`**, **`AuthToken`**, **`From`** (a Twilio WhatsApp sender in E.164 form), **`To`** (E.164) | Twilio. Enter the numbers without the `whatsapp:` prefix; Proxus adds it. |
| **Push Notification** | **`Token`** (the device registration token), `FCM_V1` (true); with `FCM_V1 = true`: **`ProjectId`** and **`AccessToken`**; with `false`: **`ServerKey`** | Firebase Cloud Messaging |
| **Slack Message** | **`WebhookUrl`** (a Slack incoming webhook), `BlocksJson` (optional Slack blocks) | Slack |
| **Microsoft Teams Message** | **`WebhookUrl`** (a Teams incoming webhook) | Microsoft Teams, as a message card |
| **Discord Message** | **`WebhookUrl`** (a Discord webhook) | Discord |
| **Telegram Message** | **`BotToken`**, **`ChatId`**, `ParseMode` (`MarkdownV2` or `HTML`) | Telegram Bot API |
| **Line Message** | **`AccessToken`** (channel access token), **`UserId`** | LINE |
| **Facebook Messenger Message** | **`AccessToken`** (page access token), **`RecipientId`**, **`Message`** | Facebook Messenger |

> **Warning:**
**Pusher Notification** is in the type list but cannot send in this release. A channel of this type is refused
with `Pusher channels cannot be sent by this platform version.` Use another type.

> **Note:**
A **Facebook Messenger Message** channel sends the text stored in its own `Message` parameter, not the text of the
rule or pipeline that triggered it. The other types send the triggering message.

## What is sent

- From a rule: the title `Proxus Notification` and the alert message as the body.
- From a pipeline's **Notification** node: the title `Proxus Pipeline Notification` and the node's message.
- From a function's `SendNotification`: the text the function passes.

Chat channels show only the body. Email uses the title as its subject.

## Delivery and retries

A message that cannot be delivered is tried again up to five times in total, after about 5 seconds, 30 seconds,
5 minutes and 1 hour. A channel with missing or invalid parameters is not retried: fix the channel and the next
message goes through.

Web services that answer with a server error are tried again at once, up to two more times, and a "too many
requests" answer is respected for up to three attempts. Each send has a 15-second limit.

## Test a channel

Select **Test** on a saved channel. It sends a real message.

1. The dialog shows the result of the parameter check (`All required parameters are present.` or
   `Missing or invalid parameters:` with the list), a **Title** and a **Body** filled in for you, and an optional
   recipient that replaces `To`, `ChatId`, `UserId`, `RecipientId` or `Token` for this test. Webhook channels
   (Slack, Teams, Discord) have no recipient to replace.
2. Select **Send Test**.
3. The result is `Sent successfully. The provider accepted the message.` with the time it took, or the reason it
   was not sent.

| Result | Meaning |
| --- | --- |
| `Not sent: channel parameters are incomplete.` | A required key is missing or a value has the wrong form. The message lists which. |
| `Not sent: test rate limit.` | A test of this channel ran less than 15 seconds ago. |
| `Not sent: the attempt timed out.` | The provider did not answer in time. |
| `Send failed.` | The provider refused the message. The reason shows its answer, for example `Slack failed: 404 Not Found`. |

"Accepted" means the provider took the message. It does not prove that it reached the recipient's inbox or app.

## Related

- [Notification channels](https://proxus.io/docs/connect/notification-channels): create a channel.
- [Rule actions](https://proxus.io/docs/automate/rule-actions): send a notification when a rule fires.
- [Pipeline nodes](https://proxus.io/docs/reference/pipeline-nodes#notification): the **Notification** node.
