Jitsi Google Calendar, Outlook and Dropbox integrations

A self-hosted Jitsi Meet connects to Google Calendar, Outlook and Dropbox through OAuth apps you register yourself. This page covers the setup order, the redirect URIs, and who in your organization should own each app.

On this page

How the Jitsi Google Calendar integration connects calendars, YouTube and Dropbox

If you run Jitsi Meet on your own infrastructure and want people to schedule meetings from their calendars and keep recordings in familiar places, the connections are built from OAuth apps that you register yourself. The Jitsi handbook's web integrations guide covers three paths: Google Calendar and YouTube, Microsoft Outlook calendars, and Dropbox recording uploads. Each path depends on an app registered with the provider (Google Cloud, Microsoft or Dropbox) and configured against your deployment's own domain, not against meet.jit.si or a shared vendor account. The documented OAuth setup is the supported method. Third-party connectors that promise the same result sit outside the handbook, and you should treat them as a separate security and support decision.

The Google path creates a Google Cloud OAuth client and enables the Google Calendar API and the YouTube Data API v3. Calendar access lets Jitsi read event details so that meeting links can be attached to invitations, and the YouTube API supports the live-streaming side of the integration. The Microsoft path registers an app with a redirect URL on your domain, at the static msredirect page, and requests Microsoft Graph delegated permissions such as Calendars.Read and Calendars.ReadWrite. The Dropbox path creates a Dropbox API app with app folder access, then places its app key and the static oauth redirect URI into the deployment's config.js. Confirm the current permission names and console screens with each provider at the time you set up, since their consoles change over time.

Ownership is the decision that most often gets missed. Each app has a registering account, a set of credentials and a consent screen that users see, so someone in your organization must own each one: typically an identity or collaboration administrator for Google Workspace and Microsoft Entra, and a storage administrator for Dropbox. Decide who holds the client secrets, where they are stored, who can rotate them, and who receives the consent prompts questions. Also decide whether the app is internal to your tenant or published to other organizations, because that choice changes review requirements at the provider. Record these owners before work starts so that a departing employee does not take the only login with them.

Redirect URIs and domains are the most common source of failures. Each redirect must match your deployment's domain exactly, including the scheme and path, and the Jitsi handbook warns that self-signed certificates cause problems for clients, so the domain must have a valid certificate that the providers and browsers trust. A change of domain, reverse proxy path or certificate later will break the connections, so plan those changes together with the OAuth configuration. Test each path with a non-administrator account, because administrator access can hide consent and permission problems that ordinary users will hit.

Plan for the recurring work as well as the first setup. Provider consoles change, permissions are reviewed, client secrets expire or are rotated, and Jitsi upgrades can touch config.js. Ask any partner quoting this work to state which of these tasks are one-time setup and which are ongoing, and which of them, if any, the written scope would make DeployOpen responsible for. DeployOpen does not operate these apps on your behalf unless the agreed scope says so, so you should confirm in writing who will monitor, rotate and respond to them.

What you need before registering any OAuth app

Each OAuth app in this integration needs a working, trusted Jitsi Meet deployment, a developer account at each provider, and a clear owner for every app. Settling these four items first avoids redirect URL failures and rework once the apps are registered.

Working Jitsi Meet on a valid HTTPS domain

Confirm that your self-hosted Jitsi Meet loads and joins a test conference on a real domain with a certificate issued by a trusted authority. The Jitsi handbook says HTTPS with a proper domain certificate is necessary for working audio and video and warns that self-signed certificates cause problems, especially on mobile clients. The OAuth redirect URLs depend on this domain, so it must be stable before you register any app.

Confirmed Jitsi release version

Check the Jitsi Meet release your deployment runs and compare it with the current stable tag on the jitsi-meet GitHub repository. Integration steps in the web integrations guide can change between releases, so record the version you deployed and the one you verified against. Upgrade the deployment first if it is far behind, so the integration is built on the same code you will run in production.

Google Cloud, Microsoft Entra and Dropbox developer access

Confirm that a named person can sign in to a Google Cloud project, a Microsoft Entra tenant with app registration rights, and a Dropbox developer account. The Google app enables the Google Calendar API and YouTube Data API v3, the Microsoft app requests Microsoft Graph delegated permissions, and the Dropbox app uses app folder access. Check that these accounts are company-controlled, not personal, so the apps survive staff changes.

