Skip to content

Connect Google Workspace

This is the one-time setup you’ll do before your AI can read your Gmail, see your calendar, search your Drive, or work in your Docs. It takes about ten minutes the first time, and you only do it once per Google account. After it’s done, adding more Google products to the same account is two clicks.

Most of the work happens in Google Cloud Console, not in Jootle. That’s because Google requires every app that wants to access your account to be registered as an OAuth client. We’ll register Jootle as a client in your Google Cloud project, copy two strings into Jootle, and then sign in.

Why does Jootle need a Google Cloud project?

Most apps share one Google OAuth identity managed by the company that built them. Jootle eventually will too, once our Google verification clears. Until then, you create your own OAuth identity and your AI uses it. The advantage: your data never travels through anyone else’s OAuth identity, even briefly. The cost: ten minutes of setup.

You’ll need:

  • A Google account (the one you want your AI to access). It can be a personal Gmail account or a Google Workspace account.
  • About ten minutes.
  • A browser tab open to your Jootle instance, so you can paste values back into it at the end.

You will not need to write any code, install anything, or run any commands.

A Google Cloud project is a workspace for the apps you register with Google. You probably don’t have one yet. That’s fine.

  1. Go to the Google Cloud Console.
  2. Sign in with the Google account you want your AI to access.
  3. At the top of the page, click the project picker (it usually says “Select a project”).
  4. Click New project.
  5. Name it something like Jootle Personal or Jootle for [your name]. The name only appears to you, so it doesn’t matter what it is.
  6. Leave the organization field as is (most personal Google accounts have no organization).
  7. Click Create.

Wait a few seconds for the project to provision, then make sure it’s selected in the project picker before you continue.

Heads up: account vs. project. A Google account is your identity. A project is a container inside that account where you register apps. One Google account can have many projects. We’re creating one specifically for Jootle so its registration doesn’t mix with anything else you might have.

Each Google product (Gmail, Calendar, Drive, etc.) is a separate API. You enable the APIs for the products you want your AI to access. If you skip an API, your AI won’t be able to use that product even after you’ve signed in.

For each product you plan to connect, enable its corresponding API:

ProductAPI to enable
GmailGmail API
Google CalendarGoogle Calendar API
Google DriveGoogle Drive API
Google DocsGoogle Docs API
Google SheetsGoogle Sheets API
Google ContactsPeople API
Google AnalyticsGoogle Analytics Data API
Google AdsGoogle Ads API

To enable an API:

  1. In the Google Cloud Console sidebar, go to APIs & Services, then Library.
  2. Search for the API name.
  3. Click the result.
  4. Click Enable.

Repeat for each product. You can do this in any order, and you can come back later to enable more.

Pick everything you want now. Adding products later means signing in to Google again. It’s not painful, but it’s smoother to enable every API up front and check every box during sign-in.

Section titled “Step 3: Configure the OAuth consent screen”

Google needs to know what your registered app is, what it’s called, and who’s allowed to use it. This is the OAuth consent screen. You configure it once.

  1. In the sidebar, go to APIs & Services, then OAuth consent screen.
  2. For User type, choose External. Click Create.
  3. Fill in the three required fields:
    • App name: anything. My Jootle Assistant works.
    • User support email: your email.
    • Developer contact email: your email again.
  4. Click Save and continue.
  5. The next page is Scopes. You can leave this blank and click Save and continue. Jootle will request the right scopes when you sign in.
  6. The next page is Test users. This step matters. Read it carefully.

When you first set up an OAuth consent screen, Google puts your app in Testing mode. In Testing mode, only listed test users can sign in. Everyone else gets a “this app hasn’t been verified” error.

You’ll be the only person signing in to your own Google account through this app, so you need to add yourself to the test users list.

  1. Click + Add users.
  2. Enter the email address of the Google account you want your AI to access.
  3. Click Save.
  4. If you want to give your AI access to multiple Google accounts (for example, your personal Gmail and your work Gmail), add all of them here.
  5. Click Save and continue.
  6. The next page is a summary. Click Back to dashboard.

Why does this trip everyone up? Because Google doesn’t surface the test-users requirement clearly. If you skip this step, sign-in fails with a vague “access denied” error and people assume something is broken. Add yourself, save, and the rest goes smoothly.

You will not need to publish your app or go through Google’s verification process. Testing mode is fine for personal use, supports up to 100 test users, and never expires.

