> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stackone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Chat OAuth 2.0 connector profile – StackOne setup guide

> Set up the OAuth 2.0 connector profile for Google Chat in StackOne. One-time admin setup required before your users can link Google Chat accounts via Hub.

<Warning>A Google Cloud project with Owner or Editor permissions is required to create OAuth credentials.</Warning>

<Panel>
  <div className="not-prose guides-scope-selector" data-guides-scope-selector data-guide-actions-json="[{&#x22;id&#x22;:&#x22;googlechat_list_spaces&#x22;,&#x22;label&#x22;:&#x22;List Spaces&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.spaces.readonly&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_get_space&#x22;,&#x22;label&#x22;:&#x22;Get Space&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.spaces.readonly&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_create_space&#x22;,&#x22;label&#x22;:&#x22;Create Space&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.spaces.create&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_patch_space&#x22;,&#x22;label&#x22;:&#x22;Patch Space&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.spaces&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_delete_space&#x22;,&#x22;label&#x22;:&#x22;Delete Space&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.delete&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_find_direct_message&#x22;,&#x22;label&#x22;:&#x22;Find Direct Message&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.spaces.readonly&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_setup_space&#x22;,&#x22;label&#x22;:&#x22;Setup Space&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.spaces.create&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_list_members&#x22;,&#x22;label&#x22;:&#x22;List Members&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.memberships.readonly&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_get_member&#x22;,&#x22;label&#x22;:&#x22;Get Member&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.memberships.readonly&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_create_member&#x22;,&#x22;label&#x22;:&#x22;Create Member&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.memberships&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_patch_member&#x22;,&#x22;label&#x22;:&#x22;Patch Member&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.memberships&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_delete_member&#x22;,&#x22;label&#x22;:&#x22;Delete Member&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.memberships&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_list_messages&#x22;,&#x22;label&#x22;:&#x22;List Messages&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.messages.readonly&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_get_message&#x22;,&#x22;label&#x22;:&#x22;Get Message&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.messages.readonly&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_create_message&#x22;,&#x22;label&#x22;:&#x22;Create Message&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.messages.create&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_update_message&#x22;,&#x22;label&#x22;:&#x22;Update Message&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.messages&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_patch_message&#x22;,&#x22;label&#x22;:&#x22;Patch Message&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.messages&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_delete_message&#x22;,&#x22;label&#x22;:&#x22;Delete Message&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.messages&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_list_reactions&#x22;,&#x22;label&#x22;:&#x22;List Reactions&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.messages.reactions.readonly&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_create_reaction&#x22;,&#x22;label&#x22;:&#x22;Create Reaction&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.messages.reactions.create&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_delete_reaction&#x22;,&#x22;label&#x22;:&#x22;Delete Reaction&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.messages.reactions&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_get_attachment&#x22;,&#x22;label&#x22;:&#x22;Get Attachment&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.messages.readonly&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_list_custom_emojis&#x22;,&#x22;label&#x22;:&#x22;List Custom Emojis&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.customemojis.readonly&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_get_custom_emoji&#x22;,&#x22;label&#x22;:&#x22;Get Custom Emoji&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.customemojis.readonly&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_create_custom_emoji&#x22;,&#x22;label&#x22;:&#x22;Create Custom Emoji&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.customemojis&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_delete_custom_emoji&#x22;,&#x22;label&#x22;:&#x22;Delete Custom Emoji&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.customemojis&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_get_space_read_state&#x22;,&#x22;label&#x22;:&#x22;Get Space Read State&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.users.readstate.readonly&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_update_space_read_state&#x22;,&#x22;label&#x22;:&#x22;Update Space Read State&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.users.readstate&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_get_thread_read_state&#x22;,&#x22;label&#x22;:&#x22;Get Thread Read State&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.users.readstate.readonly&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_get_space_notification_setting&#x22;,&#x22;label&#x22;:&#x22;Get Space Notification Setting&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.users.spacesettings&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_patch_space_notification_setting&#x22;,&#x22;label&#x22;:&#x22;Patch Space Notification Setting&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/chat.users.spacesettings&#x22;]},{&#x22;id&#x22;:&#x22;googlechat_get_current_user&#x22;,&#x22;label&#x22;:&#x22;Get Current User&#x22;,&#x22;scopes&#x22;:[&#x22;https://www.googleapis.com/auth/userinfo.email&#x22;]}]" style={{ borderRadius: '8px', padding: '16px', marginBottom: '24px' }}>
    <div className="guides-scope-selector__title" style={{ fontSize: '16px', fontWeight: '600', marginBottom: '12px' }}>Select Actions to adjust the guide</div>
    <div className="guides-scope-selector__muted" style={{ fontSize: '13px', marginBottom: '12px' }}>Some actions may require additional configuration in the provider to be accessible. Choose the actions you need and the guide will be updated.</div>

    <div style={{ display: 'flex', gap: '8px', marginBottom: '12px', flexWrap: 'wrap' }}>
      <input type="text" placeholder="Search actions..." className="guides-scope-selector__input" data-guide-action-search style={{ padding: '8px 12px', borderRadius: '6px', fontSize: '13px', flex: 1, minWidth: '160px' }} />

      <button type="button" className="guides-scope-selector__quick-btn" data-guide-select-all style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Select all</button>
      <button type="button" className="guides-scope-selector__quick-btn" data-guide-clear style={{ padding: '6px 10px', borderRadius: '6px', fontSize: '12px', cursor: 'pointer' }}>Clear</button>
    </div>

    <div className="guides-scope-selector__list" style={{ maxHeight: '240px', overflowY: 'auto', borderRadius: '6px', marginBottom: '12px' }}>
      <div className="guides-scope-selector__list-header" style={{ display: 'flex', alignItems: 'center', gap: '10px', padding: '8px 12px', fontSize: '12px', fontWeight: '600', position: 'sticky', top: 0, zIndex: 1 }}>
        <div style={{ width: '16px', flexShrink: 0 }} />

        <div style={{ flex: 1, textAlign: 'left' }}>Action</div>
        <div style={{ minWidth: '120px', marginLeft: 'auto', textAlign: 'right' }}>Scope(s)</div>
      </div>

      <div className="guides-scope-selector__muted" data-guide-loading style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>Loading actions...</div>
      <div className="guides-scope-selector__muted" data-guide-no-results hidden style={{ padding: '16px', textAlign: 'center', fontSize: '13px' }}>No actions match your search.</div>
    </div>

    <div className="guides-scope-selector__url-section" style={{ marginTop: '12px', paddingTop: '12px' }}>
      <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Dynamic Guide URL</div>

      <div style={{ display: 'flex', alignItems: 'center', gap: '8px', flexWrap: 'wrap' }}>
        <input type="text" readOnly className="guides-scope-selector__input" data-guide-url style={{ flex: 1, minWidth: '200px', padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace' }} />

        <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-url style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap', marginLeft: 'auto' }}>Copy URL</button>
      </div>

      <div style={{ marginTop: '12px' }}>
        <div className="guides-scope-selector__muted" style={{ fontSize: '12px', fontWeight: '500', marginBottom: '6px' }}>Scopes Selected</div>

        <div style={{ display: 'flex', alignItems: 'stretch', gap: '8px', flexWrap: 'wrap' }}>
          <pre className="guides-scope-selector__input" role="textbox" aria-readonly="true" tabIndex={0} data-guide-scopes-output style={{ flex: 1, minWidth: '200px', minHeight: '88px', maxHeight: '120px', overflowY: 'auto', margin: 0, padding: '8px 10px', borderRadius: '6px', fontSize: '12px', fontFamily: 'monospace', whiteSpace: 'pre-wrap' }} />

          <div className="guides-scope-selector__muted" style={{ display: 'flex', flexDirection: 'column', gap: '8px', fontSize: '12px', fontWeight: '500', flexShrink: 0, alignItems: 'flex-start' }}>
            <div style={{ whiteSpace: 'nowrap' }}>Separator</div>

            <select className="guides-scope-selector__input" data-guide-scope-delimiter style={{ width: '100%', padding: '6px 10px', borderRadius: '6px', fontSize: '12px' }}>
              <option value="space">Space</option>
              <option value="comma">Comma</option>
              <option value="semicolon">Semicolon</option>
              <option value="pipe">Pipe</option>
              <option value="newline">Newline</option>
            </select>

            <button type="button" className="guides-scope-selector__copy-btn" data-guide-copy-scopes style={{ width: '120px', padding: '8px 14px', borderRadius: '6px', fontSize: '13px', fontWeight: '500', cursor: 'pointer', whiteSpace: 'nowrap' }}>Copy scopes</button>
          </div>
        </div>
      </div>
    </div>
  </div>
</Panel>

<section data-guide-section data-guide-scopes="">
  <h2>Create or select a Google Cloud project</h2>

  <p>To use the Google Chat API with OAuth 2.0, you need a Google Cloud project.</p>

  <Steps>
    <Step title="Sign in to Google Cloud">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Sign in to your <a href="https://console.cloud.google.com/" target="_blank" rel="noopener noreferrer">Google Cloud Console</a>.</p>

        <img src="https://mintcdn.com/stackone-60/taSDfrd-ek8zJVcR/connectors/googlechat/images/oauth2-setup-login.png?fit=max&auto=format&n=taSDfrd-ek8zJVcR&q=85&s=cf7f96af654651b5554ef46c68c7e678" alt="Google Cloud Console login" width="1276" height="802" data-path="connectors/googlechat/images/oauth2-setup-login.png" />
      </div>
    </Step>

    <Step title="Create or select a project">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Select an existing project from the dropdown at the top of the page, or create a new one by clicking <strong>New Project</strong> and filling in the <strong>Project name</strong>, <strong>Organization</strong>, and <strong>Parent resource</strong> fields, then clicking <strong>Create</strong>.</p>

        <img src="https://mintcdn.com/stackone-60/taSDfrd-ek8zJVcR/connectors/googlechat/images/oauth2-setup-cloud-console.png?fit=max&auto=format&n=taSDfrd-ek8zJVcR&q=85&s=081169bb570d998c86d010cd1a63d2b8" alt="Google Cloud Console welcome page with project selector" width="1280" height="800" data-path="connectors/googlechat/images/oauth2-setup-cloud-console.png" />
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Enable the Google Chat API</h2>

  <p>Enable the Google Chat API for your project. This step is required whether you created a new project or selected an existing one.</p>

  <Steps>
    <Step title="Open the API Library">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the Google Cloud Console, navigate to <strong>APIs & Services</strong> > <strong>Library</strong>.</p>
      </div>
    </Step>

    <Step title="Enable Google Chat API">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Search for "Google Chat API" and click on it.</p>

        <ul>
          <li><strong>New project</strong>: Click <strong>Enable</strong> to activate the API.</li>
          <li><strong>Existing project</strong>: If the API is already enabled, the button will show <strong>Manage</strong>. If it shows <strong>Enable</strong>, click it to enable the API.</li>
        </ul>

        <img src="https://mintcdn.com/stackone-60/taSDfrd-ek8zJVcR/connectors/googlechat/images/oauth2-setup-enable-chat-api.png?fit=max&auto=format&n=taSDfrd-ek8zJVcR&q=85&s=4c30e734a3faa8ffbd3a6b25f111fa9e" alt="Google Chat API product details page showing Enable and Manage buttons" width="1037" height="715" data-path="connectors/googlechat/images/oauth2-setup-enable-chat-api.png" />
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Configure Chat API Basic Settings</h2>

  <p>Configure the Chat app on the Google Chat API Configuration page. This step is required for the Google Chat endpoints to function correctly. StackOne uses REST API access only and does not receive incoming events; however, Google requires a configured Chat app with a valid HTTPS endpoint URL to enable API access.</p>

  <Steps>
    <Step title="Complete Configuration Page">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Navigate to <strong>APIs & Services</strong> > <strong>Enabled APIs & Services</strong>, select <strong>Google Chat API</strong> from the list, then open the <strong>Configuration</strong> tab and fill in the required fields.</p>

        <ul>
          <li><strong>App status</strong> (if visible): Set to <strong>LIVE - available to users</strong>.</li>
          <li><strong>App name</strong>: Display name for your application (up to 25 characters).</li>
          <li><strong>Avatar URL</strong>: HTTPS URL to a square image (PNG/JPEG, 256x256 pixels).</li>
          <li><strong>Description</strong>: Brief description (up to 40 characters).</li>
          <li><strong>Interactive features</strong>: Enable this option if your app will use interactive cards or dialogues.</li>
          <li>Select <strong>Join spaces and group conversations</strong>.</li>
          <li><strong>Connection settings</strong>: Select <strong>HTTP endpoint URL</strong>.</li>
          <li><strong>Triggers</strong>: Select <strong>Use a common HTTP endpoint URL for all triggers</strong> and enter any valid HTTPS URL (e.g., `https://yourdomain.com`). A valid endpoint URL is required to save the configuration.</li>
          <li><strong>Visibility</strong>: Set the visibility of your app and add email addresses to make it available to specific users or groups if needed.</li>
          <li>Select <strong>Log errors to Logging</strong> for debugging purposes if required.</li>
          <li>Click <strong>Save</strong>.</li>
        </ul>

        <img src="https://mintcdn.com/stackone-60/taSDfrd-ek8zJVcR/connectors/googlechat/images/oauth2-setup-configuration.png?fit=max&auto=format&n=taSDfrd-ek8zJVcR&q=85&s=53d62403308027a07e0a8ca3b5ba30bb" alt="Google Chat API Configuration tab showing App status, Application info, and connection settings" width="1133" height="1102" data-path="connectors/googlechat/images/oauth2-setup-configuration.png" />
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Configure Google Auth Platform</h2>

  <p>Before creating OAuth credentials, ensure the Google Auth Platform is configured for your project.</p>

  <Steps>
    <Step title="Navigate to Google Auth Platform">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the Google Cloud Console, go to <strong>APIs & Services</strong> > <strong>OAuth consent screen</strong> from the left sidebar. This will open the Google Auth Platform dashboard.</p>
      </div>
    </Step>

    <Step title="Begin configuration">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>If Auth Platform is already configured (the OAuth Overview page with usage metrics is displayed), skip this step and navigate to the <strong>Branding</strong> page from the sidebar. Otherwise, click the <strong>Get started</strong> button to begin the configuration process.</p>
      </div>
    </Step>

    <Step title="Enter app information">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Fill in the required fields.</p>

        <ul>
          <li><strong>App name</strong>: Enter a name for your application (e.g., StackOne Integration).</li>
          <li><strong>User support email</strong>: Select an email for user inquiries.</li>
          <li>Click <strong>Next</strong> to continue.</li>
        </ul>

        <img src="https://mintcdn.com/stackone-60/taSDfrd-ek8zJVcR/connectors/googlechat/images/oauth2-setup-branding.png?fit=max&auto=format&n=taSDfrd-ek8zJVcR&q=85&s=0bd3007584aadee083bef76bc4eb31bf" alt="Google Auth Platform Branding page with App name and User support email fields" width="1280" height="800" data-path="connectors/googlechat/images/oauth2-setup-branding.png" />
      </div>
    </Step>

    <Step title="Select audience">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Choose the appropriate user type.</p>

        <ul>
          <li><strong>Internal</strong>: Only users within your Google Workspace organisation can authorise (no app verification required).</li>
          <li><strong>External</strong>: Any Google account can authorise (requires app verification for production use).</li>
        </ul>

        <img src="https://mintcdn.com/stackone-60/taSDfrd-ek8zJVcR/connectors/googlechat/images/oauth2-setup-audience.png?fit=max&auto=format&n=taSDfrd-ek8zJVcR&q=85&s=1373d2a609dcacf70c5e4fca79688979" alt="Google Auth Platform Audience page showing Publishing status, User type, and Test users sections" width="1280" height="800" data-path="connectors/googlechat/images/oauth2-setup-audience.png" />
      </div>
    </Step>

    <Step title="Enter contact information">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Enter email addresses where Google can notify you about changes to your project. Click <strong>Next</strong> to continue.</p>
      </div>
    </Step>

    <Step title="Complete the configuration">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Review your settings, agree to the Google API Services User Data Policy, and click <strong>Create</strong> to finalise the setup.</p>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Configure scopes</h2>

  <p>In the Google Auth Platform sidebar, navigate to <strong>Data Access</strong> and click <strong>Add or remove scopes</strong> to configure the OAuth scopes your application requires.</p>

  <Steps>
    <Step title="Add scopes">
      <div data-guide-step data-guide-scopes="https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/chat.messages,https://www.googleapis.com/auth/chat.messages.readonly,https://www.googleapis.com/auth/chat.messages.create,https://www.googleapis.com/auth/chat.messages.reactions,https://www.googleapis.com/auth/chat.messages.reactions.create,https://www.googleapis.com/auth/chat.messages.reactions.readonly,https://www.googleapis.com/auth/chat.spaces,https://www.googleapis.com/auth/chat.spaces.readonly,https://www.googleapis.com/auth/chat.spaces.create,https://www.googleapis.com/auth/chat.memberships,https://www.googleapis.com/auth/chat.memberships.readonly,https://www.googleapis.com/auth/chat.delete,https://www.googleapis.com/auth/chat.users.readstate,https://www.googleapis.com/auth/chat.users.readstate.readonly,https://www.googleapis.com/auth/chat.customemojis,https://www.googleapis.com/auth/chat.customemojis.readonly,https://www.googleapis.com/auth/chat.users.spacesettings" data-guide-display-scopes-list="https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/chat.messages,https://www.googleapis.com/auth/chat.messages.readonly,https://www.googleapis.com/auth/chat.messages.create,https://www.googleapis.com/auth/chat.messages.reactions,https://www.googleapis.com/auth/chat.messages.reactions.create,https://www.googleapis.com/auth/chat.messages.reactions.readonly,https://www.googleapis.com/auth/chat.spaces,https://www.googleapis.com/auth/chat.spaces.readonly,https://www.googleapis.com/auth/chat.spaces.create,https://www.googleapis.com/auth/chat.memberships,https://www.googleapis.com/auth/chat.memberships.readonly,https://www.googleapis.com/auth/chat.delete,https://www.googleapis.com/auth/chat.users.readstate,https://www.googleapis.com/auth/chat.users.readstate.readonly,https://www.googleapis.com/auth/chat.customemojis,https://www.googleapis.com/auth/chat.customemojis.readonly,https://www.googleapis.com/auth/chat.users.spacesettings">
        <div className="connector-guide-actions-badge" data-guide-actions-badge data-guide-actions-badge-scopes="https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/chat.messages,https://www.googleapis.com/auth/chat.messages.readonly,https://www.googleapis.com/auth/chat.messages.create,https://www.googleapis.com/auth/chat.messages.reactions,https://www.googleapis.com/auth/chat.messages.reactions.create,https://www.googleapis.com/auth/chat.messages.reactions.readonly,https://www.googleapis.com/auth/chat.spaces,https://www.googleapis.com/auth/chat.spaces.readonly,https://www.googleapis.com/auth/chat.spaces.create,https://www.googleapis.com/auth/chat.memberships,https://www.googleapis.com/auth/chat.memberships.readonly,https://www.googleapis.com/auth/chat.delete,https://www.googleapis.com/auth/chat.users.readstate,https://www.googleapis.com/auth/chat.users.readstate.readonly,https://www.googleapis.com/auth/chat.customemojis,https://www.googleapis.com/auth/chat.customemojis.readonly,https://www.googleapis.com/auth/chat.users.spacesettings" style={{ display: 'block', width: 'fit-content', maxWidth: '100%', padding: '2px 8px', borderRadius: '8px', fontSize: '12px', marginBottom: '8px', marginTop: '-10px', whiteSpace: 'nowrap', overflowX: 'auto', overflowY: 'hidden', msOverflowStyle: 'none', scrollbarWidth: 'none' }}>
          <span>Enables actions: </span><span data-guide-actions-badge-labels>Create Custom Emoji, Create Member, Create Message, Create Reaction, Create Space, Delete Custom Emoji, Delete Member, Delete Message, Delete Reaction, Delete Space, Find Direct Message, Get Attachment, Get Current User, Get Custom Emoji, Get Member, Get Message, Get Space, Get Space Notification Setting, Get Space Read State, Get Thread Read State, List Custom Emojis, List Members, List Messages, List Reactions, List Spaces, Patch Member, Patch Message, Patch Space, Patch Space Notification Setting, Setup Space, Update Message, Update Space Read State</span>
        </div>

        <p>Add the required Google Chat scopes for your integration.</p>

        <img src="https://mintcdn.com/stackone-60/taSDfrd-ek8zJVcR/connectors/googlechat/images/oauth2-setup-data-access.png?fit=max&auto=format&n=taSDfrd-ek8zJVcR&q=85&s=0d76730a985a47912ae5c3cb91d0507b" alt="Google Auth Platform Data Access page with Add or remove scopes button and scope tables" width="1280" height="800" data-path="connectors/googlechat/images/oauth2-setup-data-access.png" />

        <div style={{ marginTop: '8px' }} data-guide-display-scopes>
          <div className="connector-guide-scopes-container connector-guide-scopes-container--scrollable">
            <ul className="not-prose" style={{ listStyleType: "'- '", paddingLeft: '1em', margin: 0 }}>
              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/userinfo.email">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/userinfo.email" title="Copy scope" data-copy="https://www.googleapis.com/auth/userinfo.email">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/userinfo.email](https://www.googleapis.com/auth/userinfo.email)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/chat.messages">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/chat.messages" title="Copy scope" data-copy="https://www.googleapis.com/auth/chat.messages">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/chat.messages](https://www.googleapis.com/auth/chat.messages)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/chat.messages.readonly">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/chat.messages.readonly" title="Copy scope" data-copy="https://www.googleapis.com/auth/chat.messages.readonly">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/chat.messages.readonly](https://www.googleapis.com/auth/chat.messages.readonly)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/chat.messages.create">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/chat.messages.create" title="Copy scope" data-copy="https://www.googleapis.com/auth/chat.messages.create">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/chat.messages.create](https://www.googleapis.com/auth/chat.messages.create)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/chat.messages.reactions">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/chat.messages.reactions" title="Copy scope" data-copy="https://www.googleapis.com/auth/chat.messages.reactions">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/chat.messages.reactions](https://www.googleapis.com/auth/chat.messages.reactions)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/chat.messages.reactions.create">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/chat.messages.reactions.create" title="Copy scope" data-copy="https://www.googleapis.com/auth/chat.messages.reactions.create">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/chat.messages.reactions.create](https://www.googleapis.com/auth/chat.messages.reactions.create)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/chat.messages.reactions.readonly">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/chat.messages.reactions.readonly" title="Copy scope" data-copy="https://www.googleapis.com/auth/chat.messages.reactions.readonly">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/chat.messages.reactions.readonly](https://www.googleapis.com/auth/chat.messages.reactions.readonly)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/chat.spaces">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/chat.spaces" title="Copy scope" data-copy="https://www.googleapis.com/auth/chat.spaces">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/chat.spaces](https://www.googleapis.com/auth/chat.spaces)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/chat.spaces.readonly">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/chat.spaces.readonly" title="Copy scope" data-copy="https://www.googleapis.com/auth/chat.spaces.readonly">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/chat.spaces.readonly](https://www.googleapis.com/auth/chat.spaces.readonly)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/chat.spaces.create">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/chat.spaces.create" title="Copy scope" data-copy="https://www.googleapis.com/auth/chat.spaces.create">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/chat.spaces.create](https://www.googleapis.com/auth/chat.spaces.create)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/chat.memberships">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/chat.memberships" title="Copy scope" data-copy="https://www.googleapis.com/auth/chat.memberships">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/chat.memberships](https://www.googleapis.com/auth/chat.memberships)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/chat.memberships.readonly">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/chat.memberships.readonly" title="Copy scope" data-copy="https://www.googleapis.com/auth/chat.memberships.readonly">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/chat.memberships.readonly](https://www.googleapis.com/auth/chat.memberships.readonly)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/chat.delete">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/chat.delete" title="Copy scope" data-copy="https://www.googleapis.com/auth/chat.delete">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/chat.delete](https://www.googleapis.com/auth/chat.delete)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/chat.users.readstate">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/chat.users.readstate" title="Copy scope" data-copy="https://www.googleapis.com/auth/chat.users.readstate">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/chat.users.readstate](https://www.googleapis.com/auth/chat.users.readstate)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/chat.users.readstate.readonly">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/chat.users.readstate.readonly" title="Copy scope" data-copy="https://www.googleapis.com/auth/chat.users.readstate.readonly">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/chat.users.readstate.readonly](https://www.googleapis.com/auth/chat.users.readstate.readonly)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/chat.customemojis">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/chat.customemojis" title="Copy scope" data-copy="https://www.googleapis.com/auth/chat.customemojis">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/chat.customemojis](https://www.googleapis.com/auth/chat.customemojis)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/chat.customemojis.readonly">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/chat.customemojis.readonly" title="Copy scope" data-copy="https://www.googleapis.com/auth/chat.customemojis.readonly">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/chat.customemojis.readonly](https://www.googleapis.com/auth/chat.customemojis.readonly)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>

              <li style={{ overflowWrap: 'anywhere', wordBreak: 'break-word' }} data-guide-display-scope="https://www.googleapis.com/auth/chat.users.spacesettings">
                <button type="button" className="connector-guide-scope-copy" aria-label="Copy https://www.googleapis.com/auth/chat.users.spacesettings" title="Copy scope" data-copy="https://www.googleapis.com/auth/chat.users.spacesettings">
                  <span className="connector-guide-scope-copy__label">[https://www.googleapis.com/auth/chat.users.spacesettings](https://www.googleapis.com/auth/chat.users.spacesettings)</span>
                  <span className="connector-guide-scope-copy__icon" aria-hidden="true">⧉</span>
                </button>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </Step>

    <Step title="Select scopes from the list">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the <strong>Update selected scopes</strong> side panel that opens, check the required scopes from the list.</p>
      </div>
    </Step>

    <Step title="Add scopes manually (if required)">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>If a required scope does not appear in the list, use the <strong>Manually add scopes</strong> section.</p>

        <ul>
          <li>Enter the full scope URL in the input field.</li>
          <li>Click <strong>Add to table</strong>.</li>
        </ul>
      </div>
    </Step>

    <Step title="Save your scope selection">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Confirm and save your scope configuration.</p>

        <ul>
          <li>Click <strong>Update</strong> to apply the selected scopes. The side panel will close.</li>
          <li>On the <strong>Data Access</strong> page, click <strong>Save</strong> to persist the scope configuration.</li>
        </ul>
      </div>
    </Step>
  </Steps>
</section>

<section data-guide-section data-guide-scopes="">
  <h2>Create OAuth 2.0 client credentials</h2>

  <p>Set up OAuth client credentials to authenticate with the Google Chat API. If you already have an existing OAuth 2.0 client, you can reuse it by adding the StackOne redirect URI and generating a new secret.</p>

  <Steps>
    <Step title="Navigate to Credentials">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>In the Google Cloud Console, go to <strong>APIs & Services</strong> > <strong>Credentials</strong>.</p>

        <img src="https://mintcdn.com/stackone-60/taSDfrd-ek8zJVcR/connectors/googlechat/images/oauth2-setup-credentials.png?fit=max&auto=format&n=taSDfrd-ek8zJVcR&q=85&s=1a7a29e8207fd3a2936aebd5b3d245f1" alt="APIs and Services Credentials page showing Create Credentials button and OAuth 2.0 Client IDs list" width="1468" height="601" data-path="connectors/googlechat/images/oauth2-setup-credentials.png" />
      </div>
    </Step>

    <Step title="Option A — Create a new OAuth client">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Skip this step if you are using an existing client.</p>

        <ul>
          <li>Click <strong>+ Create Credentials</strong> and select <strong>OAuth client ID</strong>.</li>
          <li>Select <strong>Web application</strong> as the application type.</li>
          <li>Enter a <strong>Name</strong> for your OAuth client (e.g., StackOne Chat Integration).</li>
          <li>Under <strong>Authorized redirect URIs</strong>, click <strong>Add URI</strong> and enter `https://api.stackone.com/connect/oauth2/googlechat/callback`.</li>
          <li>Click <strong>Create</strong>. A dialog will display your <strong>Client ID</strong> and <strong>Client Secret</strong> — copy and store them securely.</li>
        </ul>

        <img src="https://mintcdn.com/stackone-60/taSDfrd-ek8zJVcR/connectors/googlechat/images/oauth2-create-oauth-client-id.png?fit=max&auto=format&n=taSDfrd-ek8zJVcR&q=85&s=8cd6baa0852ee3bb3525f7b6b9c7d561" alt="Create OAuth client ID and Client Secret" width="1416" height="1014" data-path="connectors/googlechat/images/oauth2-create-oauth-client-id.png" />
      </div>
    </Step>

    <Step title="Option B — Use an existing OAuth client">
      <div data-guide-step data-guide-scopes="" data-guide-display-scopes-list="">
        <p>Skip this step if you created a new client above.</p>

        <ul>
          <li>Click on your existing OAuth 2.0 client ID from the list.</li>
          <li>Under <strong>Authorized redirect URIs</strong>, click <strong>Add URI</strong>, enter `https://api.stackone.com/connect/oauth2/googlechat/callback`, and click <strong>Save</strong>.</li>
          <li>Under <strong>Client secrets</strong>, click <strong>+ Add secret</strong> to generate a new secret. Copy and store it securely — it will not be displayed again.</li>
          <li>Your <strong>Client ID</strong> is shown on the same page under <strong>Additional information</strong>.</li>
        </ul>

        <img src="https://mintcdn.com/stackone-60/taSDfrd-ek8zJVcR/connectors/googlechat/images/oauth2-get-client-id-when-existing.png?fit=max&auto=format&n=taSDfrd-ek8zJVcR&q=85&s=ef82e2d9e8ab42ce17cb12819da35ee6" alt="Existing OAuth client ID page showing Add URI and Add secret buttons" width="1714" height="922" data-path="connectors/googlechat/images/oauth2-get-client-id-when-existing.png" />
      </div>
    </Step>
  </Steps>
</section>

## Creating the StackOne Connector Profile

To create the Connector Profile in StackOne for <strong>Google Chat</strong>:

<Steps>
  <Step title="Navigate to Connector Profiles">
    Login to StackOne and navigate to [Connector Profiles](https://app.stackone.com/connector_profiles)
  </Step>

  <Step title="Create New Connector Profile">
    <ul>
      <li>Click <strong>+ Connector Profile</strong></li>
      <li>Search for and select <strong>Google Chat</strong></li>
      <li>Select <strong>Type</strong> as <strong>OAuth 2.0</strong></li>

      <li>
        Fill out the fields using details retrieved from your provider:

        <ul style={{ marginLeft: '20px' }}>
          <li><strong>Client ID</strong></li>
          <li><strong>Client Secret</strong></li>
          <li><strong>Scopes</strong> (Optional)</li>
        </ul>
      </li>

      <li>(Optional) Select <strong>Actions</strong> to be enabled for this Connector Profile</li>
      <li>Click <strong>Create profile</strong></li>
    </ul>
  </Step>
</Steps>

Congratulations! The new Connector Profile will now show up in your project ready to be used. You can now continue to <a href="/guides/accounts-section#linking-accounts">Link Accounts</a> for <strong>Google Chat</strong>.
