---
name: "notify_add_channel"
area: "notify"
title: "Add a notification channel"
price: "$0.001"
method: "POST"
url: "https://api.conecto.chat/v1/tools/notify_add_channel"
mcp_server: "https://api.conecto.chat/mcp/notify"
auth: "Authorization: Bearer <conecto_sk_ key>"
docs_url: "https://conecto.chat/tools/notify/notify_add_channel"
---

# Add a notification channel (`notify_add_channel`)

Saves a place to send messages by name: Slack, Teams, Discord or Google Chat, a Telegram chat, ntfy, Pushover, or the business's own webhook.

Save a place to send messages, by name: Slack, Microsoft Teams, Discord or Google Chat (an incoming webhook URL), Telegram (bot_token and chat_id), ntfy (topic, optional server and access_token), Pushover (user_key and app_token), or your own webhook (url; each request is signed with a secret returned once). A test message is sent first unless send_test is false; if it doesn't arrive, nothing is saved or charged. Tokens are stored encrypted and never shown back.

Price: $0.001 a call. A call that fails costs nothing.

## Use it when

The team wants messages or alerts where its people already look.

- For a public post on the business's social accounts, use [social_post](https://conecto.chat/tools/social/social_post.md).

## Say this to your agent

> Add our #workshop Slack channel so you can post updates there. I've set up a webhook for you.

## Inputs

| Name | Type | Required | Description | Allowed values | Default |
|---|---|---|---|---|---|
| `name` | string | yes | A short name for the channel, e.g. "sales-alerts" (lowercase letters, numbers, dashes). Matches ^[a-z0-9][a-z0-9-]{0,39}$. |  |  |
| `kind` | string | yes |  | `"slack"`, `"teams"`, `"discord"`, `"google_chat"`, `"telegram"`, `"ntfy"`, `"pushover"`, `"webhook"` |  |
| `webhook_url` | string | no | Up to 1,000 characters. Stored encrypted and shown only as [redacted]. |  |  |
| `bot_token` | string | no | Up to 100 characters. Stored encrypted and shown only as [redacted]. |  |  |
| `chat_id` | string | no | Up to 40 characters. |  |  |
| `topic` | string | no | Up to 64 characters. |  |  |
| `server` | string | no | Up to 300 characters. |  |  |
| `access_token` | string | no | Up to 200 characters. Stored encrypted and shown only as [redacted]. |  |  |
| `user_key` | string | no | Up to 40 characters. Stored encrypted and shown only as [redacted]. |  |  |
| `app_token` | string | no | Up to 40 characters. Stored encrypted and shown only as [redacted]. |  |  |
| `url` | string | no | Up to 1,000 characters. |  |  |
| `send_test` | boolean | no |  |  | `true` |

## Example

Written for Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon.

MCP: call `notify_add_channel` on the MCP server `https://api.conecto.chat/mcp/notify` with these arguments:

```json
{
  "name": "workshop",
  "kind": "slack",
  "webhook_url": "https://hooks.slack.com/services/T000/B000/XXXX"
}
```

REST:

```bash
curl https://api.conecto.chat/v1/tools/notify_add_channel \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "workshop", "kind": "slack", "webhook_url": "https://hooks.slack.com/services/T000/B000/XXXX"}'
```

## Response

```json
{
  "call_id": "5f0c8a2e-3b7d-4c1e-9a64-2d8e1f7b0c93",
  "tool": "notify_add_channel",
  "status": "succeeded",
  "replayed": false,
  "cost_usd": "$0.001",
  "balance_usd": "$19.75",
  "result": {
    "channel": {
      "name": "workshop",
      "kind": "slack",
      "target": "hooks.slack.com/...XXXX",
      "events": [],
      "last_sent_at": null,
      "last_error": null
    },
    "tested": true
  }
}
```

`result`: channel: its name, kind, where it goes (never its token) and its events; tested: whether a test message went first; for a webhook, webhook_secret (shown once) and how each request is signed.

## Errors

| Code | Status | When | Fix |
|---|---|---|---|
| `invalid_input` | 400 | A webhook is not the service's own https address, a token, chat, topic or key is not in its form, or a server or url is not a public https:// address. | Send the values as the service gives them; the message names the one. |
| `name_taken` | 409 | A channel has that name already. | Pick another name, or remove the old channel. |
| `limit_reached` | 409 | The business has 50 channels already. | Remove one with notify_remove_channel. |
| `delivery_failed` | 502 | The test message did not arrive; nothing was saved or charged. | Check the webhook or token with the owner, or pass send_test: false. |
| `unavailable` | 503 | Notifications are not available right now. | Try again later; nothing was charged. |

The refusals every tool can give (401 key, 402 balance, 429 limits) are on the errors page: https://conecto.chat/docs/errors.md

## Related

- [notify_list_channels](https://conecto.chat/tools/notify/notify_list_channels.md): The saved channels: where each goes (never its token), the events it gets, and whether the last message arrived. Free up to 1,000,000 reads a month.
- [notify_send](https://conecto.chat/tools/notify/notify_send.md): Sends a message to one or more saved channels, with a title, a link or high priority; only the channels it reached are charged. $0.005 per channel reached.
- [notify_request_approval](https://conecto.chat/tools/notify/notify_request_approval.md): Asks a person to approve or decline (or pick an option) before the agent acts, on a one-time page sent through a channel or by email. $0.01 a request, $0.02 more by email, up to $0.03.
- [notify_get_approval](https://conecto.chat/tools/notify/notify_get_approval.md): Where a question asked with notify_request_approval stands, with the answer and comment once it has one. Free up to 1,000,000 reads a month.
- [notify_list_events](https://conecto.chat/tools/notify/notify_list_events.md): Every event a channel can get on its own: a job application, a booking, a form response, a signed document, a site going down and more. Free up to 1,000,000 reads a month.
- [notify_subscribe](https://conecto.chat/tools/notify/notify_subscribe.md): Sends chosen events to a saved channel as they happen, replacing the channel's list. $0.001 a call.
- [notify_unsubscribe](https://conecto.chat/tools/notify/notify_unsubscribe.md): Stops every event to a channel; the channel stays for notify_send. Free.
- [notify_remove_channel](https://conecto.chat/tools/notify/notify_remove_channel.md): Deletes a saved channel, with the events it got. Free.
