Events
Events are the heartbeat of your stream. Every follow, sub, cheer, raid, channel-point redemption, super chat, tip, and Spotify track change flows through Lumio's event pipeline in real time. The Dashboard gives you a live feed of what is happening on every connected platform, and the same stream powers your overlays, automations, and bot reactions.
This guide covers the event feed on the dashboard home, filtering and searching,
sending test events, the /popout/events window for OBS and secondary monitors, the
channel-status indicator, and every supported event type.
Where to find it
- Sidebar: Dashboard → Home (the default page when you open Lumio).
- Popout window:
/popout/events. - Translations: the feed is driven by the
dashboard.events.*messages inapps/web/messages/{en,de}.json.
The feed appears on the right side of the Dashboard home (or as a standalone popout) and updates automatically as long as the WebSocket is connected.
Quick start
- Open Dashboard → Home.
- Connect at least one streaming platform under Dashboard → Connections so events can flow in.
- Watch the Events panel on the right. New events push in from the top.
- If nothing arrives, click the Test Events header to expand the panel and fire a fake follow, sub, or cheer to verify your overlays and automations.
- For a dedicated monitor, open the popout (the external-link icon) or load
/popout/eventsdirectly.
The event feed
Panel layout
The event panel has three controls above the list:
- Search box — filter by any text in the event (username, message, reward title,
track name). Placeholder reads
Search events.... - Tab toggle (
Events/Filters) — switches between the event list and the filter controls. - Pagination —
Page {page} of {pages}with left/right chevrons. The feed loads 15 events per page.
Each row shows the platform icon, a colored type badge (e.g. Follow, Sub, Bits,
Raid), the username, the timestamp, and an event-specific payload (message,
amount, reward title, etc.). Clicking a username opens the User Info Modal (see
below).
The header shows the total event count using the pluralized message
dashboard.events.description:
No events yet - 1 event total - 42 events total
Real-time updates
The dashboard maintains a WebSocket connection to the API and subscribes to the
events:\{account_id\} and chat:\{account_id\} channels. Events flow through Redis
pub/sub → API → WsServer → browser. When the connection drops, Lumio reconnects
with exponential backoff (1s, 2s, 4s … capped at 30s) and you will see the
connectionLost banner briefly.
Filtering
Switch to the Filters tab to narrow the feed:
- Platform — toggle Twitch, YouTube, Kick, Trovo, Spotify, StreamElements, Discord, Shopify, Copyright, System. Disabled platforms are hidden from the list.
- Type — fine-grained toggles for every event type that has appeared for your account (follower, subscribe, resub, cheer, raid, reward, poll, prediction, hype train, superchat, track, tip, and so on).
Filters persist locally, so they stick across reloads. The pagination counter updates to match the filtered result set.
Search
The search box performs a substring match on the rendered row. Useful examples:
- Type a username to find every action by that viewer.
- Type a reward title to audit channel-point redemptions.
- Type
@yournameto find messages that tagged you.
User Info Modal
Clicking a username opens a modal with three tabs:
- Messages — the user's recent chat history on that platform.
- Mod Notes — private notes shared with your moderators (requires
chat:notes). - Events — every event that user has triggered (follows, subs, cheers, raids).
The modal also shows account-created date, follow status and date, platform ID, and
an Open Profile link out to the source platform. Requires events:userinfo (or
chat:userinfo when opened from the chat view).
Test Event panel
The Test Events panel sits below (or next to) the event feed and is collapsed by
default — click the Test Events header to expand it. Requires the events:create
permission.
What it does
Clicking any preset fires a real event through the pipeline with isTest: true
marked on the payload. It reaches every subscriber exactly like a real event:
- Dashboard event feed
/popout/eventswindow- Every overlay widget listening for that type
- Automations with matching triggers
- Bot reactions
Test events are not stored in the database — they are broadcast-only. Reload the page and they disappear.
How to fire one
- Expand the panel.
- Pick a Platform tab: Twitch, YouTube, Kick, Trovo, or StreamElements.
- (Optional) Pick an Overlay target from the dropdown if you want to preview the test event against a specific overlay URL.
- Click any event preset (e.g.
Follow,Sub,Bits 500,Raid 42). - Watch the event appear in the feed within a few hundred milliseconds.
Use this to:
- Verify a new overlay animation before going live.
- Smoke-test automations after editing a trigger.
- Confirm your bot reacts to
twitch:raidwithout waiting for a real raid.
Popout window
Open /popout/events (or click the external-link icon on the Events panel) to get a
borderless, chrome-free event list suitable for a second monitor, a stream deck
browser, or an OBS browser source for your producer view.
Two authentication modes:
- Cookie auth — if you are already logged in to Lumio in the same browser, the popout uses your session cookie automatically.
- Popout token — append
?token=YOUR_TOKENto the URL (e.g.https://lumio.live/popout/events?token=abc123). Use this when loading the popout inside OBS, where cookies are unavailable. Generate tokens under Account → Tokens.
The popout respects the permissions granted to the token — a scoped token may hide moderation-only event types or the User Info Modal.
Channel-status indicator
Many pages show a live/offline pill per connected platform (top-right of the Dashboard). It reflects whether each of your channels is currently broadcasting:
- Live (green dot) — the platform reports an active stream.
- Offline (gray dot) — the channel is dark.
The Spotify worker and some event pollers only run while at least one channel is live (see the Channel Status guide). This saves API calls and avoids logging Spotify tracks when you are not streaming. If you need to bring the Spotify worker up manually, use the Connect button on the Music page — it starts the worker for 30 minutes.
Supported event types
Event type strings follow the platform:action convention (e.g. twitch:follower,
youtube:superchat). The full set currently recognised:
Twitch
twitch:follower, twitch:subscribe, twitch:resub, twitch:prime_upgrade,
twitch:gift_upgrade, twitch:gift, twitch:pay_it_forward, twitch:bits_badge,
twitch:cheer, twitch:raid, twitch:raid_out, twitch:unraid,
twitch:raid_done, twitch:reward, twitch:hype_train, twitch:hype_train_end,
twitch:poll, twitch:poll_end, twitch:poll_delete, twitch:prediction,
twitch:prediction_lock, twitch:prediction_end, twitch:goal,
twitch:goal_end, twitch:ad_break, twitch:stream_online,
twitch:stream_offline, twitch:stream_update.
YouTube
youtube:subscribe, youtube:member, youtube:superchat, youtube:supersticker,
youtube:gift_membership, youtube:gift_membership_received, youtube:poll,
youtube:poll_end.
Kick, Trovo, Discord
kick:follower, kick:subscribe, kick:gift, trovo:follower,
trovo:subscribe, trovo:spell, trovo:raid, discord:member_join,
discord:member_leave, discord:boost.
Spotify, StreamElements, Shopify, Copyright, System
spotify:track, spotify:play, spotify:pause, spotify:skip,
spotify:playlist_create, spotify:queue_add, streamelements:tip,
shopify:order, shopify:order_paid, copyright:warning, copyright:blocked,
copyright:clear, system:test.
Permissions
| Permission | What it unlocks |
|---|---|
events:read | View the event feed and the popout |
events:create | Send test events (unlocks the Test Events panel) |
events:delete | Remove events from the feed (admin / owner cleanup) |
events:userinfo | Open the User Info Modal on an event row |
Tips & best practices
- Use test events liberally before going live. Fire
twitch:raid,twitch:cheer, andyoutube:superchatto make sure overlays, alerts, and automations all behave. - Pin a popout to your control monitor.
/popout/eventsin a narrow window makes a great always-visible activity feed next to your streaming software. - Generate a scoped token for OBS browser sources under Account → Tokens so a compromised stream PC does not expose your full Lumio session.
- Filter aggressively during raids. Hide
spotify:*andchat:*noise so you can focus on follow/sub/cheer incoming during the chaos.
Troubleshooting
No events arrive
- Check the channel-status pill — if all channels are offline, most platforms only push events for live streams.
- Open Dashboard → Connections and confirm every platform shows
Connected as .... Re-authorize anything markedDisconnectedorToken expired. - Fire a test event. If it shows up but real events do not, the issue is with your platform connection or that platform's event subscription scopes.
- Reload the page to force a WebSocket reconnect.
Connection lost — reconnecting… banner persists
The browser cannot reach the API's /v1/ws endpoint. Causes: your auth token
expired (log out and back in), a network blocker (VPN, corporate firewall), or the
API is genuinely down. Check Account → Sessions to confirm your session is
still valid.
Test events do not fire
You need the events:create permission. Ask your account owner to grant it on
your role under Dashboard → Roles.
Popout shows Invalid or expired token
The token was revoked, rotated, or scoped too narrowly. Regenerate it under Account → Tokens and update the URL in OBS / your second monitor.
Popout shows No authentication token provided
You loaded /popout/events outside a browser session. Append ?token=YOUR_TOKEN
to the URL, or load it inside the same browser where you are logged in.
Related
- Channel Status — how online/offline state gates workers and pollers.
- Overlays — how events drive on-stream widgets and alerts.
- Automation Templates — react to any event with the visual builder.
- Chat — chat messages and moderation share the same WebSocket channel.