Tenant and workspace ownership decision

Decide which Google organization or project, which Microsoft Entra tenant and which Dropbox team owns each app. The answer determines whose users can connect calendars and whose recordings land in which account, and it is hard to move later. Record the owner, the admin contact and the approval path for each app so that consent, secret rotation and app deletion have a named decision maker.

Admin rights to edit config.js

Confirm that the people doing the work can edit the deployment's config.js and restart or redeploy the web front end. The Dropbox app key and the redirect URIs for the Microsoft and Dropbox apps are set in this file, so a missing permission blocks the final step. Use your normal change control for this file, and keep a copy of the current version so you can roll back a bad edit.

Redirect URL and secret storage plan

Write down the exact redirect URLs your domain will use, including the Microsoft msredirect.html path and the Dropbox oauth.html path, and check that each matches the domain in your registrations character for character. Also decide where client secrets and app keys will be stored and who can read them, so they stay out of shared documents and version control.

Who in your organization should own each integration app

Each OAuth app behind the Jitsi Google Calendar, Outlook and Dropbox integrations needs a named technical owner and a named business owner before anyone creates it. The Jitsi web integrations guide has you create a Google Cloud OAuth client with the Google Calendar API and YouTube Data API v3 enabled, register a Microsoft app with Microsoft Graph delegated permissions such as Calendars.Read and Calendars.ReadWrite, and create a Dropbox API app with app folder access. Each of those three registrations carries an owner account, a client secret or app key, a consent configuration and renewal duties. If nobody is named for those four things, the integration tends to break quietly when a secret expires or a consent screen changes, and nobody knows who to call.

The technical owner is the engineer who maintains the deployment's config.js settings, the redirect URIs such as /static/msredirect.html and /static/oauth.html, and the values stored for the app. The business owner is the person who decides which users and calendars the integration serves and who signs off on its scope, such as whether calendar write access is needed or read access is enough. Write both names into the integration record. A reasonable starting point is to ask the Jitsi platform team to propose the technical owner and the business owner who approves each permission change.

Register each app under a dedicated service or shared administrative account, not under a personal mailbox or a personal Dropbox login. When an employee leaves or changes roles, a personal registration can lock the organization out of its own app, and transferring ownership later can require the original account holder's cooperation. Confirm with your identity team which account is used, whether it is protected by multi-factor authentication, and who holds recovery methods. Keep the account's group memberships and access reviews in the same process you use for other administrative accounts.

Record where each credential lives. For every app, note the registering account, the location of the client secret or app key, the secret's expiry date where the provider shows one, the redirect URIs configured, and the people who can read or rotate the value. Store the secret in your approved secrets manager rather than in a shared document or a chat thread, and make sure the deployment reads it from there. Rotation is a planned task: assign it to the technical owner with a reminder set well before expiry, and test the integration after each change.

Google and Microsoft both apply consent and verification rules that can require an administrator. Depending on the scopes requested and your tenant settings, a Google Workspace administrator or a Microsoft Entra administrator may need to grant consent for the organization or approve the app before users can connect their calendars. Ask your identity team early which consent path applies to the scopes listed in the guide, whether an app review is needed, and whether the tenant restricts user consent. Include the identity team in the ownership discussion so that administrator approval and renewal do not become a blocker on launch day.

How to configure the Google, Microsoft and Dropbox apps in order

