
A Zoom App powered by Inworld AI Runtime that analyzes meeting audio and video streams using RTMS APIs to provide live evaluation and guidance. This template demonstrates real-time meeting content analysis integrated with Inworld's AI capabilities.
Check out the app demo video.

Create your Zoom App following the Zoom RTMS Quickstart Guide. This guide includes instructions on setting up your Zoom app and granting RTMS scope permissions.
Set your Home, OAuth and Webhook URLs using your Ngrok permanent URL.
git clone https://github.com/inworld-ai/zoom-demeanor-evaluator-node
cd zoom-demeanor-evaluator-node
npm install
Create a .env file (copying the .env.example) in the project root:
INWORLD_API_KEY=your_api_key_here
ZM_RTMS_CLIENT=your_zoom_client_id
ZM_RTMS_SECRET=your_zoom_client_secret
Get INWORLD_API_KEY from the Inworld Portal, and the Zoom credentials from your Zoom App Marketplace page.
Optional Logging Variables:
LOG_LEVEL - App logging (ERROR or DEBUG)RTMS_LOG_LEVEL - RTMS SDK logging (disabled, error, warn, info, or debug)For local development, use ngrok to expose your server:
ngrok http --url=your-subdomain.ngrok-free.app 3000
For development (with auto-reload on file changes):
npm run dev
For production:
npm run build
npm start
Start a Zoom meeting and the app should be displayed. RTMS data should start coming through to the app.
zoom-demeanor-evaluator-node/
├── src/
│ ├── inworld/ # Inworld AI integration
│ │ ├── evaluationGraph.js
│ │ ├── guidanceGraph.js
│ │ ├── inworldService.js
│ │ └── visualEvalGraph.js
│ ├── rtms/ # Zoom RTMS integration
│ │ └── websocketHandler.js
│ └── utils/ # Helper utilities
│ ├── applyHeaders.js
│ └── logging.js
├── public/ # Frontend assets
│ ├── css/
│ ├── js/
│ └── index.html
├── index.js # Entry point
├── package.json # Dependencies
└── LICENSE # MIT License
If you don't get RTMS data coming through to the app:
Share realtime meeting content with apps is enabled and Auto-start apps that access shared realtime meeting content shows your app as being auto-startedLOG_LEVEL=DEBUG and RTMS_LOG_LEVEL=debug for detailed error messagesBug Reports: GitHub Issues
General Questions: For general inquiries and support, please email us at support@inworld.ai
We welcome contributions! Please see CONTRIBUTING.md for guidelines on how to contribute to this project.
This project is licensed under the MIT License - see the LICENSE file for details.