Set up Gmail tracking.
About 15 minutes, once for the whole firm. Steps 1 to 8 are done once by the Google Workspace admin. Step 9 is done by each person who wants their email tracked.
Anyone in a client workspace
Found automatically from the people in each workspace.
Evangelists without a workspace
Found from the calls filed with them, or marked by hand.
Anyone you have emailed before
Exact address only. Newsletters and no-reply senders are skipped.
Email from anyone else is never opened or stored. Nothing is sent until you approve it.
- 1
Sign in to Google Cloud as the Workspace admin
console.cloud.google.com
Use your
@informus.aiaccount, not a personal Gmail. The app has to belong to the informus.ai organization so it can be Internal, which means Google does not need to review it.Signed in to more than one Google account? Use a Chrome window where only your @informus.ai account is signed in (a separate profile or an incognito window). Otherwise Google Cloud keeps switching back to your personal account and shows “No organization”.
- 2
Create a project
Project picker (top left) → New project
- Project name:
Informus Flow - Organization:
informus.ai - Create, then make sure the new project is selected in the picker.
- Project name:
- 3
Turn on the Gmail API
APIs & Services → Library
Search
Gmail API, open it, and click Enable. - 4
Set up the consent screen as Internal
APIs & Services → OAuth consent screen (Google Auth Platform) → Get started
- App name:
Informus Flow. User support email:jlee@informus.ai. - Audience: Internal. Only people with an @informus.ai account can connect.
- Contact email: your address. Agree to the policy and click Create.
- App name:
- 5
Add the two Gmail permissions
Google Auth Platform → Data Access → Add or remove scopes
Paste each scope under Manually add scopes, click Add to table, then Update and Save.
https://www.googleapis.com/auth/gmail.readonlyRead email from tracked people, and find files you sent before.https://www.googleapis.com/auth/gmail.sendSend the reply you approved, in the same thread, so it lands in your Sent folder.
- 6
Create the sign-in client
Google Auth Platform → Clients → Create client
- Application type: Web application. Name:
Informus Flow Gmail. - Under Authorized redirect URIs, add both, exactly:
https://informus-flow.vercel.app/api/integrations/gmail/callbackhttp://localhost:3000/api/integrations/gmail/callback - Click Create. Google shows a Client ID and a Client secret.
Download the JSON or keep the dialog open: newer projects show the secret only once. Paste it straight into Vercel in the next step. Never send it in email, chat, or a document.
- Application type: Web application. Name:
- 7
Give Flow the Client ID and secret
vercel.com → informus-flow → Settings → Environment Variables
GOOGLE_GMAIL_CLIENT_ID= the Client IDGOOGLE_GMAIL_CLIENT_SECRET= the Client secret (mark it Sensitive)- Environments: Production and Preview. Save.
- Deployments → the latest Production deployment → Redeploy, so Flow picks them up.
Running Flow on your Mac too? Add the same two lines to
.env.localin the informus-flow folder. - 8
Start the 5-minute check
Terminal, in the informus-flow folder
Flow’s database (Supabase) prompts Flow to check Gmail every 5 minutes. It is built in, so there is nothing to sign up for and no extra cost. Run this once in the informus-flow folder. It reads
.env.local:pnpm gmail:schedule- The last line shows a test result. 200 means it is on.
- 401 means
CRON_SECRETin.env.localdiffers from Vercel Production. Copy Production’s value into.env.localand run it again. - To stop it:
pnpm gmail:schedule --off.
- 9
Connect your Gmail in Flow
informus-flow.vercel.app → Keep Moving → Email
- Click Connect Gmail, choose
jlee@informus.ai, and Allow. - Check Who is tracked. Add anyone Flow cannot find on its own: for example
bdcontractors.comfor Renfrow. - Everyone else at Informus repeats only this step, with their own account.
- Click Connect Gmail, choose
- “No organization” in Google Cloud: you are on your personal account. Switch the avatar (top right) to your @informus.ai account, or see the note in step 1.
- “redirect_uri_mismatch”: the redirect URI in step 6 differs by a character. Copy it again exactly, including
https://and no trailing slash. - “Access blocked: this app is restricted to users within its organization”: you chose a personal Gmail. Sign in with your @informus.ai account.
- “This app is blocked”: in admin.google.com → Security → Access and data control → API controls, allow internal apps to access Google services.
- Connected, but no tasks: the first check looks back two days. Confirm the sender is in Who is tracked, and run
pnpm gmail:schedule --checkto see that the 5-minute check is on.
When a tracked client asks for something, the reply is already drafted in Keep Moving. You look, approve, and it goes.