This sequence registers the three OAuth apps a self-hosted Jitsi Meet needs for Google Calendar and YouTube, Outlook calendars and Dropbox recording uploads, then wires their credentials into the deployment. Each app is created in the order below so that the domain, redirect addresses and config.js values match from the start. The result is a deployment where a signed-in user can reach their calendars and recordings from a room.

  1. Assign owners and fix the domain

    Before anyone opens a vendor console, name an owner for each of the three apps. Choose a person or group who can renew secrets and answer questions from the vendor's support team. Agree the exact public domain the Jitsi Meet deployment will use, because every redirect URI depends on it. Confirm the HTTPS certificate for that domain is valid, since the Jitsi handbook warns that self-signed certificates cause problems for audio and video. Vendor console menu names and layouts change over time, so confirm current labels with Google, Microsoft and Dropbox as you work. Done when the owners, the domain and the certificate status are recorded in your change ticket.

  2. Create the Google Cloud OAuth client

    The Google owner selects or creates a Google Cloud project, configures the OAuth consent screen and creates an OAuth client for a web application. Add the authorized redirect URI that the Jitsi web integrations guide specifies for Google, built from your domain so it matches the deployment address exactly. In the same project, enable the Google Calendar API and the YouTube Data API v3. Store the client ID and client secret in your secrets manager and keep them out of shared documents. Check: both APIs show as enabled in the project, and the redirect URI in the client matches your domain character for character, including the scheme.

  3. Register the Microsoft app redirect

    The Microsoft owner registers a new application in the Microsoft Entra admin center, which is where app registrations for the Microsoft identity platform are managed. Select the web redirect option the guide describes and set the redirect URL to your domain followed by the static/msredirect.html path. Use your own domain in place of the example in the guide. Record the application (client) ID and create a client secret, then store the secret in your secrets manager along with its expiry date. Check: the redirect URL shown on the registration matches your domain and path exactly, with no trailing differences.

  4. Grant Microsoft Graph delegated permissions

    In the app registration's API permissions, add Microsoft Graph permissions of the delegated type, including Calendars.Read and Calendars.ReadWrite as the guide names them. Delegated permissions act on behalf of a signed-in user, so each person sees only the calendars their own account can access. If your Microsoft 365 tenant requires administrator consent for these permissions, ask your Microsoft 365 administrator to grant it, and confirm the tenant's consent policy first. Check: each permission appears in the list as delegated with a granted status, and the consent state is recorded alongside the app owner.

  5. Create the Dropbox API app

    The Dropbox owner creates a new app in the Dropbox App Console using the Dropbox API app type. Choose app folder access, which limits what the app can write to a dedicated folder in the account instead of the account's full contents. Enable the file permissions that the Jitsi web integrations guide requires for uploading recordings, and confirm the current permission names in the console. Record the app key and keep the app secret in your secrets manager. Check: the app's permissions page shows the required file permissions as enabled, and the app key is visible on the settings page for the next step.

  6. Set app key and redirect in config.js

    The person who manages the Jitsi deployment copies the Dropbox app key into config.js and sets the redirect URI to your domain followed by the static/oauth.html path. Confirm with the Jitsi handbook which configuration file your install type uses, whether a Debian package or Docker, so the change lives in the location your updates will keep. Check whether your install needs a service restart before the change takes effect. Check: after the change is live, view the loaded configuration in the browser's developer tools and confirm the app key and redirect URI match the values shown in the Dropbox console exactly.

  7. Test each sign-in from a room

    Join a test room on the deployment and start each integration in turn: connect Google Calendar, then Outlook, then Dropbox. Use a test account for each service so no one's live calendar or folder is affected. Check that each sign-in completes from inside the room, that the test account's calendar events appear for the Google and Outlook connections, and that a test recording uploads into the Dropbox app folder. Dropbox recording depends on your recording setup, so confirm that recording works on the deployment before you test the upload. If a sign-in fails, compare the redirect URI in the vendor console with the value in config.js before changing anything else.

Which identifiers and permissions each app gives Jitsi

This table maps each Jitsi integration to the OAuth app type, the redirect path on your Jitsi domain, the permissions requested, the deployment setting that stores the identifier and the data that flows back. Read each row as a checklist for the app your organization must own. Confirm the lowest permission level your meeting features need before you approve any app, because read-only and read-write scopes carry different risk.

