Docs

Channels

Integrate Schift RAG with messaging platforms like KakaoTalk for real-time conversational search.

The Channels API connects Schift collections to messaging platforms. When a user sends a message through a connected channel, Schift automatically embeds the query, searches the linked collection, and returns formatted results within platform constraints.

Kakao Webhook

bashPOST /v1/channels/kakao/webhook

Receives messages from KakaoTalk via Open Builder skill callback. Authentication uses the bot_id from the webhook payload (must be registered in a channel config). Rate limited to 30 requests per 60 seconds per bot.

Flow

Incoming message -> bot_id authentication -> rate limit check -> embed query -> search linked collection -> format results (900 char limit) -> return Kakao simpleText response. User messages are stored as vectors in the background for conversation history.

Send Message

bashPOST /v1/channels/kakao/send

Send an alimtalk notification via KakaoTalk channel. Requires API key authentication.

ParameterTypeRequiredDescription
channel_config_idstringYesChannel config ID
phonestringYesRecipient phone number
template_codestringYesKakao alimtalk template code
template_argsobjectNoTemplate variable substitutions
user_idstringNoKakao user ID (alternative to phone)
messagestringNoPlain message text (if template not used)
bashcurl -X POST https://api.schift.io/v1/channels/kakao/send \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $SCHIFT_API_KEY" \
  -d '{
    "channel_config_id": "ch_abc123",
    "phone": "+821012345678",
    "template_code": "order_confirmation",
    "template_args": {"order_id": "ORD-2026-001", "customer": "Kim"}
  }'

Channel Config CRUD

MethodEndpointDescription
POST/v1/channels/configsRegister a channel config (provider, API keys, linked collection)
GET/v1/channels/configsList all configs (secrets masked)
DELETE/v1/channels/configs/{id}Delete a config
bash# Register a Kakao channel
curl -X POST https://api.schift.io/v1/channels/configs \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $SCHIFT_API_KEY" \
  -d '{
    "name": "Support Bot",
    "provider": "kakao",
    "config": {
      "bot_id": "your-kakao-bot-id",
      "collection": "support-docs",
      "rest_api_key": "your-rest-api-key",
      "channel_id": "your-channel-id"
    }
  }'