Skip to main content

Wagtail Zoom Integration

Integrate Zoom in Wagtail Projects

Features

  • Integrate Zoom Events (meetings or webinars) registration to form pages created with Wagtail Form Builder
    • Benefit - Automatically add event registrants to a Zoom event on registering from your website. Zoom will send them emails and reminders so that you don't have to do it.

Installation

Install from pip

pip install wagtail-zoom-integration

Add wagtailzoom to your installed apps. Make sure wagtail.contrib.settings is also added

 INSTALLED_APPS = [
    ...
    "wagtailzoom",
    "wagtail.contrib.settings",
    ...
]

Run migrations

python manage.py migrate wagtailzoom

Usage

Settings

A Zoom settings section will be added to the Settings section on the Wagtail Admin.

Zoom Settings Admin

The steps below explain how to configure the Zoom settings, as shown on the screenshot above

  1. Click on Settings
  2. Select Zoom Settings
  3. Add the Zoom OAUTH Account ID, OAUTH Client ID and OAUTH Client Secret . See next section on how to create and obtain these credentials from Zoom.
  4. Save

Create a Server-to-Server OAuth app

The account administrator or a developer with permissions to create server-to-server OAuth apps can create these apps in an account.

Prerequisites

Steps to create a Server-to-Server OAuth app

  1. Go to the Zoom App Marketplace. Click Develop in the dropdown menu in the top-right corner of the page and select Build Server-to-Server App.

  2. Add a name for your app and click Create.

Create Server-to-Server OAuth App

  1. App credentials: View your account ID, client ID and client secret. You'll use these credentials to authenticate with Zoom.
  2. Information: Add information about your app, such as a short description, company name, and developer contact information (name and email address required for activation).
  3. Feature: Toggle whether you’d like to enable event subscriptions. If enabled, choose the event subscriptions you'd like to use. See Using Zoom Webhooks for details.
  4. Scopes: Scopes define the API methods this app is allowed to call, and thus which information and capabilities are available on Zoom. You should limit the scopes you request to only those needed by your app. See OAuth scopes to learn more.

Search Scopes

Choose Add Scopes to search for and add scopes:

Add Scopes

  1. Activation: Your app should be activated. If you see errors that prevent activation, please address them. You will not be able to generate an access token to make API calls unless your app is activated. If your app is deactivated, existing tokens will no longer work.

Get app credentials

App credentials are the client credentials, including the account ID, client ID, and client secret, which Zoom provides to app developers to access the Zoom platform. You can get these credentials for the detail page of your app in the Zoom App Marketplace.

More information on how to get the app credentials can be found here

Integrating Zoom Meeting/Webinar registration to custom form pages

Use Case

  • You have a single-page form that uses Wagtail Form Builder.
  • You use the form builder to build custom form pages for collecting user information, say registrants to a workshop/event.
  • You use Zoom as the video conferencing solution.
  • You want to add users who register for your event, from your website, to the Zoom Meeting/Webinar, and you want Zoom to manage sending your registrants meeting and follow-up emails

You can follow the following snippet to achieve the above:

# models.py
from django.db import models
from modelcluster.fields import ParentalKey
from wagtail.admin.panels import InlinePanel
from wagtail.contrib.forms.models import AbstractFormField
from wagtail.models import Page

from wagtailzoom.models import AbstractZoomIntegrationForm


class HomePage(Page):
    pass


class FormField(AbstractFormField):
    page = ParentalKey('EventRegistrationPage', on_delete=models.CASCADE, related_name='form_fields')


class EventRegistrationPage(AbstractZoomIntegrationForm):
    parent_pages = ["home.HomePage"]
    template = 'event_registration_page.html'
    landing_page_template = 'form_thank_you_landing.html'

    content_panels = Page.content_panels + AbstractZoomIntegrationForm.integration_panels + [
        InlinePanel('form_fields', label="Form fields"),
    ]

You can find this code snippet implemented in sandbox/home/models.py

Run your migrations, and create the page from the Wagtail Admin Explorer.

The editor form will look similar to below:

Sample Event

  1. Select the Zoom Event you want to integrate. This is a dropdown of the latest meetings and webinars created
  2. Create your form fields, according to the information you want to collect from your registrants. The fields that must be included are:
    • Email - with field type email
    • First Name - with field type single line text
    • Last Name - with field type single line text

Save and Publish your page.

Go back to the Wagtail Admin Explorer, and locate where the page you created is listed. Hover around the page title, and you will see a button named Zoom Integration as below

Zoom Integration Button

Click it, and it will open a page, where you will match the Zoom required form fields (Email, First Name, Last Name), with the fields in your form.

Zoom Integration Form

Make sure you do the matching correctly as this will inform Zoom on how to extract the required user data from your Custom form. If not set, or not correctly set, the integration will not work.

Save the integration form.

If done correctly, new registrants will be added to Zoom on submission of the form page.

You can try adding a user to make sure everything works, before sharing your page with your users.

Metadata

Release files for wagtail-zoom-integration 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wagtail-zoom-integration 0.1.0
File Size Uploaded Provenance Actions
wagtail_zoom_integration-0.1.0.tar.gz 21.0 kB With provenance Details for wagtail_zoom_integration-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for wagtail-zoom-integration 0.1.0
File Interpreter ABI Platform Actions
wagtail_zoom_integration-0.1.0-py3-none-any.whl Python 3 none any Details for wagtail_zoom_integration-0.1.0-py3-none-any.whl

Total release size: 47.3 kB

Release files / wagtail_zoom_integration-0.1.0.tar.gz

Download URL wagtail_zoom_integration-0.1.0.tar.gz
Size 21.0 kB
Tags Source
SHA-256 checksum
How to use checksums
2f4bc5a61927537c78d48953c9a65df2bc7bba58cfb89fba07944891b8140769
BLAKE2b-256 checksum
How to use checksums
036f5a0bc6d3290d6117d2f39d60614b8889f31924ca4339fabe37026f0a29b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 5, 2026.

Transparency log

Release files / wagtail_zoom_integration-0.1.0-py3-none-any.whl

Download URL wagtail_zoom_integration-0.1.0-py3-none-any.whl
Size 26.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
59761d119ed007823f230dc2e9c7db0c1375de481788c8d4bd8ae5c235e36aa0
BLAKE2b-256 checksum
How to use checksums
95850d4e6cb40f10b82ca3f4132a551c809a6eaea604e33cc52b24dbac7783e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 5, 2026.

Transparency log

Security for wagtail-zoom-integration 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for wagtail_zoom_integration-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Feb 5, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page