Handraised App Technical Overview

 

App Summary

  • The app reads the participant list from the Zoom meeting.

  • It monitors hand-raising activity in real time and records each action.

  • If a participant raises and lowers their hand more than the allowed limit, the app will automatically take action — either:

    • Kicking the participant from the meeting, or

    • Moving them to the waiting room, depending on the configured setting.

  • The app continuously checks that the user running it is still a host or co-host, as only those roles have access to control actions.

  • All activity data is stored temporarily in session variables only.

  • No data is stored permanently, and no third-party services or apps are used beyond the Zoom Apps SDK.

 

The Story of the App

This app was born out of a real-world problem raised by Zoom users — particularly those running sensitive or anonymous meetings like AA and support groups — who reported a recurring issue: disruptive participants repeatedly raising and lowering their hands to cause distractions.

Zoom doesn’t currently offer a built-in way to block this behaviour. However, I knew from experience that the hand-raising status could be detected in other apps — so I set off on a mission to build a lightweight solution that would do just that.

The Journey

The first challenge was finding a reliable way to detect when a participant raises their hand. My original attempt was via a Chrome extension, but it turned out that the true hand-raise state was buried deeper in another API — one that wasn’t immediately visible.

Next, I needed to map raised hands to real participants, so I pulled in the in-meeting participant list to match names and actions.

To make the app flexible, I added two configurable parameters:

  • Threshold count (How many times a participant can raise their hand)

  • Time window (The time period over which the actions are counted)

This allows hosts to decide how strict or lenient the app should be when monitoring behaviour.

The Action

When someone exceeds the hand-raising limit, the app takes action:

  • Move the participant to the waiting room, or

  • Remove them from the meeting altogether

The choice is left to the user.

Making It Robust

A key limitation is that only hosts or co-hosts can perform moderation actions. So, the app now continuously checks whether the user running it still holds one of those roles. If not, moderation features are disabled.

There is one known bug in this early version:
👉 If a participant changes their name mid-meeting, the app still tracks them by their original name.
I’ve left this behaviour in place for now, as I’m actively seeking feedback on how it should be handled.

A Bonus Discovery

One pleasant surprise is that this app is so lightweight — and uses such minimal Zoom API permissions — that it can be run in any Zoom meeting, as long as you’re made host or co-host. No extra scopes, no special setup.
(Thanks, Zoom, for the bonus! )