Stream Deck Setup

How to control Stormz from your Stream Deck using the Web Requests plugin.

You can control any Stormz workshop from a Stream Deck.

Current commands available

Right now, Stormz supports these Stream Deck commands:

  • Spotlight next card
  • Spotlight previous card
  • Clear spotlight

This lets you move the spotlight during a live workshop without touching the workshop tab.

It works especially well together with the Stormz OBS overlays:

  • You launch a Q&A activity, and start gathering questions from the participants.
  • As you gather questions, you spotlight a first question from your Stream Deck
  • The spotlight is shown live in your overlay
  • As you answer the question, you move to the next or previous question as you facilitate
  • When you are done, you clear the spotlight and the card disappears from the overlay

What you need

  • A Stream Deck
  • The Web Requests plugin
  • Access to a Stormz workshop where you have facilitation controls

Use the plugin action:

  • HTTP Request

Step 1 — Select the active workshop in Stormz

The active workshop is the one that will be controlled by your Stream Deck. You can control only one workshop at a time.

  1. Open your workshop in Stormz.
  2. Open the Stream Deck panel in the facilitator sidebar.
  3. In Active remote-control target, click Use this workshop if needed.
  4. Confirm the panel shows the workshop as Active.

Now Stormz knows which workshop to control when you press a button on your Stream Deck.

Step 2 — Create a Stream Deck token

The token is a secret that will be used to make sure only you can control your workshop from your Stream Deck. Do not share it with anyone.

In the same Stream Deck panel:

  1. Optionally enter a label.
  2. Click Create.
  3. Copy the token immediately.

Important:

  • the raw token is shown only once
  • if you lose it, create or rotate a token again
  • if a token is exposed, revoke or rotate it immediately

Step 3 — Create your Stream Deck buttons

Create 3 buttons using:

  • plugin: Web Requests
  • action: HTTP Request

Use the same common settings for all buttons.

Common request settings

  • Method: POST
  • URL: https://stormz-app.onrender.com/api/control/commands
  • Content-Type: application/json
  • Headers:
Authorization: Bearer sd_xxxxxxxxxxxxxxxxx

Replace the token value with your real token.

Button 1 — Next spotlight

Body

{ "type": "moveSpotlight", "direction": "next" }

Button 2 — Previous spotlight

Body

{ "type": "moveSpotlight", "direction": "previous" }

Button 3 — Clear spotlight

Body

{ "type": "clearSpotlight" }

How it works in practice

When you press a button:

  1. Stream Deck sends a message (the HTTP request) to Stormz.
  2. Stormz checks your are the right person (it authenticates the bearer token).
  3. Stormz finds which workshop is set as the "active workshop for remote control".
  4. Stormz executes the command.

How to change the active workshop

No need to reconfigure your buttons.

Before a new session, you usually only need to:

  • open the new workshop in Stormz
  • click Use this workshop

How to rotate and revoke your token

From the Stream Deck panel in Stormz, you can:

  • Rotate a token to get a new secret
  • Revoke a token to disable it immediately

If you rotate a token:

  • update the token in your Stream Deck button configuration
  • the old token stops working

If you revoke a token:

  • any button using it stops working immediately

Troubleshooting

Button does nothing or returns an error

Check:

  • the workshop is selected as the active remote-control target
  • the token is still active
  • you pasted the full token correctly
  • the request method is POST
  • the content type is application/json
  • the JSON body matches the examples exactly

I changed workshops and the buttons affect the wrong one

Go back to Stormz and update the active workshop in the Stream Deck panel. Your buttons stay the same; the selected workshop changes in Stormz.

I lost the token

Stormz cannot reveal it again. Create a new token or rotate the existing one.