Every Flow starts with one event — see Flows for what events are and why StreamWizard has them. This page is the full reference: every event, grouped by platform and then by topic, plus the exact info you can pull from each one with a Read event data node (see Nodes).
sequenceDiagram
participant TD as Twitch/Discord/OBS
participant SW as StreamWizard
participant YF as Your Flow
TD->>SW: something happens
SW->>YF: wakes it up
YF-->>TD: action happens
Most Twitch events give you the same two pairs of information automatically, so instead of repeating them everywhere, here's the pattern once:
- Streamer Twitch ID / Name — your own channel, so a Flow works correctly even if you reuse it or share it.
- Viewer Twitch ID / Name — who did it: the viewer involved (the follower, the cheerer, the person who redeemed something, and so on). You'll need their ID for most actions, and their name for anything you show on screen or in chat.
Below, only the extra, event-specific information is listed for each event — the two pairs above are always there unless an event says otherwise.
| Category |
What it's about |
| 💬 Chat |
Messages typed in your Twitch chat, watch-streak shares your chat bot reports, and polls and predictions |
| 🎉 Follows, Subscriptions & Cheers |
Follows, subs, resubs, gift subs, ended subs, cheers and Bits |
| 🎁 Channel Points & Power-Ups |
Custom and built-in reward redemptions, and your own rewards being created, changed or removed |
| 📣 Raids & Shoutouts |
Incoming raids, and shoutouts given and received |
| 🚂 Goals & Hype Trains |
Channel goal and Hype Train progress |
| 🛡️ Moderation |
Bans, timeouts and their reversal, and moderators or VIPs added or removed |
| 💰 Ads |
Scheduled and manual ad breaks |
| 📡 Stream Status |
Going live, going offline, and changes to your title, category, language or account |
Fires whenever someone types in your Twitch chat (matching whatever filters you've set up for this Flow). Messages StreamWizard itself sends (through your bot accounts or StreamWizard's shared bot) never trigger it, so a Flow that answers in chat can't set itself off again.
-
Message Content — what they actually typed. This is what you'd check with a Text comparison node to build your own chat commands.
-
Message Twitch ID — this message's ID, for pinning, deleting or replying to exactly this message.
-
Replied Message Twitch ID, Replied Viewer Twitch ID / Name — when the message is a reply: the message it answers and who wrote that one ("null" text otherwise).
-
Parameter 1, Parameter 2, Parameter 3 — only filled in when your Flow's trigger uses "starts with" (e.g. a command like "!so"): the first three words the viewer typed after the command word, one word each. Anything after the third word isn't in any of them; for the whole message, start from Message Content and Replace what you don't need with nothing. The whole command word is skipped, even when your trigger is only its start: with "!prio" as the trigger, "!prios bob" gives "bob" as Parameter 1. A mention like "@bob" arrives as just "bob", ready for a Get User By Name lookup. Typed fewer extra words than that? The unused ones read as the text "null" — compare against that if you need to tell "nothing was typed" apart from a real word. Using "same" or "contains" as your trigger instead? All three always read "null", since there's no fixed command word to split after.
-
Is Moderator?, Is VIP?, Is Subscriber?, Is Founder? — the badges the person typing currently holds. Always filled in, on every message, regardless of trigger type. A Founder always reads Is Subscriber? as true too — that's Twitch's own badge overlap, not a StreamWizard quirk.
Fires when a viewer shares that they've hit a watch-streak milestone in your chat — the "on fire" message Twitch generates for consecutive-stream viewing.
- Streak Message — the exact system message Twitch generated for the milestone.
- Watch Streak Count — how many streams in a row they've watched.
- Channel Points Earned — the bonus channel points Twitch granted them for it.
Fires when a poll starts on your channel, and when it ends (its time ran out, or it was ended early). Only your channel's info is included, no viewer.
- Poll Twitch ID — use it with End Poll to end the poll early.
- Poll Title — the question.
- Poll Started At — when it started.
- Poll Ends At — on Started only: when its time runs out.
- Poll Status, Poll Ended At — on Ended only: completed, terminated (ended early) or archived (ended and removed from view).
- Winning Option Twitch ID / Title / Votes — on Ended only: the option with the most votes (channel point votes included), and how many it got.
- Is Tie? — on Ended only: true when the two options with the most votes got the same number of votes. The Winning Option is then the first of them, so check this before announcing a winner.
Fires when a prediction starts on your channel, when it stops taking predictions, and when it's resolved or canceled. Only your channel's info is included, no viewer.
- Prediction Twitch ID — use it with End Prediction or Resolve Prediction.
- Prediction Title — the question.
- Outcome 1 Twitch ID / Title, Outcome 2 Twitch ID / Title — on Started and Locked: the first two outcomes, so a Flow can resolve the prediction with one of them as the winner.
- Prediction Started At, plus Prediction Locks At (Started) or Prediction Locked At (Locked).
- Prediction Status, Winning Outcome Twitch ID, Prediction Started At, Prediction Ended At — on Ended only: resolved or canceled, and which outcome won ("null" text when canceled).
Fires when someone follows your channel.
- Followed At — the exact date and time of the follow.
Fires whenever a sub is paid for in your channel: a first sub, a sub bought again after it ended, a renewal paid by hand, a switch to a prepaid package or another tier, or a gifted sub (once for every viewer who receives one). Automatic monthly renewals don't fire it; you only hear about those through Subscription Shared in Chat, if the viewer shares them. This is the event to count subs with.
- Subscription Tier — 1000, 2000, or 3000 (Tier 1, 2, or 3; divide by 1000 for the tier number).
- Is Gift? — true if someone else paid for this subscription.
Fires when someone gifts one or more subscriptions to your channel.
- Subscription Tier — which tier was gifted.
- Gifted Subscription Count — how many they gifted just now.
- All Time Gifted Subscription Count — their running total ever (0 if they've hidden this or gifted anonymously).
- Is Anonymous? — true if the gifter chose to stay anonymous.
Fires when a subscriber shares their resub in chat, with their message. Not every resub is shared, and a viewer can share days after paying. When the sub was paid for (not renewed automatically), Subscription Paid already fired for it — so if a Flow counts subs from both events, skip shares whose Duration Months is 1: those were already counted. (A switch to another tier or a prepaid package can still be counted twice.)
- Subscription Tier
- Duration Months — Twitch's duration value for this sub: 1 when it was just paid for or is the first automatic month after that; 0 for some viewers who didn't pay themselves, such as gifted subs.
- Cumulative Months — their total months subscribed, all-time.
- Streak Months — their current run of consecutive subscribed months (0 if they've hidden this).
- Subscription Message — the message they shared.
Fires when someone's subscription to your channel runs out.
- Subscription Tier — the tier that ended: 1000, 2000, or 3000.
- Is Gift? — true if it had been a gift.
Fires when someone cheers Bits in your channel.
- Bits Used — how many Bits they cheered.
- Cheer Message — the message they cheered with, cheermotes included.
- Is Anonymous? — true if they cheered anonymously (in which case their name/ID will read "Anonymous").
A wider bits event — fires for cheers, and also for Twitch's Bits-powered power-ups.
- Bits Usage Type — how the Bits were spent: "cheer", "power_up", or "custom_power_up".
- Bits Used — how many Bits they cheered or spent on the power-up.
- Bits Message — any message they left (empty if none).
- Automatic Power-Up Type — on Twitch's own power-ups: celebration, gigantify_an_emote or message_effect ("null" text otherwise).
- Custom Power-Up Name — on your custom power-ups: the title you gave it ("null" text otherwise).
Fires when a viewer redeems one of the custom channel point rewards you created yourself.
- Reward Twitch ID, Reward Name, Reward Description, Reward Cost.
- Redemption Twitch ID — this redemption, for completing or refunding it with Update Redemption Status.
- Redemption Status — unfulfilled while it waits in the reward request queue, fulfilled when Twitch completed it right away.
- Viewer Comment — anything they typed in when redeeming, if you asked them to.
- Redeemed At — when it happened.
Fires when a viewer redeems one of Twitch's own built-in rewards (not ones you made) — things like highlighting a message or unlocking a random sub emote.
- Reward Name — which built-in reward it was.
- Reward Cost, Unlocked Emote (if relevant), Viewer Comment, Redeemed At.
Fires when a viewer redeems one of your custom Bits-powered power-ups.
- Power-Up Twitch ID, Power-Up Name, Power-Up Description, Power-Up Cost (in Bits).
- Redemption Twitch ID — this redemption, for completing or refunding it with Update Redemption Status.
- Viewer Comment — anything they typed in when redeeming.
- Redemption Status, Redeemed At.
Fires when you create, change or delete one of your own custom channel point rewards. Not tied to a viewer, so only your channel info plus the details below are included.
- Reward Twitch ID, Reward Name, Reward Description, Reward Cost.
- Is Enabled?, Is Paused?, Is In Stock?, Requires Viewer Input?, Background Color.
- The reward's limits: Is Capped Per Stream? and Limit Per Stream, Is Capped Per Stream Per Viewer? and Limit Per Stream Per Viewer, Has Global Cooldown? and Global Cooldown (seconds). A limit reads 0 when it isn't switched on.
Fires when another streamer raids your channel.
- Raider Twitch ID / Name — the streamer who raided you (in place of the usual "who did it" viewer pair).
- Viewer Count — how many viewers came along with them.
Fires when another streamer gives your channel a shoutout.
- The "who did it" pair here is the other streamer's Twitch ID and name.
- Viewer Count — how many viewers were on their channel when they shouted you out.
Fires when you, or one of your moderators, give another channel a shoutout.
- The "who did it" pair here is the channel that received the shoutout.
- Given By Twitch ID / Name — who gave it: you or a moderator.
- Viewer Count — your viewer count at that moment.
- Shoutout Started At — when it was given.
These aren't tied to one specific viewer, so the usual "who did it" pair isn't meaningful here — only your channel's own info is included, plus the details below.
Fires when a channel goal (like a follower or sub goal) starts, updates, or finishes.
- Goal Twitch ID — this goal.
- Goal Type — follow, subscription, subscription_count, new_subscription, new_subscription_count, new_bit, or new_cheerer.
- Goal Description — the text viewers see on Twitch.
- Current Amount, Target Amount.
- Goal Started At; on the End event also Was Goal Achieved? and Goal Ended At.
Fires when a Hype Train starts, updates, or ends on your channel.
- Hype Train Twitch ID — this Hype Train.
- Level, Type (regular, golden_kappa, or treasure).
- Is Shared? — true if it's shared with other channels.
- Top Bits Contributor Twitch ID / Name / Amount — who gave the most Bits in this Hype Train, and how many.
- Top Subscription Contributor Twitch ID / Name / Amount — who gave the most subscriptions, and how many.
Nobody contributed that way? The ID and Name read "null" and the Amount reads 0.
- Started At, plus Expires At (Begin and Progress) or Ended At and Cooldown Ends At (End).
- On the Begin event only: Max Level and Max Contributions, the best your channel has ever had.
Fires when a moderator bans or times out a viewer.
- Moderator Twitch ID / Name — who took the action, in place of the usual "who did it" pair.
- Viewer Twitch ID / Name — who it happened to.
- Ban Reason — the text the moderator gave, if any.
- Is Permanent? — true for a ban, false for a timeout.
- Banned At, Ban Ends At — when it happened, and when a timeout runs out (a ban never ends: it reads 2000-01-01).
Fires when a moderator unbans a viewer or removes their timeout. Same shape as above, minus the ban details (Ban Reason, Is Permanent?, Banned At, Ban Ends At).
Fires when someone becomes one of your moderators, or stops being one. The "who did it" pair is the person it happened to. No extra details.
Fires when someone becomes a VIP on your channel, or stops being one. The "who did it" pair is the person it happened to. No extra details.
Fires when an ad break starts on your stream — whether Twitch triggered it automatically or you kicked one off yourself with a Start Ad/Commercial Command (see Commands). Not tied to a specific viewer, so only your channel info plus the details below are included.
- Ad Break Started At — when the break began.
- Ad Duration (seconds) — how long it's scheduled to run.
- Is Automatic? — true if Twitch triggered it on its own, false if you (or a Flow) started it manually.
Fires when you go live.
- Stream Twitch ID — this stream.
- Stream Type — live, playlist, watch_party, premiere, or rerun.
- Stream Started At.
Fires when your stream ends. No extra details beyond your channel info.
Fires when your stream title, category or language changes, whether you change it on Twitch or a Flow does. Not tied to a viewer.
- Stream Title, Category Twitch ID, Category Name, Stream Language — the new values.
Fires when you change your Twitch bio or email address. Not tied to a viewer.
- Streamer Description — your new bio.
- Email, Is Email Verified? — your email address, and whether Twitch has verified it.
Discord events reach StreamWizard through the StreamWizard bot in your server. Two things need to be true for a Discord event to start a Flow: the bot has to be in your server (Connect platforms → Invite StreamWizard Bot, see Account), and it needs the Discord permission listed for the event's category. The publish check tells you when a permission is missing.
Most Discord events hand you the same few pieces of information, so here they are once:
- Server Discord ID — the server the event happened in.
- Server Owner Discord ID, Server Owner Username, Server Owner Display Name, Server Owner Nickname — who owns that server.
- Member Discord ID, Member Username, Member Display Name, Member Nickname, Member Is Bot? — the person the event is about, on events that are about a person. A few events name that person after what they did instead, with the same five fields: Creator on the thread events and on Scheduled Event Created / Updated / Deleted (whoever created it), Inviter on Invite Created, Banned Member and Unbanned Member on the ban events.
- Username is their unique Discord username, Display Name the name Discord shows for them everywhere (their username if they haven't set one), and Nickname the name they go by in your server (their Display Name if they have no server nickname). If StreamWizard can't work a value out, it reads Unknown user (Display Name and Nickname), unknown (Username) or false (Is Bot?).
Below, only the extra, event-specific information is listed.
| Category |
What it's about |
The bot needs |
| 💬 Messages |
Messages, reactions and poll votes |
View Channel |
| 👥 Members |
People joining, leaving, changing, and bans |
Nothing for join/leave/update, View Audit Log for bans |
| 🏷️ Roles |
Roles being made, changed or removed |
Nothing |
| 📺 Channels |
Channels being made, changed or removed, and pins |
Nothing for create/update/delete, View Channel for pins |
| 🧵 Threads |
Threads being made, changed or removed |
View Channel |
| 📅 Scheduled Events |
Discord's own server events |
View Channel |
| 🛠️ Server |
Server settings and invites |
Nothing for server updates, Manage Channels for invites |
Fires when someone sends a message in one of your server's channels (matching the Trigger type and Trigger text you set on the Flow: Same, Contains or Starts with). Messages from other bots and webhooks start Flows too (check Member Is Bot? if a Flow should ignore them), but StreamWizard's own messages never do, so a Flow that answers in Discord can't set itself off again. Direct messages don't start Flows.
- Message Content — what they wrote.
- Channel Discord ID — the channel it happened in.
- Message Discord ID — this message's ID, for reacting to, pinning, deleting or replying to exactly this message.
- Replied Message Discord ID — when the message is a reply: the message it answers ("null" text otherwise).
- Parameter 1, Parameter 2, Parameter 3 — only filled in when your Flow's trigger uses "starts with" (e.g. "!boop"). Parameter 1 is the first word after the trigger, Parameter 2 the second and Parameter 3 the third; anything after that isn't in any of them (use Message Content for the whole message). The whole trigger word is skipped, so with "!boop" as the trigger, "!boops bob" gives "bob" as Parameter 1. A mention of someone, picked from Discord's list or typed as "@name", arrives as their username, ready for a Get Member By Username lookup. Typed fewer words than that? The unused ones read as the text "null". With "same" or "contains" as the trigger, all three read "null".
Fires when a message is edited.
- Message Discord ID — which message it is about.
- Message Content — what they wrote.
- Channel Discord ID — the channel it happened in.
Fires when a message is deleted.
- Message Discord ID — which message it is about.
- Channel Discord ID — the channel it happened in.
Fires when several messages are deleted at once.
- Deleted Message Count — how many messages were deleted.
- Channel Discord ID — the channel it happened in.
Fires when someone reacts to a message. Reactions added by the StreamWizard bot itself don't start Flows, so an Add Reaction command can never trigger the Flow that ran it.
- Message Discord ID — which message it is about.
- Message Author Discord ID, Message Author Username, Message Author Display Name, Message Author Nickname, Message Author Is Bot? — who wrote the message.
- Emoji Name — the emoji.
- Emoji Discord ID — the emoji's ID, if it is a custom server emoji.
- Is Super Reaction? — whether it was a Super Reaction.
- Channel Discord ID — the channel it happened in.
Fires when someone takes their reaction back. It gives you the same information as Reaction Added.
Fires when every reaction is cleared from a message.
- Message Discord ID — which message it is about.
- Message Author Discord ID, Username, Display Name, Nickname, Is Bot? — who wrote the message.
- Channel Discord ID — the channel it happened in.
Fires when every reaction of one emoji is cleared from a message.
- Message Discord ID — which message it is about.
- Message Author Discord ID, Username, Display Name, Nickname, Is Bot? — who wrote the message.
- Emoji Name — the emoji.
- Emoji Discord ID — the emoji's ID, if it is a custom server emoji.
- Channel Discord ID — the channel it happened in.
Fires when someone votes in a poll.
- Message Discord ID — the poll's message.
- Answer Discord ID — which answer.
- Answer Text — the text of that answer.
- Channel Discord ID — the channel it happened in.
Fires when someone removes their poll vote. It gives you the same information as Poll Vote Added.
Fires when someone joins your server. Just the shared information above.
Fires when someone leaves or is removed. Just the shared information above.
Fires when a member's roles, nickname or profile in your server change. Just the shared information above.
Fires when someone is banned. The bot needs View Audit Log on your server.
- Banned Member Discord ID, Username, Display Name, Nickname, Is Bot? — who was banned.
Fires when a ban is lifted. The bot needs View Audit Log on your server.
- Unbanned Member Discord ID, Username, Display Name, Nickname, Is Bot? — who was unbanned.
Fires when a role is created.
- Role Discord ID — the role.
- Role Name — its name.
- Role Color — its color.
- Is Role Mentionable? — whether anyone can mention it.
- Is Role Shown Separately? — whether members with it are listed separately.
Fires when a role is changed. It gives you the same information as Role Created.
Fires when a role is removed. It gives you the same information as Role Created.
Fires when a channel is created.
- Channel Discord ID — the channel.
- Channel Name — its name.
- Channel Type — its type (text, voice, and so on).
- Parent Category Discord ID — the category it sits in.
Fires when a channel is changed. It gives you the same information as Channel Created.
Fires when a channel is removed. It gives you the same information as Channel Created.
Fires when a message is pinned or unpinned. The bot needs View Channel. It gives you the same information as Channel Created.
Fires when a thread is created.
- Creator Discord ID, Username, Display Name, Nickname, Is Bot? — who started it.
- Thread Discord ID — the thread.
- Thread Name — its name.
- Parent Channel Discord ID — the channel it belongs to.
- Is Thread Archived? — whether it is archived.
- Is Thread Locked? — whether it is locked.
Fires when a thread changes, including when it is archived, unarchived or locked. It gives you the same information as Thread Created.
Fires when a thread is removed. It gives you the same information as Thread Created.
Fires when one of your server's Discord events is created.
- Creator Discord ID, Username, Display Name, Nickname, Is Bot? — who created it.
- Event Discord ID — the event.
- Event Name — its name.
- Event Description — its description.
- Event Type — stage, voice or external.
- Event Status — scheduled, active, completed or canceled.
- Event Starts At — when it starts.
- Event Location — where it takes place.
- Channel Discord ID — the channel it happened in.
Fires when one is changed. It gives you the same information as Scheduled Event Created.
Fires when one is removed. It gives you the same information as Scheduled Event Created.
Fires when someone marks themselves as interested.
- Event Discord ID — the event.
- Event Name — its name.
- Channel Discord ID — the channel it happened in.
Fires when someone removes their interest. It gives you the same information as Interested.
Fires when server settings change.
- Server Name — the new server name.
Fires when someone creates an invite link. The bot needs Manage Channels.
- Inviter Discord ID, Username, Display Name, Nickname, Is Bot? — who created it.
- Invite Code — the invite's code.
- Invite URL — the link.
- Invite Max Age (seconds) — how long it lasts.
- Invite Max Uses — how many times it can be used.
- Is Membership Temporary? — whether it grants temporary membership.
- Channel Discord ID — the channel it happened in.
Fires when an invite link is removed. The bot needs Manage Channels.
- Invite Code — the invite's code.
- Invite URL — the link.
- Channel Discord ID — the channel it happened in.
OBS events come from OBS Studio on your own computer, through the StreamWizard browser source you added when you connected OBS Manager (see Account). They only arrive while OBS is running with that source in it.
OBS events are about your OBS, not about a person, so there is no "who did it" information. Every OBS event gives you Connection OBS ID: which of your OBS connections it happened on. Scenes and sources come with both a name and an ID:
- The name is what you see in OBS. Compare it with text you typed, for example to check "is this my Be Right Back scene?".
- The ID is OBS's own label for the scene or source. It never changes, not even when you rename it. Hand it to a Command that needs one, such as Delete Scene or Rename Source (see Commands).
A source in a scene is one source placed in one scene. Your webcam source can sit in five scenes: that's five sources in scenes, each with its own Source in Scene OBS ID, and it can be shown in one scene while hidden in another.
| Category |
What it's about |
| 🎞️ Scenes |
Switching, creating, renaming and deleting scenes |
| 🧩 Sources |
Showing, hiding, creating, renaming, placing and locking sources, plus mute, volume and other audio changes |
| 📡 Stream |
OBS going live or stopping |
| ⏺️ Recording |
Starting, stopping, pausing and resuming a recording |
Fires when OBS switches to a different scene: the live one, which your viewers see.
- New Scene OBS ID, New Scene Name — the scene OBS switched to.
Fires when the preview scene changes. This only happens with Studio Mode on.
- New Preview Scene OBS ID, New Preview Scene Name — the scene now in preview.
Fires when a new scene is created.
- Scene OBS ID, Scene Name — the new scene.
Fires when a scene is deleted.
- Scene OBS ID, Scene Name — the deleted scene.
Fires when a scene is renamed.
- Scene OBS ID — the same as before the rename.
- Old Scene Name, New Scene Name — its name before and after.
Fires when a source is made visible (the eye icon in OBS) or hidden in a scene.
- Source in Scene OBS ID — this source in this scene.
- Source OBS ID, Source Name — the source.
- Scene OBS ID, Scene Name — the scene it was shown or hidden in.
Fires when a new source is created.
- Source OBS ID, Source Name — the new source.
- Source Type — what kind of source it is, as OBS calls it, e.g. Browser, Image, Media, Audio Input Capture.
Fires when a source is deleted. Deleting a source removes it from every scene.
- Source OBS ID, Source Name — the deleted source.
Fires when a source is renamed.
- Source OBS ID — the same as before the rename.
- Old Source Name, New Source Name — its name before and after.
Fires when a source is placed into a scene, or a source is removed from a scene. Removing a source from a scene doesn't delete the source itself.
- Source in Scene OBS ID, Source OBS ID, Source Name, Scene OBS ID, Scene Name — the same as on Source Shown.
Fires when a source in a scene is locked or unlocked in OBS. A locked source can't be moved or resized by accident. It gives you the same information as Source Shown.
Fires when an audio source is muted or unmuted.
- Source OBS ID, Source Name — the source.
Fires when an audio source's volume changes. Dragging a volume slider in OBS fires it many times in a row.
- Source OBS ID, Source Name — the source.
- Volume (dB) — the new volume in whole decibels, from -60 (almost silent) to 0 (full volume).
Fires when an audio source's sync offset (its audio delay) changes.
- Source OBS ID, Source Name — the source.
- Audio Sync Offset (ms) — the new offset in milliseconds.
Fires when you change whether you hear a source in your own headphones.
- Source OBS ID, Source Name — the source.
- Audio Monitor Type — Off, Monitor Only, or Monitor and Output.
Fires when OBS goes live or stops streaming. No extra details. They come from OBS itself, so they work whichever service you stream to.
Fires when OBS starts recording. No extra details.
Fires when OBS stops recording and the file is saved.
- Recording File — where the recording was saved, on the computer running OBS.
Fires when the recording is paused or continues. No extra details.
Fires when the recording continues in a new file, for example after a Split Recording File Command.
- New Recording File — where the new file is saved.
Not tied to Twitch, Discord or OBS — when creating a Flow, pick StreamWizardUI as the Platform for this one. It's a timer you control yourself, rather than something reacting to a connected platform.
Doesn't wait for anything to happen on a connected platform — instead it fires automatically on a repeating timer you set (e.g. every 30 minutes), so you can build automations that run on a schedule instead of reacting to an event.
- Flow StreamWizard ID — which flow it belongs to.
- Interval (minutes) — how often it fires.
- Your Account StreamWizard ID — your StreamWizard account.