Skip to content

Channels

Channels group items by topic, team, or system. They control visibility — users only see items in channels they belong to.

Channel Modes

ModeDescription
openAny org member can see items (default)
privateOnly members can see items
directReserved for direct message channels

API

List Channels

bash
curl http://localhost:3000/api/channels \
  -H "Authorization: Bearer TOKEN"

Create a Channel

bash
curl -X POST http://localhost:3000/api/channels \
  -H "Authorization: Bearer TOKEN" \
  -d '{"name": "deploys", "mode": "open"}'

Channel names are unique within an org.

Assigning Items to Channels

When creating an item (via REST or MCP), pass the channel_id:

bash
# REST
curl -X POST http://localhost:3000/api/items \
  -H "Authorization: Bearer TOKEN" \
  -d '{"title": "Build failed", "channel_id": "CHANNEL_UUID"}'
json
// MCP — klaxon.notify
{
  "name": "klaxon.notify",
  "arguments": {
    "title": "Build failed",
    "channel": "deploys"
  }
}

Per-Channel Notification Rules

Users can configure notification behavior per channel:

SettingValues
mutedtrue / false — suppress all push notifications
min_levelOnly notify for items at or above this level (e.g. error)
soundOverride notification sound
email_enabledtrue / false — send email notifications for this channel
email_digesttrue / false — aggregate into daily digest instead of per-event

Channel Routes (Outbound Integration)

Channels can have outbound routes that automatically forward item events to external URLs. When an item is created in a routed channel, the server POSTs the event payload to each route.

Routes are stored as a JSON array on the channel:

json
{
  "routes": [
    { "type": "webhook", "url": "https://hooks.slack.com/services/..." },
    { "type": "webhook", "url": "https://n8n.example.com/webhook/..." }
  ]
}

Each route receives the same payload as outbound webhooks, with X-Klaxon-Event header. This reuses the webhook delivery infrastructure — no separate configuration needed.

Route fan-out fires alongside regular webhook delivery on every item mutation (create, answer, dismiss, archive, etc.).

Channel Visibility

Channel membership controls item visibility:

  • open channels: all org members can see items
  • private channels: only members can see items
  • Items with no channel: visible to all org members

This is enforced at the SQL query level — item list queries check channel mode and membership.