Roll out Meeting Companion to your whole team in one Google install
Authorize ELSA once for your Google Workspace domain and every eligible learner on your ELSA for Business plan gets automatic post-meeting feedback for Google Meet — with no per-user OAuth prompt.
Who this guide is for
You should follow these steps if all of the below are true:
You’re a Google Workspace admin
You can authorize apps and manage Domain-Wide Delegation in the Google Admin console for your organization.
You have ELSA for Business
Meeting Companion’s Workspace-level setup is on the B2B plan. Individual accounts use the learner guide instead.
What the Workspace install unlocks
One domain-level authorization (Google Workspace Domain-Wide Delegation) covers every learner on your ELSA for Business plan. No individual OAuth prompt, no per-user setup.
| Capability | Workspace install (this guide) | Per-learner OAuth |
|---|---|---|
| Meeting audio capture (Meet Media API) | Domain-wide | Per-user |
| Bot join for live sessions | Any domain member | Per-user |
| Calendar sync (upcoming meetings) | All learners on the plan | Per-user |
| Directory-based learner mapping | Automatic (read-only directory) | Not available |
| Live in-call coaching | Not available | Available on request |
Enable ELSA on your Google Workspace
The whole flow takes about ten minutes, including the Google Admin console step.
Sign in to the ELSA admin console
Open app.elsaspeak.com/business and log in with your ELSA admin account.
Go to Settings → Integrations → Web Conferencing
In the left sidebar, choose Settings, then the Integrations tab, then the Web Conferencing section.
Click “Connect Google Workspace”
ELSA shows you the connection details for your domain: the ELSA service-account client ID and the exact scope list to authorize. Keep this tab open — you’ll paste these values into Google in the next step.
Authorize ELSA in the Google Admin console
In admin.google.com, go to Security → Access and data control → API controls → Domain-wide delegation, click Add new, and paste the ELSA client ID plus the scope list from step 3. Every scope is read-only:
- Basic profile and email — identify each learner’s account
- Calendar (read-only) — detect upcoming Meet calls
- Meet space info (read-only) — find the right meeting
- Meet audio (read-only) — generate speaking feedback
- Directory (read-only) — map meeting participants to your Workspace users
Verify the connection
Back in ELSA, click Verify. The Web Conferencing row for Google will show Connected · <your domain> and the Learners Synced panel starts filling in. From here you can also enable per-department reporting.
Assign learners
Under People → Groups, decide who is eligible for Meeting Companion. Any learner in an enabled group whose ELSA email matches a Workspace directory entry will start getting reports automatically after their next Google Meet call.
Managing learners & seats
SSO or bulk invite
Provision learners via SAML SSO, SCIM, CSV upload, or email-domain auto-provisioning from the People tab.
Group-level reporting
Create groups (team, department, cohort) and see aggregated speaking-time, pronunciation, and improvement trends.
Learner-level opt-out
Individual learners can pause Meeting Companion any time. Admins see a coverage indicator, never the raw audio.
Weekly digests
Automatic PDF digests to your inbox plus a CSV export endpoint on the API.
For developers · API
Every action in the admin console is backed by a public REST API. Use it to sync ELSA state into your own HRIS, LMS, or BI stack.
Base URL & authentication
The production base URL is https://api.elsaspeak.com. Requests authenticate with an admin bearer token issued from the admin console (Settings → API keys → Generate). Treat this token like any other admin credential — it grants read access across your whole workspace.
curl -H "Authorization: Bearer $ELSA_ADMIN_TOKEN" \
https://api.elsaspeak.com/meetings?platform=google&type=past
Endpoints most admins use
| Endpoint | Method | Purpose |
|---|---|---|
/oauth/providers |
GET | List all connected conferencing providers for the workspace and their health status. |
/meetings |
GET | List meetings across your workspace. Filter with ?platform=google, ?type=past|upcoming, ?user_id=…, or an ISO time range. |
/meetings/{id} |
GET | Full meeting metadata including participants and recording availability. |
/meetings/{id}/participants |
GET | Enumerate participants for a meeting. |
/recordings/{recording_id}/audio |
GET | Download the raw audio (WAV/WebM) — subject to your retention policy. |
/meetings/{id}/participants/{pid}/analyze |
GET | Fetch the cached feedback report (score 0–100 plus structured JSON). |
/meetings/{id}/participants/{pid}/analyze |
POST | Force a re-analysis (e.g. after adjusting a learner’s target CEFR level). |
Webhooks
Subscribe to meeting.analyzed to receive a POST when a learner’s report is ready — useful for pushing scores into an LMS or triggering follow-up training. Configure your endpoint in Settings → Webhooks.
Data, privacy & compliance
Encrypted at rest & in transit
Audio and transcripts are AES-256 encrypted at rest and served exclusively over TLS 1.2+.
Only the speaker’s segments
ELSA analyzes each learner’s own speech. Other participants’ audio is used solely to separate speakers.
Configurable retention
Default 90-day retention on raw audio. Feedback reports persist per your plan. Custom windows on Enterprise.
SOC 2 · GDPR · DPA
Signed DPAs, sub-processor list, and SOC 2 Type II report available on request from your ELSA CSM.
Troubleshooting
Google Admin console says I can’t add domain-wide delegation.
You need a Google Workspace super-admin (or an admin role with API-controls privileges) to authorize domain-wide delegation. Ask your Workspace super-admin to complete step 4, or have them grant your account the required admin role first.
I connected Google but learners aren’t seeing meetings in ELSA.
Check three things: (1) the learner is in a group that has Meeting Companion enabled; (2) their ELSA account email matches their Workspace directory email; (3) the meeting had a Google Meet link on a calendar in your connected domain, not a personal Google account. Everything else is automatic.
Can I connect multiple Workspace domains?
Yes. Repeat the setup for each domain — the admin console shows one row per connected domain. Learners are matched to the correct domain automatically via the directory lookup.
How do I uninstall / revoke ELSA?
Either remove the ELSA client ID from Domain-wide delegation in the Google Admin console (Google side) or hit Disconnect next to the Google row in ELSA admin (ELSA side). Either action stops all further sync within minutes.
Where do I see who’s actually using Meeting Companion?
The admin console’s Adoption dashboard shows daily active learners, meetings processed, and per-group coverage. The same numbers are available via the API under /analytics/adoption.
What happens if a learner leaves the company?
Deactivate them in your SSO or Workspace directory (or in the ELSA admin console). ELSA immediately stops processing meetings for them and their existing reports become read-only, honoring your retention window.
Next steps
Ready to deploy Meeting Companion across your team? Sign in to the admin console or reach out to sales for a security review, custom scopes, or on-prem deployment.
