Боты
Бот — такой же участник, как все
Создайте бота в настройках пространства и выдайте ему роль — он работает через тот же API, что и приложение: чаты, задачи, календарь, участники и голос.
Права — через роли, как у людей: бот видит только те комнаты, куда его пустили.
Боты
Чат
Читает и пишет сообщения во всех доступных комнатах и личных сообщениях, отвечает, ставит реакции, отправляет файлы и стикеры. События приходят в реальном времени по WebSocket.
Задачи
Создаёт и меняет задачи на досках, назначает исполнителей, комментирует и ищет. Доска видна боту так же, как человеку с его ролью.
Голос
Заходит в голосовую комнату через LiveKit: слышит участников и говорит сам — озвучка текста, эхо, музыка, запись. На Node, Python или Go.
Календарь
Назначает и переносит встречи, смотрит «свободно/занято» и подбирает время для нескольких человек. Бот — организатор, письма уходят «от имени бота».
Участники
Открывает профиль участника с его открытыми задачами, переименовывает, приглашает по ссылке и почте, выдаёт бейджи — в рамках прав роли.
Запись встреч
Запускает и останавливает запись голосовой комнаты — транскрипт и саммари придут карточкой в чат. Нужно право «Записи».
Команды и кнопки
Регистрирует /команды, которые композер подсказывает по «/», и прикрепляет кнопки под сообщениями — нажатие приходит боту событием.
Webhook
Без постоянного соединения: события приходят POST-запросом с подписью HMAC и повторами при сбоях. Удобно для serverless.
@calaba/bot-sdk
Бот планёрки на TypeScript
import { Bot } from '@calaba/bot-sdk';const bot = new Bot(process.env.BOT_TOKEN, { server: 'https://app.calab.io',});await bot.commands([{ name: 'standup', description: 'Start' }]);// "/standup" → a message with a buttonbot.on('command', (c) => bot.send(c.message.roomId, { text: 'Stand-up time. Record it?', inlineKeyboard: { rows: [{ buttons: [ { id: 'rec', label: 'Record', data: 'standup' }, ] }] }, }),);// pressed → start the meeting recordingbot.on('callback', (cb) => { if (cb.buttonId === 'rec') bot.recording.start(cb.roomId);});await bot.start();Боты
Первый бот за 5 минут
Токен, REST, события, webhook, кнопки, голос, лимиты и коды ошибок — в документации.