|

|  How to Integrate Rasa with Zoom

How to Integrate Rasa with Zoom

January 24, 2025

Learn to seamlessly integrate Rasa with Zoom, enhancing your virtual meetings with AI-driven chatbot capabilities in simple, easy-to-follow steps.

How to Connect Rasa to Zoom: a Simple Guide

 

Prerequisites

 

  • Ensure you have Python 3.x installed on your system.
  •  

  • Set up a Rasa environment by installing Rasa Open Source.
  •  

  • Ensure you have a Zoom account, and access to Zoom’s Developer Console to create an app.
  •  

 

Set Up Rasa Chatbot

 

  • Create a new Rasa project with `rasa init` and follow the prompts to set up a basic bot.
  •  

  • Design your conversational flows using Rasa stories and create the necessary `nlu.yml`, `stories.yml`, and `domain.yml` files.
  •  

  • Run `rasa train` to train your bot with the NLU data and stories configured.
  •  

  • Ensure your bot is working locally by executing `rasa shell` and testing interactions.
  •  

 

Create a Zoom App

 

  • Sign in to Zoom's Developer Console and click on 'Develop' > 'Build App'.
  •  

  • Choose the 'OAuth' app type and fill in basic information such as app name and description.
  •  

  • For Redirect URL, input a URL where the integration service is hosted. Use a placeholder if your service is not yet deployed.
  •  

  • Note down the Client ID and Client Secret once the app is created, as these are required for OAuth authentication.
  •  

 

Develop a Middleware Service

 

  • Set up a Flask or FastAPI application to act as middleware between Rasa and Zoom.
  •  

  • Implement OAuth 2.0 flow in your service by using Zoom API’s OAuth endpoints in Python.
  •  

  • Authorize the Rasa service to interact with your Zoom app using the retrieved tokens.
  •  

  • Example code snippet for OAuth setup:

 

from requests_oauthlib import OAuth2Session

zoom_client_id = 'YOUR_CLIENT_ID'
zoom_client_secret = 'YOUR_CLIENT_SECRET'
redirect_uri = 'YOUR_REDIRECT_URL'

oauth = OAuth2Session(zoom_client_id, redirect_uri=redirect_uri)
authorization_url, state = oauth.authorization_url('https://zoom.us/oauth/authorize')

# Redirect the user to the Zoom authorization URL
print('Please visit this link to authorize: ', authorization_url)

# Fetch the access token
token = oauth.fetch_token(
    'https://zoom.us/oauth/token',
    client_secret=zoom_client_secret,
    authorization_response=input('Enter the full callback URL: ')
)

print("Access token received: ", token)

 

Connect Rasa Actions to Zoom

 

  • Create custom actions in Rasa to handle interaction logic and send responses to Zoom.
  •  

  • Define these actions in `actions.py` and iterate over possible conversational commands like scheduling a meeting, retrieving meeting details, etc.
  •  

  • Ensure action server is running with `rasa run actions` during chatbot operation.
  •  

 

Deploy the Middleware Service

 

  • Utilize platforms like Heroku, AWS, or any server configured to support Python apps to deploy your middleware service.
  •  

  • Ensure your deployed service URL is updated in the Zoom App Redirect URL settings for proper OAuth flow.
  •  

  • Use Ngrok to expose your local Rasa and middleware applications for testing purposes.
  •  

 

Test the Integration

 

  • Trigger interactions from Zoom and verify that your middleware correctly relays requests and responses between Zoom and your Rasa bot.
  •  

  • Log detailed responses from both Zoom and Rasa to identify discrepancies or errors.
  •  

  • Smooth out any conversational or logical issues within Rasa to optimize the chatbot experience.
  •  

 

Monitor and Maintain

 

  • Implement logging and monitoring mechanisms in your middleware to track usage and errors.
  •  

  • Regularly update Rasa training data and Zoom interactions to improve user engagement and satisfaction.
  •  

  • Ensure compliance with Zoom's API usage policies and guidelines to avoid service disruptions.
  •  

 

Omi Necklace

The #1 Open Source AI necklace: Experiment with how you capture and manage conversations.

Build and test with your own Omi.

How to Use Rasa with Zoom: Usecases

 

