Skip to main content

Connections

The Connections page is where you link Lumio to the outside world: the streaming platforms it reads chat and events from, the local tools it controls on your stream machine (OBS, Streamer.bot), and external services it ingests tips from (StreamElements). This guide walks through every panel on the page and the sub-pages it links to.

Where to find it

  • Sidebar: Manage → Connections
  • URL: /dashboard/connections
  • Required permission to open: connections:read

The page header shows the title Connections with the description "Connect your streaming platforms to Lumio." and two buttons in the top-right:

  • Bot Connections — opens the bot-connection sub-page.
  • App Credentials — opens the credentials manager (only visible if you have connections:edit).

Quick start

  1. Click App Credentials in the top-right.
  2. For each platform you want to use (Twitch, YouTube, Kick, Trovo), enter the Client ID and Client Secret from that platform's developer portal and click Save.
  3. Go back to Connections.
  4. On the platform card, click Connect. You are redirected to the platform's OAuth consent screen.
  5. Authorize the requested scopes. You are redirected back to Lumio and the card flips to Connected with a green badge.

Repeat steps 4–5 per platform. You only need to enter credentials once per platform per account — connections and disconnections reuse them.

Channel connections

Each card in the main grid represents one streaming platform:

PlatformTypical useDefault scopes
TwitchChat, events, moderation, rewards27 scopes
YouTubeChat, superchats, members2 scopes
KickChat, moderation6 scopes
TrovoChat (public API, no OAuth for some)2 scopes

Card states

A card can be in one of four visible states:

  • Unavailable (greyed out, outline badge) — the provider is disabled system-wide by Lumio admins. Nothing you can do.
  • Not connected — no credentials configured yet. Card shows "Set up app credentials to connect this platform." with a Set Up button that deep-links to the credentials page.
  • Credentials configured, not connected — card shows "Credentials configured. Click Connect to authorize." with a Connect button.
  • Connected (green badge, checkmark) — card shows the channel name, platform channel ID, the first three OAuth scopes (click +N to see the rest), connected date, last-updated date, and token expiry. Buttons: Reconnect and Disconnect.

Connecting

  1. Click Connect on the card.
  2. The button spins while Lumio fetches the OAuth authorization URL from the backend.
  3. You are redirected to the platform's authorize screen. Review the scopes and click Allow.
  4. The platform redirects you back to /dashboard/connections?connected={platform}.
  5. A green banner "Successfully connected to {platform}!" appears above the grid.

Reconnecting

Use Reconnect if tokens stop working (e.g. you revoked them in Twitch settings). It re-runs the OAuth flow with the same credentials and overwrites the stored tokens.

Disconnecting

  1. Click Disconnect on a connected card.
  2. A confirmation dialog appears: "Are you sure you want to disconnect {platform}? This will revoke the connection but keep your app credentials."
  3. Click Disconnect to confirm, or Cancel to abort.

Disconnecting clears the OAuth token from Lumio and stops all chat/event ingestion for that platform. Your App Credentials are kept so reconnecting later is one click.

Viewing all scopes

On a connected card, the scopes row shows the first 3 scopes. Click the +N badge to open the Scopes dialog and see the full list. Scopes are static — to change them you must disconnect and reconnect.

Token expiry

A card shows "Token expires {date} (auto-refresh)" when an access token has an expiration. Lumio runs a background token-refresh worker that keeps OAuth tokens fresh automatically — you do not need to act on this line. If the date appears in red, the refresh has failed; click Reconnect.

App credentials

The App Credentials sub-page (/dashboard/connections/credentials) stores the Client ID and Client Secret pairs that let Lumio speak to each platform's API on your behalf. These are separate from the credentials used to log you in to Lumio — they are per-account and encrypted at rest (AES-256-GCM).

For each platform you can:

  • Paste a Client ID and Client Secret and click Save. Lumio stores a clientIdHint (last 4 characters) so you can identify the credential later without exposing the secret.
  • Click Delete to remove the credentials. This also invalidates any active channel connection on that platform.

You need connections:edit to see this sub-page. Setting up credentials is a one-time task per account.

Integrations

Integrations configure self-hosted tools that Lumio talks to over your network. Add one by clicking Add Integration in the Integrations section.

Streamer.bot

Connects to a running Streamer.bot instance so automations in Lumio can trigger actions in Streamer.bot.

FieldDefaultNotes
LabelStreamer.botFree text; helps you identify the integration
Host127.0.0.1Hostname or IP
Port8080Streamer.bot WebSocket port
Endpoint/Usually /
Password(optional)Only if you enabled auth in Streamer.bot

Click Save to add, or Test on a saved integration to verify Lumio can reach it. The result is shown inline as a success or an error message.

OBS Studio

