Skip to main content
RapidDev - Software Development Agency
bubble-tutorial

How to Integrate Zoom Meetings in Bubble

Zoom integration in Bubble uses the API Connector to call Zoom's REST API for creating and managing meetings. You set up a Zoom Server-to-Server OAuth app, configure the API Connector with authentication, create meetings programmatically, and provide join links to users. Optionally embed the Zoom Web SDK in an HTML element for in-app meeting participation without leaving your Bubble app.

What you'll learn

  • How to set up Zoom API credentials for Bubble
  • How to create Zoom meetings via API Connector
  • How to generate and share meeting join links
  • How to embed the Zoom client for in-app meetings
Book a free consultation
4.9Clutch rating
600+Happy partners
17+Countries served
190+Team members
Beginner5 min read20-25 minAll Bubble plans (Zoom account required)March 2026RapidDev Engineering Team
TL;DR

Zoom integration in Bubble uses the API Connector to call Zoom's REST API for creating and managing meetings. You set up a Zoom Server-to-Server OAuth app, configure the API Connector with authentication, create meetings programmatically, and provide join links to users. Optionally embed the Zoom Web SDK in an HTML element for in-app meeting participation without leaving your Bubble app.

Overview: Zoom Meetings in Bubble

This tutorial shows how to integrate Zoom video meetings into your Bubble app for scheduling consultations, virtual classes, or team meetings.

Prerequisites

  • A Bubble app with user authentication
  • A Zoom account (Pro or higher for API access)
  • API Connector plugin installed
  • Understanding of OAuth authentication basics

Step-by-step guide

1

Create a Zoom Server-to-Server OAuth app

Log into marketplace.zoom.us. Click 'Develop' → 'Build App'. Select 'Server-to-Server OAuth' app type. Fill in the app name and information. Under Scopes, add: meeting:write:admin (to create meetings) and user:read:admin (to get user info). Copy the Account ID, Client ID, and Client Secret. These credentials let your Bubble app create meetings on behalf of your Zoom account.

Expected result: A Zoom OAuth app exists with credentials and meeting creation permissions.

2

Set up OAuth token generation in API Connector

In the API Connector, create an API called 'Zoom'. Add a call named 'Get Token' — POST to https://zoom.us/oauth/token?grant_type=account_credentials&account_id=YOUR_ACCOUNT_ID. Set authentication to HTTP Basic Auth with Client ID and Client Secret. This returns an access_token valid for 1 hour. Store the token in a custom state or database field. Set this call as an Action so you can trigger it from workflows.

Expected result: An API call generates Zoom access tokens for authenticating subsequent API requests.

3

Create meetings via the Zoom API

Add another API Connector call 'Create Meeting' — POST to https://api.zoom.us/v2/users/me/meetings. Add the Authorization header: 'Bearer [access_token]'. The request body includes topic, start_time, duration, and settings. Set this as an Action. The response includes the meeting join_url, start_url (for the host), meeting ID, and password.

Zoom create meeting (JSON)
1{
2 "topic": "Consultation with [Client Name]",
3 "type": 2,
4 "start_time": "2026-04-01T10:00:00Z",
5 "duration": 30,
6 "timezone": "America/New_York",
7 "settings": {
8 "join_before_host": false,
9 "waiting_room": true,
10 "auto_recording": "cloud"
11 }
12}

Expected result: Meetings are created programmatically with join and host URLs returned.

4

Store meeting details and share join links

Create a 'Meeting' Data Type with: topic, zoom_meeting_id, join_url, start_url, password, start_time, duration, host (User), attendees (list of Users), status. After creating a Zoom meeting, store all returned details in this record. Send the join_url to attendees via email or in-app notification. Show upcoming meetings in a Repeating Group on the user's dashboard.

Expected result: Meeting details are stored in Bubble's database and join links are shared with attendees.

5

Optionally embed the Zoom client in-app

For in-app meetings without redirecting to Zoom, embed the Zoom Web SDK in an HTML element. Load the SDK from CDN, initialize with your Zoom SDK credentials, and join the meeting using the meeting number and password. This requires a Zoom Meeting SDK app (separate from Server-to-Server). The embedded client provides video, audio, chat, and screen sharing within your Bubble page.

