Approve or refund a channel point redemption
Get this flow
Install it straight into the desktop app, or download the package to import or share it. It lands as a draft you review before it runs.Need the desktop app? Get Corvus Connection.Graph structure (text alternative)
Trigger: onChannelPointRedeem
Nodes:
- On Channel Point Redeem
(entry.onChannelPointRedeem) - If
(flow.if) - Text
(data.literal.string) - Send Chat Message
(action.sendChat) - Twitch: Approve Redemption
(twitch.reward.fulfill) - Text
(data.literal.string) - Send Chat Message
(action.sendChat)
Connections:
- On Channel Point Redeem.isManaged → If.condition
- On Channel Point Redeem.out → If.in
- If.then → Send Chat Message.in
- Text.value → Send Chat Message.text
- Send Chat Message.out → Twitch: Approve Redemption.in
- On Channel Point Redeem.rewardId → Twitch: Approve Redemption.rewardId
- On Channel Point Redeem.redemptionId → Twitch: Approve Redemption.redemptionId
- If.else → Send Chat Message.in
- Text.value → Send Chat Message.text
Walkthrough
Approve a channel-point redemption from the same flow that handled it, and say something in chat when Corvus is not allowed to.
How it works
- On Channel Point Redeem fires when a viewer redeems a reward. Along with the redeemer and the reward title, it binds the three values this flow needs:
rewardId,redemptionId, andisManaged. - If branches on
isManaged. That is true only for rewards Corvus created, which are the only ones Twitch will accept an approval or a refund for. - On the true branch, Send Chat Message does whatever the reward promised, then Twitch: Approve Redemption closes the redemption out using the two ids from step 1.
- On the false branch, Send Chat Message says why nothing was settled, so a redeem that went nowhere is visible instead of silent.
Why the ownership check
Twitch lets an app change a redemption's status only on rewards that same app created. A reward you made in the Twitch dashboard cannot be approved or refunded by Corvus, and Twitch offers no way to hand ownership over. isManaged is that rule as a boolean, so you can branch on it up front instead of finding out from a call that was never going to work.
Skipping the branch is safe, just less useful. Approve Redemption checks the same thing itself: on a reward it does not own it returns ok as false with the code twitch.reward.unmanaged, and never calls Twitch at all. Wiring the ok and error outputs into your own handling is worth doing either way.
To make a dashboard reward settleable, open Channel-point rewards in the desktop app and recreate it as a managed reward. The original stays put, so disable it in the Twitch dashboard once the new one is live.
Refunding instead
Swap Twitch: Approve Redemption for Twitch: Refund Redemption when the flow could not deliver what the reward promised. Twitch gives the viewer their points back, so nobody pays for something that never happened.
One thing to watch: a reward set to skip the request queue is approved by Twitch the moment it is redeemed, and can never be refunded afterward. Leave that setting off on any reward a flow might need to refund.
Start from On Channel Point Redeem, Twitch: Approve Redemption, and Twitch: Refund Redemption.
