Back to docs
Guide 00

Connectors — external channels connected to the knowledge base

Connectors link the messaging channels where your customers and colleagues already are — WhatsApp, Telegram, Discord, Slack — to the same knowledge base that powers the internal chat. Conversations stay on your servers: the app calls the channel's APIs w…

2 min read

Connectors link the messaging channels where your customers and colleagues already are — WhatsApp, Telegram, Discord, Slack — to the same knowledge base that powers the internal chat. Conversations stay on your servers: the app calls the channel's APIs with the credentials the administrator supplies, and the answers come from the document knowledge base.

Enterprise edition only (connectors_enabled: false in the Community license — the Community admin panel shows the UpgradePrompt; see Administration). References: packages/shared/src/schemas/connector.schema.ts (the form fields), packages/server/src/routes/connectors.ts (the limits + the router), CHANGELOG.md v0.28.1, packages/shared/src/constants/license.ts. Provenance rows: FACT-CENSUS.md F-CONN-1, F-CONN-2, F-LIC-1.

Creating a connector

Path: Settings → Conversations → Connectors (the New connector button). The form requires:

FieldNotes
Namethe connector instance identifier
Platformtelegram, discord, slack, whatsapp — immutable after creation
Bot token / credentialsthe channel's secret token — immutable after create (create-only; the PUT never touches it)
Workspacethe binding workspace, immutable
Knowledge archive bindingthe document archive feeding the answers
Welcome messagethe first message the channel sends to an incoming conversation (max 4000 chars)
Fallback messagethe reply when search produces no valid sources (max 4000 chars)
Fallback localethe fallback message's language
Rate limit0 = unlimited (the router's sentinel), N = N requests max
Daily session limit0 = unlimited, N = N sessions per day max

The archive binding determines the corpus: every question arriving from the channel goes through the same RAG pipeline as internal chats (hybrid search, source citation, synthesis) — the cited answer is sent back on the originating channel.

Editing a connector (v0.28.1)

The connector card in the admin panel carries an overflow menu with an Edit item (the first): it opens a pre-filled dialog over the mutable surface:

  • Mutable via `PUT /api/connectors/:id`: name, archive binding, welcome/fallback messages, fallback locale, rate limit, daily session limit (empty = null; 0 = unlimited).
  • Immutable by schema: platform, bot token, workspace. A channel or token change = a new connector.
  • The isEnabled toggle stays on the card (Switch); the Telegram pollMode stays on the webhook buttons.
  • The PUT logs the chat_connector.updated audit event (parity with the DELETE arm).

Platform adapters

Each platform runs a dedicated adapter with its own registration credentials:

PlatformCredentialsNotes
Telegrambot token (@BotFather)poll mode and webhook both supported (dedicated buttons on the card)
Discordbot token (Developer Portal) + message intentsthe adapter reads the bot's authorized channels
Slackbot token + signing secret (Slack app)message events via the configured webhook
WhatsAppBusiness API provider (secret token)the adapter calls the provider's API

Credentials transit and stay server-side; the secret token is never reflected in the UI after creation.

Limits and the fallback message

The rate limit and the daily session limit protect the workspace from external traffic: 0 = unlimited; N = the per-connector maximum. The fallback message (with its configurable fallback locale) is the reply when corpus search yields no valid citable elements — an external channel never receives ungrounded generations when a fallback is configured.

Disabling and audit

  • isEnabled (the card Switch) suspends routing without deleting the configuration.
  • Connector DELETE is a dedicated audited action (the chat_connector.deleted event, parity with updated).
  • Every admin operation on connectors lands in the event log (see Administration).

Activating Enterprise without touching the server

The Enterprise license applies by pasting the key in the panel (Settings → Security → License, GET/PUT/DELETE /api/license/instance): probe-first verification (invalid/expired/plugin_bound/community_tier — a rejected key never persists), AES-256-GCM ciphertext in SystemConfig, runtime application via setCachedLicense. See API reference; F-LIC-1.

This guide covers the operator surface for the connector adapters; the engineering deep dive lives in the twin post:

Provenance

SectionSource
Edition gate / UpgradePromptpackages/shared/src/constants/license.ts (connectors_enabled) — F-CONN-1
Edit surface + immutables + auditCHANGELOG.md v0.28.1 (Added, Q1-quick; Phase 221 for the license) — F-CONN-2, F-LIC-1
Form fields / limitspackages/shared/src/schemas/connector.schema.ts (welcomeMessage/fallbackMessage max 4000, fallbackLocale, rateLimitPerMinute/sessionLimitPerDay - the limiter translates 0 → unlimited)

---

Operator reference — Simmetric Chat v0.28.1 (docs refreshed 2026-10-02, census SHA `aca5b8ff`).