Enhancing Remote Meetings with Rasa and Zoom

 

  • Integrate Rasa's conversational AI with Zoom to provide real-time assistance during video calls. This can improve user experience by offering instant FAQs or technical support without leaving the meeting interface.
  •  

  • Utilize Rasa's natural language processing capabilities to transcribe Zoom meetings in real-time and provide summaries, making it easier for participants to focus on discussions without worrying about note-taking.
  •  

  • Leverage Rasa to automate scheduling Zoom meetings by understanding user requests through text or voice commands, reducing the time spent on administrative tasks.
  •  

 

Implementing Rasa and Zoom Integration

 

  • Develop a bot using Rasa that understands relevant commands or questions you anticipate in your Zoom meetings and train it with necessary data to make it efficient in handling inquiries or tasks.
  •  

  • Employ webhooks or APIs provided by Zoom and Rasa to enable seamless communication between the two platforms. Such integration might involve using Zoom’s API to start or join meetings, and Rasa’s API to process natural language and provide responses.
  •  

  • Ensure that user data processing adheres to privacy regulations. Implement secure data handling practices such as encryption and access controls during the interaction between Rasa and Zoom.
  •  

 

Examples of Code to Connect Rasa with Zoom

 

import requests

def initiate_zoom_meeting():
    headers = {"Authorization": "Bearer YOUR_ZOOM_JWT_TOKEN"}
    payload = {"topic": "New Meeting", "type": 1}
    response = requests.post("https://api.zoom.us/v2/users/me/meetings", headers=headers, json=payload)
    return response.json()

def rasa_response_to_zoom_message(message):
    # Example function to send message to a Rasa server
    rasa_url = "http://localhost:5005/webhooks/rest/webhook"
    payload = {"sender": "zoom_user", "message": message}
    response = requests.post(rasa_url, json=payload)
    return response.json()

 

 

Streamlining Virtual Team Collaboration with Rasa and Zoom

 

  • Integrate Rasa with Zoom for managing breakout room sessions. The AI can guide participants on the process, eliminating the need for manual instructions.
  •  

  • Use Rasa to automate polls and surveys within Zoom meetings, collecting instant feedback in a structured fashion and reducing the need for separate software.
  •  

  • Deploy Rasa to provide automatic translation services during Zoom calls for international teams, breaking down language barriers and fostering cohesive collaboration.
  •  

 

Executing Rasa and Zoom Symbiosis

 

  • Create a specialized Rasa model to recognize typical commands used for breakout room activities and support automation during Zoom meetings.
  •  

  • Leverage Zoom's chatbot SDK alongside Rasa's API to implement real-time polling, allowing seamless collection and processing of participant responses without major interruptions.
  •  

  • Incorporate language processing models within Rasa to support multilingual interactions during meetings, utilizing Zoom's support for third-party integrations to ensure effective translations.
  •  

 

Code Snippets for Rasa and Zoom Integration

 

import requests

def create_poll_via_rasa(poll_question, options):
    rasa_url = "http://localhost:5005/webhooks/rest/webhook"
    payload = {
        "sender": "zoom_poll_creator",
        "message": f"Create a poll with the question: {poll_question} and options: {options}"
    }
    response = requests.post(rasa_url, json=payload)
    return response.json()

def start_zoom_breakout_room():
    headers = {"Authorization": "Bearer YOUR_ZOOM_JWT_TOKEN"}
    payload = {"topic": "Breakout Session", "type": 1}
    response = requests.post("https://api.zoom.us/v2/users/me/meetings", headers=headers, json=payload)
    return response.json()

 

Omi App

Fully Open-Source AI wearable app: build and use reminders, meeting summaries, task suggestions and more. All in one simple app.

Github →

OMI NECKLACE + OMI APP
First & only open-source AI wearable platform

a person looks into the phone with an app for AI Necklace, looking at notes Friend AI Wearable recorded a person looks into the phone with an app for AI Necklace, looking at notes Friend AI Wearable recorded
a person looks into the phone with an app for AI Necklace, looking at notes Friend AI Wearable recorded a person looks into the phone with an app for AI Necklace, looking at notes Friend AI Wearable recorded
online meeting with AI Wearable, showcasing how it works and helps online meeting with AI Wearable, showcasing how it works and helps
online meeting with AI Wearable, showcasing how it works and helps online meeting with AI Wearable, showcasing how it works and helps
App for Friend AI Necklace, showing notes and topics AI Necklace recorded App for Friend AI Necklace, showing notes and topics AI Necklace recorded
App for Friend AI Necklace, showing notes and topics AI Necklace recorded App for Friend AI Necklace, showing notes and topics AI Necklace recorded