IntegrationApp type and redirect pathPermissions requestedWhere the identifier is setData that flows back
Google Calendar and YouTubeGoogle Cloud OAuth client; redirect path set in your Google Cloud project for your Jitsi domainGoogle Calendar API and YouTube Data API v3 enabled for the client; confirm the exact scopes your features needOAuth client identifier in the deployment's Jitsi web configurationCalendar entries and YouTube data used by the meeting features you enable; confirm the data each feature reads
Microsoft Outlook calendarsMicrosoft app registration; redirect URL https://yourdomain.com/static/msredirect.htmlMicrosoft Graph delegated permissions such as Calendars.Read and Calendars.ReadWrite; confirm whether read-only is enoughApplication (client) identifier in the deployment's Jitsi web configurationCalendar data for signed-in users; write scope would allow the integration to change calendar entries
Dropbox recording uploadsDropbox API app with app folder access; redirect URI /static/oauth.html on your Jitsi domainApp folder access only, which limits the app to its own folder rather than the whole DropboxApp key set in config.js on the deploymentRecording files uploaded to the app folder of the connected Dropbox account
Who should own the appAssign an owner in IT or identity administration who holds the cloud or developer accountOwner reviews scopes at each Jitsi upgrade and when features changeRecord the app owner, tenant or account and client identifier in your configuration registerConfirm with each vendor how client secrets and consent are managed for your account type

Why each redirect URI must match your HTTPS domain exactly

The redirect URI is the address your identity provider sends the browser back to after a user approves access. The provider completes that handoff only when the address matches one registered on the app, character for character. For this integration, the Microsoft app redirects to https://yourdomain.com/static/msredirect.html, and the Dropbox app uses the /static/oauth.html path, which you set in the deployment's config.js. Both paths live on your Jitsi domain, so that domain is part of your identity configuration as well as your meeting service. Before go-live, confirm the exact redirect entries your Google Cloud OAuth client needs against the Jitsi handbook's web integrations guide, and record them beside the Microsoft and Dropbox values.

Any difference between the registered value and the URL the browser actually uses breaks sign-in. A changed hostname, a switch from https to http, a non-default port, or a path that drifts from msredirect.html or oauth.html all produce a mismatch. The failure usually appears at the provider as an error page or a stalled consent step, so the team may check Jitsi first while the cause sits in the app registration. A common case is a staging host registered under production settings. Illustrative example: staging is added to the production Microsoft app, so test sign-ins are recorded against production, and when staging is retired the production app still lists a host nobody maintains. Confirm with each provider how it handles callbacks to unregistered hosts before you rely on that behavior.

Keep one registered redirect per environment. Production, staging and any test deployment each need their own domain, their own provider app or at least their own redirect entry, and their own config.js values. Do not keep retired hostnames in the list as a precaution, because every extra entry is an address that can receive a sign-in response. Name one owner for each provider console, usually the person who created the Microsoft app, the Google Cloud project or the Dropbox app, and make that owner responsible for adding, changing and removing entries. Review the lists on a fixed schedule and again whenever an environment is decommissioned.

Document every change to the domain or certificate, including the date, the reason, the new URI and each provider app it touched. A certificate renewal that keeps the same hostname usually leaves the redirect alone, but a new hostname, a new domain or a move to a different proxy can change what the browser sends back. A certificate change can also disable sign-in silently: the meeting itself still loads, while the consent step fails for calendar and Dropbox integrations. Test Google Calendar sign-in, Outlook sign-in and a Dropbox recording upload after each change, and keep those results in the same record. Ask each provider how long a removed entry stays active, and plan the cutover window around that answer.

Securing OAuth clients, permissions and recording storage

The Google Calendar, Outlook, YouTube and Dropbox integrations each add an OAuth client, a set of granted permissions and a credential that sits in your deployment. Each one widens what your Jitsi Meet installation can read, write or store, so the scopes, secrets and storage locations need an owner and a review schedule from the start.

Least-privilege calendar scopes

Booking only needs to read calendars to show availability and place room links, so request read-only scopes such as Calendars.Read for Microsoft Graph and the read-only calendar scope for Google. Grant read-write permissions, such as Calendars.ReadWrite, only when a feature you have enabled actually writes events. Before go-live, list each scope the app requests and record the feature that needs it.

Handling app keys and client secrets

The Google OAuth client, the Microsoft app registration and the Dropbox app key all live in configuration that Jitsi reads at runtime. Store client secrets in a secrets manager or restricted environment file rather than in the repository, and confirm that deployment logs and backups do not capture them. Ask your integration owner which systems can read these values.

Restricting who can edit config.js

The web integrations guide places the Dropbox app key and the OAuth redirect path in the deployment's config.js, so anyone who can edit that file can change where the application sends users and which app identity it presents. Limit write access to named administrators, keep the file under version control with reviewed changes, and check file permissions on the host after each upgrade.

