Skip to main content

Bot Control

Bot Control is the runtime switchboard for every chat / social bot Lumio runs on behalf of accounts. It surfaces each account × platform combination and lets operators pause or resume the bot without touching account-level configuration. Use it for incident response, platform rate-limit flare-ups, or when debugging a single account's bot behaviour.

Where to find it

Admin sidebar → Bot Control (/bot-control).

Quick start

  1. Open Admin → Bot Control.
  2. Filter by platform (All / Twitch / YouTube / Kick / Trovo / Discord) and/or search by account name or ID.
  3. Locate the row for the misbehaving bot.
  4. Click Pause to stop it immediately, or Resume to bring it back.
  5. Watch the status badge update: Active, Paused, or No Connection.

Detailed walkthrough

Status badges

Each row shows one of three states:

  • Active — the bot is connected and processing events.
  • Paused — the bot connection exists but is explicitly paused by an admin. No messages are sent or received.
  • No Connection — the account has no bot connection for this platform. Pause / Resume are hidden.

Filters

  • Search — debounced match against account name or account ID.
  • Platform — dropdown: All Platforms, Twitch, YouTube, Kick, Trovo, Discord.

Row columns

Account name, platform, current status, last connection heartbeat, action button. Rows without a connection show a disabled badge and no button.

Pause / Resume

The UI calls a toggle endpoint that flips the paused flag on the bot connection row. The change is distributed via Redis pub/sub so the relevant bot worker picks it up within a few seconds.

Common scenarios

  • Twitch platform incident — filter by twitch, select-all is not supported in the UI; pause accounts one by one or use the Providers page to flip the global kill-switch.
  • Customer-reported bot spam — find the account, pause it on the affected platform, investigate bot commands / modules.
  • Resume after maintenance — filter by platform, resume each paused row.
  • Audit which accounts have a Discord bot connected — filter by discord; rows with Active or Paused have a connection, No Connection does not.

Permissions

ActionPermission
View bot statusesbot-control:read
Pause / resume a botbot-control:edit

Dashboard entry requires admin:access. System admins hold these implicitly.

API

UI actionGraphQLREST
List bot statuses (filtered)adminBotStatusesGET /v1/admin/bot-control/statuses
Pause / resumeadminToggleBotForAccountPUT /v1/admin/bot-control/\{account_id\}/\{platform\}

The frontend calls its own Next.js proxy routes at /api/bot-statuses and /api/bot-statuses/toggle, which forward to the REST admin endpoints above.

Tips & gotchas

  • Pause is per account × platform — not global. For a platform-wide halt, toggle the kill-switch on Providers instead.
  • Pausing does not revoke OAuth tokens. The bot connection stays authenticated and resumes instantly when toggled back.
  • A bot with No Connection cannot be paused because there is nothing to pause. It has to be connected first from the account's side.
  • The toggle is idempotent — calling pause on an already-paused bot is a no-op.
  • Providers — platform-level kill-switches and global bot identity
  • Bot Commands — command registry executed by these bots
  • Discord Guilds — Discord-specific guild-to-account mapping