The OAuth Client ID is what Jootle actually uses to sign in to Google on your behalf. You create it once.

  1. In the sidebar, go to APIs & Services, then Credentials.

  2. Click + Create credentials at the top, then OAuth client ID.

  3. For Application type, choose Web application. This is important. Other types won’t work.

  4. Give it a name, anything. Jootle Web Client works.

  5. Under Authorized redirect URIs, click + Add URI.

  6. Paste the redirect URI Jootle is expecting. It looks like this, with your instance domain in place of your-instance:

    https://your-instance.on.jootle.com/api/connectors/oauth/google/callback

    You’ll see the exact URI on the Connect Google form inside Jootle. Copy it from there. The match must be exact, including https, the domain, and the path. No trailing slash.

  7. Click Create.

  8. A box appears with Your Client ID and Your Client Secret. Don’t close it yet.

Step 5: Copy your Client ID and Client Secret

Section titled “Step 5: Copy your Client ID and Client Secret”

The box from the previous step is the only place you’ll see the Client Secret in plain text. If you close it without copying, you’ll have to generate a new one. (No big deal, but easier to copy now.)

  • The Client ID is a long string. It ends in .apps.googleusercontent.com. Example: 123456789-abcdef.apps.googleusercontent.com.
  • The Client Secret is a shorter string. It starts with GOCSPX- and is treated like a password.

Copy both into a note where you’ll find them in a moment.

If you accidentally pasted an API key: an API key is a different thing Google offers in the same console. It’s not an OAuth Client ID. The Client ID always ends in .apps.googleusercontent.com. If what you copied doesn’t, go back to Credentials and find the row labeled OAuth 2.0 Client IDs, not API Keys.

You’re done with Google Cloud Console. Switch to your Jootle browser tab.

  1. Go to Integrations in your Jootle sidebar.
  2. Click + Connect Google at the top of the page.
  3. Optionally give the account a label. Something like Personal or Work helps if you’ll connect more than one Google account later.
  4. Paste your Client ID and Client Secret.
  5. Check the boxes for the products you want your AI to access. Match this to the APIs you enabled in step 2.
  6. Click Sign in with Google.

A popup opens. Sign in with the Google account you added as a test user. Grant the permissions Jootle is asking for, click Continue, and the popup closes itself.

You’ll see the new account on your Integrations page with a chip for each product you connected.

If you connected only Gmail today and decide tomorrow you want your AI to read your calendar too:

  1. Go to your Integrations page.
  2. Find the account card.
  3. Click + Add product.
  4. Check the box for the new product.
  5. Click Authorize.

A short Google sign-in pops up to grant the new permission. The Client ID, the Client Secret, and your existing connected products all stay the same. You’re not redoing setup, you’re extending it.

Make sure the API for the new product is enabled in your Google Cloud project before you do this. If it isn’t, go back to APIs & Services, Library, and enable it.

Some people want their AI to access two Google accounts. For example, your personal Gmail and your work Gmail, each with different products and different rules.

You can do this. The setup is the same, with two notes:

  1. Each Google account uses its own Google Cloud project, with its own OAuth Client ID and Secret. You do not share one Client ID between two accounts.
  2. Each account needs to be on the Test users list of the OAuth consent screen for whichever project owns it. (For most people, you’ll be the only test user on each.)

Once you’ve finished step 6 above for the first account, click + Connect Google again to start a second flow with a different Client ID and Secret.

Your AI can route work between accounts. You’ll be able to tell it things like “send this from my work email” or “check both inboxes for anything from Acme Corp”, and it’ll do the right thing.

The most common errors and what they actually mean:

What you seeWhat it meansWhat to do
invalid_clientThe Client ID you pasted doesn’t match an OAuth client in your Google Cloud project.Re-copy the Client ID from Credentials. Make sure you’re copying the OAuth Client ID, not an API Key.
redirect_uri_mismatchThe redirect URI on your Google OAuth client doesn’t match what Jootle is sending.Copy the exact URI from the error page or from your Jootle Connect form. Add it to Authorized redirect URIs on your OAuth client and save.
access_denied with a “Testing mode” messageThe Google account you’re signing in with isn’t on the Test users list.Open your OAuth consent screen, scroll to Test users, click + Add users, add the account, save.
access_denied without a Testing messageYou clicked Cancel or Deny on Google’s consent screen.Click Sign in with Google again and click Allow this time.
The popup opens and immediately closes with no messageYour browser blocked the popup.Look for a popup-blocked icon in your browser’s address bar, allow popups from Jootle, and try again.

If your AI later loses access (you’ll see a yellow Reauthorization needed banner on the account card), click Reconnect on the card. You’ll do a quick sign-in and your products will resume working without losing any of their settings, goals, or labels.

Once an account is connected, your AI can do things like:

  • “Send Lily an email saying I’ll be home by seven.”
  • “What’s on my calendar tomorrow morning?”
  • “Find the spec doc for the redesign and summarize the open questions.”
  • “Watch my inbox for anything from the lawyer and let me know immediately.”

You’ll set up monitoring and rules in the chapter on goals. The hard part is done.