Rotating credentials when owners leave

Each OAuth app has an owner account in Google Cloud, Microsoft Entra or Dropbox, and that account controls its secrets and consent. When someone who created or administered an app leaves, rotate the client secret or app key, transfer ownership of the app to a current role account, and confirm that no personal account is the only administrator. Keep a short register that maps each app to its owner.

Reviewing consent grants

Users and administrators grant consent to the integration, and those grants persist until they are revoked. Review which accounts have consented, remove grants for users who no longer need calendar linkage, and check the permission list in each identity console against the scopes you documented. Repeat the review after every change to the integration or the redirect URL.

Dropbox app folder as a storage boundary

The Dropbox guide uses app folder access, which confines the application to its own folder instead of the whole account. This limits where recordings can land, but it does not control what happens after upload. Recording files leave the infrastructure you control once they reach Dropbox, so include that transfer, the retention in the Dropbox account and the people who can open the folder in your data handling review.

Encryption in transit and its limits

The Jitsi security page states that all audio and video is encrypted on the network with DTLS-SRTP, and that the videobridge decrypts packets in memory while routing them. That covers the media path between participants and your servers. It does not describe end-to-end encryption for calendar, OAuth or Dropbox traffic, and end-to-end mode applies only to audio, video and screen sharing in supported clients. Describe the protection accurately in your review, and check each integration's own transport settings separately.

Common failures when Google, Outlook or Dropbox sign-in breaks

This table lists six common sign-in failures for the Google, Outlook and Dropbox integrations, with the likely cause, the check to run and the fix for each. Work through the checks in order, since the first one often shows whether the problem sits in the provider console or in your deployment. Most failures trace back to a redirect address, an API or permission setting, a misplaced app key, or a certificate that does not match the domain users visit.

FailureLikely causeCheck to runFix
Redirect URI mismatch after a domain or certificate changeThe redirect address registered with Google, Microsoft or Dropbox still points to the old domain.Compare the redirect URI in each provider console with your current domain and the redirect path the guide specifies.Update the registered redirect URI to the current domain, keeping the msredirect.html or oauth.html path the guide uses.
Google API not enabledThe Google Calendar API or YouTube Data API v3 is not enabled in the Google Cloud project that owns the OAuth client.In the project holding the OAuth client, confirm both APIs show as enabled.Enable the Google Calendar API and YouTube Data API v3 in that project, then retry the Google sign-in.
Microsoft admin consent not grantedSome Microsoft tenants require an administrator to consent to the app before users can sign in.In the Microsoft Entra admin center, check whether the app shows consent as granted for your tenant.Ask a tenant administrator to grant consent to the app's permissions, then retry the Outlook sign-in.
Delegated permissions missingThe Calendars permissions from the guide, such as Calendars.Read and Calendars.ReadWrite, were not added to the registered app.List the app's API permissions and confirm the delegated Microsoft Graph Calendars permissions are present.Add the delegated Microsoft Graph permissions the guide lists, then grant consent again.
Dropbox app key set in the wrong config.jsThe app key was placed in a config file other than the deployment's config.js, or a key from a different Dropbox app was used.Open the deployment's config.js and confirm the app key matches the Dropbox app console and the oauth.html redirect is set.Set the correct app key in the deployment's config.js, deploy the change with your usual process, and retry the Dropbox sign-in.
Self-signed certificate blocks the flowThe Jitsi handbook warns that self-signed certificates cause problems, especially with mobile clients, and identity providers may refuse them.Load the meeting site in a browser and check that the certificate chains to a trusted issuer for your domain.Replace the certificate with one issued by a trusted certificate authority for the domain, then retry the sign-in.

Testing each integration before users rely on it

