Google Workspace connect: shared leasing email, calendar, app verification

How a Google Workspace client with a shared leasing address can connect to PropFlow, what Google requires to allow it, and the options for Fede.

2026-09-15 · proposal, not a build ticket · shared-mailbox research: Microsoft connect flow — research

On this page

  1. Why this exists
  2. What exists today
  3. How a shared leasing address can connect on Google
  4. Calendar
  5. Verification
  6. Options for Fede
  7. What's missing

Why this exists

The next customer, Situs Group (645 residential units), runs on Google Workspace and has a shared leasing address, not a Microsoft mailbox. This is a separate page from the Microsoft connect flow because the platform and the verification path are both different: Google gates a shared address and a mailbox-read scope behind its own app-verification process, with its own timeline and its own cost. The two pages should not be merged into one.

What exists today

AreaState
gcloud CLIInstalled, signed in as fede@propflowai.co, project propflow-admin-tools. Token expired, so the consent-screen and API state could not be read this session.
gamNot installed.
OAuth codeBuilt by Jose (2026-04-24), hardened and unified by Gera (#7875). A separate integrations OAuth client (GOOGLE_INTEGRATIONS_CLIENT_ID / GOOGLE_INTEGRATIONS_CLIENT_SECRET), with authorize/callback/status/disconnect routes for google-email and google-calendar under src/app/api/integrations/.
Calendar adapter392-line Google Calendar adapter with a test at src/lib/domain/calendar/provider/google.ts.
Dev toolingInspector at /admin/dev/integrations-inspector.
Scopes todaycalendar.events, calendar.readonly, and gmail.send only. No Gmail read scope.
Gmail settings pageBuild paused 2026-09-05.
Verification submissionNone found anywhere.

How a shared leasing address can connect on Google

ModelWorks for us?Why
Google Group / collaborative inboxNoNo mailbox sits behind it and there is no OAuth surface to read or send as it.
Delegated mailbox (domain-wide delegation)NoNeeds a super admin to grant delegation across the domain. Google discourages it: "Avoid using domain-wide delegation if you can."
Alias on the leasing agent's accountYesMail lands in that person's inbox; the app sends as the alias via "Send mail as."
Real account with its own loginYesA normal Google account, signs in like any user.

Sources: Gmail API delegate settings, Alias and signature settings, Domain-wide delegation best practices, Help Scout article 78

Calendar

Calendar connects per agent on calendar.events. This is a sensitive scope, not a restricted one, so it carries lighter verification and no CASA security assessment.

Verification

  1. Consent screen basics. Privacy policy URL, homepage, logo, and scope justification.
  2. Sensitive-scope verification for calendar.events and gmail.send, about 3 to 5 business days. Sensitive scope verification
  3. To read the inbox, add gmail.modify, a restricted scope. That requires restricted-scope verification with a demo video. Restricted scope verification
  4. CASA Tier 2 security assessment by a Google-approved assessor. Roughly $500 to $3,000, 1 to 3 weeks once testing starts, renewed every 12 months. CASA Tier 2 example writeup
  5. Until verified: a 100-user cap and an "unverified app" warning shown to anyone connecting. Unverified apps
Customer-side path. A Situs Workspace admin can mark the app Trusted in their Admin console API controls. That allows the app for their own domain before verification finishes elsewhere. Control which apps access Google Workspace data

Options for Fede

OptionWhat it isRecommendation
1Start sensitive-scope verification now, add gmail.modify and start CASA in parallel, and go live at Situs under their admin's Trusted-app allowlist while CASA runs. Leasing address is an alias on the leasing agent's account, the same person-with-access model already used for Microsoft.Recommended.
2Send-only from the alias (gmail.send, no CASA). Leads arrive via the Yale forwarding pattern instead of a read scope.Rejected as a default for Western Slope.
3Domain-wide delegation via a service account.Rejected: needs a super admin and reaches the whole domain.

What's missing

  1. Fede re-login on gcloud so the consent screen can actually be read.
  2. Decide the scope set (whether to add gmail.modify now or defer it).
  3. Privacy policy, homepage, demo video for the verification submission.
  4. Gmail read path in code: a delta or history.list polling loop, or users.watch later.
  5. Gmail settings card in onboarding, currently paused.
  6. Tests for the Gmail OAuth and send path.
PropFlow Docs