IntegrationsGoogle Meet — VILT

Google Meet for VILT sessions

EmbayLMS can automatically create a Google Meet link when you schedule a VILT (virtual instructor-led) session — the Google equivalent of the Zoom integration. You connect it under Settings → Integrations → Video Conferencing → Connect account → Google Meet.

Because Meet links are created through the Google Calendar API, EmbayLMS connects using a Google Cloud service account with domain-wide delegation (a server-to-server credential — no per-user “Sign in with Google” pop-up). You’ll paste the service-account JSON key and the email of the Workspace user whose calendar will host the meetings.

Requirement: a Google Workspace domain you administer. This does not work with personal @gmail.com accounts.

Step 1 — Create a service account + key

  1. In the Google Cloud Console, create (or pick) a project and enable the Google Calendar API (APIs & Services → Library → Google Calendar API → Enable).
  2. APIs & Services → Credentials → Create credentials → Service account. Give it a name (e.g. embaylms-meet) and create it.
  3. Open the service account → Keys → Add key → Create new key → JSON. A .json file downloads — this is what you’ll paste into EmbayLMS.
  4. On the service account’s Details page, copy its Unique ID (a long number, the client ID) — you’ll need it in Step 2.

Step 2 — Grant domain-wide delegation

  1. In the Google Admin consoleSecurity → Access and data control → API controls → Domain-wide delegation → Add new.
  2. Client ID: paste the service account’s Unique ID from Step 1.
  3. OAuth scopes: https://www.googleapis.com/auth/calendar.events
  4. Authorize.

This lets the service account act on behalf of users in your domain for calendar events only.

Step 3 — Connect in EmbayLMS

  1. Go to Settings → Integrations → Video Conferencing.
  2. Click + Connect account, choose Google Meet.
  3. Fill in:
FieldValue
Display nameA label for this account (e.g. “Company Google Meet”)
Host user emailThe Workspace user whose calendar hosts meetings (e.g. meetings@yourcompany.com). The service account impersonates this user.
Service account JSONPaste the entire contents of the JSON key file from Step 1
  1. Click Connect & Verify. EmbayLMS validates the credentials by reading the host user’s calendar; if anything is misconfigured it tells you and nothing is saved. Credentials are encrypted (AES-256-GCM) before storage and are never shown again.

Using it

When you create a VILT session and select this Google Meet account, EmbayLMS creates a Calendar event with a Meet link on the host user’s calendar and stores the join link on the session. Learners see the join link on the session page and in their registration email — exactly like Zoom. Rescheduling a session updates the event; cancelling it deletes the event.

If meeting creation fails (e.g. credentials revoked), the session still publishes — you can paste a join link manually on the session.

Troubleshooting

SymptomCause / fix
”Could not connect to Google Meet” on connectCheck the JSON is complete and valid, the host user email is a real Workspace user, the Calendar API is enabled, and domain-wide delegation is authorized for the calendar.events scope (Step 2). Delegation can take a few minutes to propagate.
Connects, but VILT sessions have no Meet linkConfirm the session is VILT (not in-person ILT) and that this Google Meet account is selected on the session. Check the host user’s calendar exists.
unauthorized_client / access_deniedThe Client ID in domain-wide delegation doesn’t match the service account, or the scope is wrong. Re-check Step 2 (use the service account’s Unique ID, scope exactly https://www.googleapis.com/auth/calendar.events).
Personal Gmail accountNot supported — domain-wide delegation requires Google Workspace.