Connects to OBS via the built-in obs-websocket plugin. Once configured, Lumio can switch scenes, toggle sources, and control media from automations.

FieldDefaultNotes
Port4455OBS WebSocket server port
Password(optional)Set in OBS under Tools → obs-websocket Settings
Enable remote accessoffOpt-in for remote OBS instances
Host / IPPublic host; only when remote access is enabled
Remote OBS access

Enabling remote access requires a public IP and port forwarding in your router/firewall. Only recommended for advanced setups. For local OBS on the same machine, leave remote access off.

Click Save to store. Local connection testing happens automatically via the Browser Source running in OBS — you do not need a Test button for local setups. For remote setups, Test Connection verifies the WebSocket handshake and reports the OBS version (for example "Connected to OBS 30.1.2 successfully!").

Editing or removing an integration

  • Click Enabled / Disabled toggle to pause without deleting.
  • Click Test to re-verify connectivity.
  • Click Remove to delete the integration. Automations that referenced it will fail gracefully.

StreamElements tokens

Lumio can ingest tip events from StreamElements. Click Add Token under the StreamElements section to open the Add StreamElements Token dialog:

  1. Pick a Platform (e.g. Twitch) — this tells Lumio which channel the tips belong to.
  2. Paste your JWT Token from your StreamElements dashboard.
  3. Optionally set a Label (e.g. Main Channel) to identify the token later.
  4. Click Save.

The token is stored encrypted. Lumio stores a short hint (displayed as "Token: …xxxx") so you can recognise it. You can add multiple tokens across different platforms. Click Remove on a token row to revoke it — a confirmation dialog appears because revoking stops tip ingestion immediately.

Bot connections

Click Bot Connections in the page header to open /dashboard/connections/bot. This sub-page configures custom chat-bot identities so your bot posts under a separate account (e.g. YourBot instead of YourChannel).

Each platform card shows:

  • Global Bot (default) — a Lumio-hosted bot. No setup required.
  • Custom Bot — click Connect Bot to run OAuth under the bot identity you want to use.

Disconnecting a custom bot falls back to the global bot automatically. Discord bots are configured by Lumio admins and cannot be customised per account.

Permissions

ActionRequired permission
Open the Connections pageconnections:read
Connect / reconnect / disconnectconnections:edit
Manage App Credentialsconnections:edit
Add or remove integrationsconnections:create, connections:delete
Add or remove StreamElements tokensconnections:create, connections:delete
Manage Bot Connectionsbot-connections:read, bot-connections:create, bot-connections:delete

If a button is missing, you lack the corresponding permission. Ask an account owner to adjust your role.

Tips and best practices

  • Connect every platform you stream on, even the secondary ones — most overlays and automations need the channel to be connected to render user emotes or resolve usernames.
  • Do not share credentials across accounts. App Credentials are per-account; if you manage several brands, register a separate OAuth application per brand.
  • Review connected scopes periodically. If Lumio adds new features that need extra scopes, the UI will ask you to reconnect. Reconnecting never changes which channel is linked.
  • Test integrations before going live. Click Test on Streamer.bot and OBS integrations right before a stream — catching a misconfigured port five minutes before going live is much easier than mid-stream.
  • Use labels on integrations and StreamElements tokens so you can tell them apart on multi-PC setups.

Troubleshooting

OAuth redirect lands on an error page. The most common causes are (1) the Client ID or Client Secret in App Credentials is wrong, (2) the redirect URI in your OAuth app does not exactly match what Lumio expects, (3) the platform is rate-limiting repeated attempts. Re-enter credentials and wait 60 seconds before retrying.

Card says Connected but no events arrive. Scopes may be missing for the features you use. Disconnect and reconnect — Lumio always requests the current scope set. Also check that the platform connection is not disabled account-wide (Unavailable badge).

Token expires date is in red. Automatic refresh has failed. Click Reconnect to re-run OAuth. If it keeps failing, your Client Secret is probably invalid — re-enter it under App Credentials.

Streamer.bot Test succeeds but actions do not fire. Confirm the automation in Lumio is actually targeting that integration (the dropdown on the automation node) and that Streamer.bot has an action registered for the payload Lumio sends.

OBS connection works locally but not remotely. Remote OBS needs a public IP and port forwarding. The Test Connection error message will tell you whether it is a timeout (firewall) or an auth failure (wrong password).

StreamElements tips stop showing up. JWT tokens do not expire, but can be revoked. Open your StreamElements account, copy a new JWT, and re-add it. Remove the old token once the new one is verified.

  • Dashboard — see events arrive once connections are live.
  • Members — give teammates access to manage connections.
  • Bot Control — once connections are live, manage the bots themselves.
  • Token refresh — how Lumio keeps OAuth tokens fresh.