Skip to content
BloopbotDocumentation

Run your channel

Respond when a viewer redeems a reward

Point a flow at one of your Twitch rewards, answer it in chat, and decide whether the points are kept.

4 min readUpdated

Before you start

Rewards are made on Twitch, in your channel’s Channel Points → Manage Rewards. Bloopbot does not create them: it watches the ones you already have and does something when one is redeemed. Keep your channel connected on Links so Bloopbot can read the list.

Twitch Channel Points are not the same as Bloopbot loyalty points. Viewers spend Twitch Channel Points on a reward; Bloopbot loyalty points are the separate balance on the Loyalty page.

1. Start a flow that watches a reward

  1. Open Flows and choose + New flow, then Start blank.
  2. In Add a node, search for reward and add On a reward redeemed. This is the trigger: it decides which flows start when someone spends points.
  3. Give the flow a name you will recognise later, such as “Hydrate alert”.

The trigger node is where the reward is chosen. Everything after it happens because of that redemption.

2. Pick the reward

Select the trigger and open its Reward field. Bloopbot lists the rewards your channel has, with what each one costs, so you pick from what actually exists instead of typing. Choose yours and save.

  • The name is what the flow matches on, so a reward renamed on Twitch stops matching. The field keeps showing the old name marked (not on Twitch now) — pick the new one to repair the flow.
  • A saved reward that is no longer on Twitch stays selectable, so opening a flow never silently repoints it at a different reward.
  • Leave the field on Any reward to run for every reward your channel has — useful for a log or a thank-you.
  • If the list is not there the field says why, and you can type the reward’s name exactly as it appears on Twitch. A channel with no rewards yet is told to make one on Twitch; a channel Bloopbot is not allowed to read is not sent anywhere it cannot fix.

3. Say something back

Add a Send a chat message action and connect it to the trigger’s next output. The Insert… menu on that action offers what the redemption carried:

TokenWhat it says
$(user)Who redeemed it
$(reward)The reward’s name
$(cost)What it cost in Channel Points
$(query)The text the viewer typed, for rewards that ask for it

For example:

Thanks for the $(reward), $(user)!

4. Keep or refund the points

Add a Fulfil or refund reward action and connect it after your reply. In Mark the redemption as, choose Fulfilled to leave the points spent, or Cancelled (refund the points) to give them back. Both choices usually belong in the same flow on different branches: keep it when everything went as expected, refund it when it did not — screening the typed-in text is the worked example.

Check it works

  1. Press Save, then Test fire. The dry run uses a realistic example redemption — “Hydrate!” by Thirstygamer — so the branches your conditions check take a real path.
  2. Expand the Run log and confirm which nodes ran and what each decided. Nothing here reaches Twitch: a test fire never fulfils or refunds a real redemption and never spends real points.
  3. Redeem the reward yourself in Twitch to confirm the live path. The flow’s row on Flows shows when it last ran and how it ended.

Troubleshooting

  • Nothing happened when the reward was redeemed: the flow is paused, the reward was renamed on Twitch since you picked it (the field shows it as not on Twitch now), or another flow already handles that reward — check Needs attention on Flows for what stopped.
  • Every reward starts the flow: the Reward field is on Any reward.
  • The points are not refunded, or the redemption sits in your Twitch queue: that is the step 4 limitation — Twitch will not let Bloopbot complete a redemption for a reward you made yourself, so action it in Twitch, or use Skip Reward Queue and take the step out of the flow.
  • The list is missing from the Reward field: the field says which case it is. If it offers you the Links page, reconnecting Twitch there and reloading brings the list back. Typing the exact name works either way.