Every calendar and recording integration should pass a short, written test sequence before anyone is told it works. Calendar sign-in, YouTube-linked options and Dropbox uploads each depend on a separate OAuth app, redirect URI and set of permissions, so a single successful meeting does not prove the integrations are healthy. Plan the test as a checklist you run per integration, and keep the results where a reviewer can find them. Start each integration with a dedicated test account rather than a senior executive's mailbox or a shared operations login. For Google Calendar, sign in through the Jitsi calendar integration and confirm that upcoming calendar entries load in the meeting interface. For Outlook, repeat the same sign-in and check that entries from the Microsoft calendar appear, which confirms the Microsoft app's redirect URL and delegated Calendars permissions are working. Use a test calendar with a few known entries so the expected result is obvious to the person running the check. If your deployment has YouTube-linked options enabled, test them separately from calendar sign-in, because they rely on the YouTube Data API v3 being enabled in the same Google Cloud project. Create a test meeting, select the YouTube option, and confirm the broadcast option is offered and completes. For Dropbox, start a test recording in a room you control and confirm the file lands in the designated test folder under the app folder access you configured. Check that the stored file opens and that the Dropbox app key and redirect URI in config.js match the registered app. Confirm the exact steps with the current Jitsi web integrations guide for your release, because menu labels and settings can change.

Repeat the full sequence after every Jitsi upgrade and after every certificate renewal. A renewed certificate can change the trust chain or the domain that the redirect URLs depend on, and an upgrade can change config.js or the static redirect pages. Treat a failed regression check as a blocker for the change, not a note for later. Keep the redirect URLs registered with Google, Microsoft and Dropbox in your change record, so a reviewer can see that the registered values still match the live domain after the change. Record the same evidence every time so an auditor or security reviewer can follow it without asking questions. For each test, capture who performed it, the Jitsi build tested (use the build identifier from your deployed release, not a version you assume), the integration and test account used, the date, the expected result, the actual result and any defect reference. Store screenshots or exported logs only where they contain no tokens, personal calendar content or recording data. A short table in your change system is usually enough. Separate the tester from the approver where your change process requires it. The person who runs the Dropbox upload test should not be the only person who signs off that the upload folder and app folder access are correct. Ask your DeployOpen team, or your own platform team, to confirm the evidence format before the first production test, so the record matches your control framework. Keep the test account credentials in your secrets store, and confirm with each provider how test accounts are handled under your tenant policies.

What do buyers ask before hiring help with these integrations?

How much does hiring help for these Jitsi integrations cost?

No price is published here. The cost comes from a written, fixed-scope quote based on what you ask us to deliver. The main cost is the implementation work itself, which is a one-time fee for configuring the Google, Microsoft and Dropbox apps, the Jitsi settings and the testing. Your own staff also carry cost in admin time, approvals and testing. Recurring costs come from keeping the apps, credentials and Jitsi configuration current, which you can handle internally or cover with a support retainer. The biggest cost drivers are the number of integrations, who owns each tenant and workspace, how long consent and admin approval takes, whether your domain and certificate are ready, and how deep the testing goes. Ask any provider to itemize these in the quote.

How long does a Google Calendar or Outlook integration take to set up?

Duration depends mostly on approvals and readiness, not on the configuration steps themselves. The technical work is a matter of creating the OAuth clients, enabling the required APIs, registering the Microsoft app with its Graph permissions, and setting the redirect URLs and app keys in the Jitsi configuration. Timing usually slips when a Google Workspace or Microsoft Entra administrator must approve scopes, when a valid domain certificate is not yet in place, or when the Dropbox app needs an account owner to sign off. Before you plan a date, ask your administrators how their consent process runs and how long it typically takes. A fixed-scope agreement should state the timeline and the dependencies on your side.

What does our organization need to provide before the work starts?

The work needs three people from your side, plus a working deployment. A Google Cloud administrator, or a Google Workspace administrator with access to the Cloud project, creates the OAuth client and enables the Google Calendar API and YouTube Data API v3. A Microsoft administrator registers the app in Entra ID, configures the redirect URL and grants admin consent for delegated Microsoft Graph permissions such as Calendars.Read and Calendars.ReadWrite. A Dropbox account owner creates the API app with app folder access. A Jitsi operator edits the deployment's config.js, controls the server and runs the tests. You also need a domain with a proper certificate, because the Jitsi handbook says self-signed certificates cause problems for audio and video.

Can our internal team set up these integrations without outside help?