Expected result: Users can join Zoom meetings directly within the Bubble app without opening a separate Zoom window.

Complete working example

Workflow summary
1ZOOM INTEGRATION WORKFLOW SUMMARY
2=====================================
3
4ZOOM APP: Server-to-Server OAuth
5 Account ID, Client ID, Client Secret
6 Scopes: meeting:write:admin, user:read:admin
7
8API CONNECTOR:
9 Get Token: POST zoom.us/oauth/token
10 Auth: HTTP Basic (Client ID + Secret)
11 Returns: access_token (1-hour expiry)
12
13 Create Meeting: POST api.zoom.us/v2/users/me/meetings
14 Auth: Bearer [access_token]
15 Body: topic, start_time, duration, settings
16 Returns: join_url, start_url, meeting_id, password
17
18DATA TYPE: Meeting
19 topic, zoom_meeting_id, join_url, start_url,
20 password, start_time, duration, host, attendees, status
21
22WORKFLOW:
23 Step 1: Get Token (if expired)
24 Step 2: Create Meeting via API
25 Step 3: Store meeting details in DB
26 Step 4: Email join_url to attendees
27 Step 5: Display on dashboard
28
29OPTIONAL: Zoom Web SDK embed for in-app meetings

Common mistakes when integrating Zoom Meetings in Bubble

Why it's a problem: Using a JWT app type instead of Server-to-Server OAuth

How to avoid: Always use Server-to-Server OAuth for server-side API access from Bubble

Why it's a problem: Not refreshing the access token before it expires

How to avoid: Store the token with its expiry time and regenerate before each API call if expired

Why it's a problem: Exposing the start_url to non-host users

How to avoid: Only share start_url with the meeting host. Share join_url with attendees.

Best practices

  • Use Server-to-Server OAuth for API authentication (not deprecated JWT)
  • Regenerate access tokens before they expire (1-hour lifetime)
  • Store meeting details in your database for user dashboards and history
  • Share join_url with attendees and start_url only with the host
  • Enable waiting room in meeting settings for security
  • Set up email notifications with meeting links for all participants
  • Consider the Zoom Web SDK for seamless in-app meeting experiences

Still stuck?

Copy one of these prompts to get a personalized, step-by-step explanation.

ChatGPT Prompt

I want to integrate Zoom meetings into my Bubble.io consulting app so users can schedule and join video calls. How do I set up the Zoom API, create meetings, and share join links?

Bubble Prompt

Add Zoom meeting integration to my booking app. When a consultation is booked, automatically create a Zoom meeting via API. Store the meeting details and send the join link to both the consultant and client. Show upcoming meetings on the dashboard.

Frequently asked questions

Does this work with free Zoom accounts?

Server-to-Server OAuth requires a paid Zoom account (Pro or higher). Free accounts have limited API access and meeting duration caps.

Can I schedule recurring Zoom meetings?

Yes. Set type to 8 (recurring with fixed time) in the create meeting request and add a recurrence object specifying the pattern.

How do I cancel or update a Zoom meeting from Bubble?

Use the API Connector to call Zoom's PATCH or DELETE endpoints for the meeting ID. Update your database record status accordingly.

Can meeting recordings be accessed from Bubble?

Yes. Use the Zoom recordings API to fetch recording URLs for completed meetings. Store them in your database and display on a recordings page.

Can RapidDev help integrate video conferencing in my Bubble app?

Yes. RapidDev can integrate Zoom, Google Meet, or other video platforms with scheduling, automated meeting creation, and in-app embedding.

RapidDev

Talk to an Expert

Our team has built 600+ apps. Get personalized help with your project.

Book a free consultation

Need help with your project?

Our experts have built 600+ apps and can accelerate your development. Book a free consultation — no strings attached.

Book a free consultation

We put the rapid in RapidDev

Need a dedicated strategic tech and growth partner? Discover what RapidDev can do for your business! Book a call with our team to schedule a free, no-obligation consultation. We'll discuss your project and provide a custom quote at no cost.