Ir al contenido
Calab

Bots

Un bot es un miembro más

Crea un bot en los ajustes del espacio y dale un rol: usa la misma API que la aplicación — chats, tareas, calendario, miembros y voz.

Los permisos vienen de los roles, como para las personas: un bot solo ve las salas a las que tiene acceso.

Bots

  • Chat

    Lee y escribe mensajes en todas las salas y mensajes directos a los que accede, responde, reacciona, envía archivos y stickers. Los eventos llegan en tiempo real por WebSocket.

  • Tareas

    Crea y edita tareas en los tableros, asigna personas, comenta y busca. El bot ve un tablero como lo vería una persona con el mismo rol.

  • Voz

    Entra en una sala de voz con LiveKit: oye a los participantes y habla — texto a voz, eco, música, grabación. En Node, Python o Go.

  • Calendario

    Programa y mueve reuniones, consulta libre/ocupado y busca hora para varias personas. El bot es el organizador; los correos salen «de parte del bot».

  • Miembros

    Abre el perfil de un miembro con sus tareas abiertas, lo renombra, invita por enlace y correo, da insignias — dentro de los permisos del rol.

  • Grabación de reuniones

    Inicia y detiene la grabación de una sala de voz: la transcripción y el resumen llegan como tarjeta al chat. Requiere el permiso «Grabaciones».

  • Comandos y botones

    Registra /comandos que el editor sugiere con «/» y añade botones bajo los mensajes: una pulsación llega al bot como evento.

  • Webhook

    Sin conexión permanente: los eventos llegan como POST con firma HMAC y reintentos ante fallos. Cómodo para serverless.

@calaba/bot-sdk

Un bot de reunión diaria en 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();
El bot eco, los ejemplos de voz y un oyente en Python están en examples/bots. La referencia completa de endpoints y eventos está en la documentación.

Bots

Tu primer bot en 5 minutos

Token, REST, eventos, webhook, botones, voz, límites y códigos de error: en la documentación.