Yes, a team with the right access can do this alone. The Jitsi web integrations guide documents each step: the Google Cloud OAuth client, the Microsoft app registration with its redirect URL, the Dropbox API app with its redirect URI, and the matching settings in config.js. What an internal team often lacks is time for the cross-team coordination and the testing across calendars, recordings and user accounts. Outside help is most useful when you want a fixed scope, a written test plan, documentation for handover, or a clear record of who owns each app and credential. Decide based on whether your Google, Microsoft, Dropbox and Jitsi owners can commit time together, and whether you need a repeatable procedure for later upgrades.

Who in our organization should own each OAuth app?

Each app should have a named owner who can approve changes, rotate credentials and answer for the app's permissions. The Google OAuth client should sit in a Cloud project controlled by your Google Workspace administrators, not by an individual user's personal account. The Microsoft app registration should belong to your Entra ID tenant, with an administrator who understands the Graph permissions being granted. The Dropbox app should be owned by an account owner who can manage its settings and keys. The Jitsi operator holds the config.js values and the server access. Record who holds each role, how credentials are stored and how the owner is replaced when someone leaves. Ownership gaps are one of the most common reasons these integrations stop working after a change in staff.

What usually breaks with OAuth redirect URLs in Jitsi integrations?

Most failures come from a mismatch between the URL registered with the provider and the URL the deployment actually uses. The Microsoft app needs the redirect URL that points to the msredirect page on your domain, the Dropbox app needs the oauth page as its redirect URI, and both must match the domain in your deployment exactly, including the scheme. A certificate that does not match the domain, or a self-signed certificate, can block the sign-in flow, especially on mobile clients. Other common problems include a missing API enablement in the Google Cloud project, a wrong app key in config.js, and Graph permissions granted to the wrong tenant. Test each integration after every domain or certificate change, and keep a short checklist of the registered URLs for each app.

What should a fixed-scope quote for these integrations list?

A useful quote lists exactly what is included and what is not. It should name each integration in scope (Google Calendar and YouTube, Microsoft Outlook calendars, Dropbox recording uploads) and the tenants, workspaces or accounts involved. It should state the admin roles required and which party performs each step, the prerequisites you must have in place, such as the domain, the certificate and the Jitsi deployment version, and the testing depth, including which user accounts and scenarios are checked. It should list the deliverables, such as configured apps, the config.js changes, runbook notes and a handover session. Finally, it should separate one-time work from any recurring support, and describe how scope changes are priced and approved before work continues.

How DeployOpen scopes, delivers and supports these integrations

DeployOpen plans and builds the Google, Microsoft and Dropbox OAuth apps that a self-hosted Jitsi Meet needs, inside your own infrastructure and under your own accounts. The work starts by naming the owner of each app, then configures, tests and documents every integration so your team can operate it after handover.

How we scope

  • Confirm which calendars, YouTube and Dropbox recording features your users need before any app is registered.
  • Name the internal owner for each Google Cloud project, Microsoft app registration and Dropbox API app.
  • Agree the written scope, deliverables and timeline before work starts, since most engagements are fixed-scope.
  • Ask the quote to separate app setup, config.js changes, testing and documentation as distinct line items.

How we build

  • Create the Google OAuth client and enable the Google Calendar API and YouTube Data API v3 in your project.
  • Register the Microsoft app with your domain's msredirect.html redirect URL and the Graph delegated permissions you approve.
  • Create the Dropbox API app with app folder access and set its app key and oauth.html redirect URI in config.js.
  • Test each sign-in flow over HTTPS with a valid domain certificate, since self-signed certificates cause problems.

How we hand over

  • Document each app, its owner, redirect URIs, granted scopes and where credentials are stored.
  • Walk your administrators through rotating client secrets and reviewing permissions before the account owner changes.
  • Record the config.js settings and the change steps needed when your Jitsi domain or hostnames change.
  • Provide a test script your team can rerun after Jitsi or identity provider upgrades.

How we support

  • Offer ongoing support, upgrades and testing for the integrations as a retainer, if your team wants that cover.
  • Review OAuth app permissions and redirect URIs when Jitsi, your domain or your Google or Microsoft tenant changes.
  • Retest calendar and Dropbox flows after each Jitsi release you adopt, using the documented steps as the baseline.
  • Confirm with each provider the current consent and verification rules that apply to your app before go-live.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.