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

# Google Workspace Admin Integration for AI Agents & Workflows

> Retrieve admin audit activity reports from Google Workspace via the Admin SDK Reports API

{/* Self-hosted logo — build-time vendored from modulex.json / Iconify (see scripts/lib/logo.js). */}

<img className="block dark:hidden" src="https://mintcdn.com/modulexaillc/zKB2qsP6Q61VNLfB/logos/google-workspace-light.svg?fit=max&auto=format&n=zKB2qsP6Q61VNLfB&q=85&s=418a9a4049e238afe4ed3060a96b7adb" alt="Google Workspace Admin logo" width="72" height="72" data-path="logos/google-workspace-light.svg" />

<img className="hidden dark:block" src="https://mintcdn.com/modulexaillc/zKB2qsP6Q61VNLfB/logos/google-workspace-dark.svg?fit=max&auto=format&n=zKB2qsP6Q61VNLfB&q=85&s=417ec41400a42615c058a778e2c538e3" alt="Google Workspace Admin logo" width="72" height="72" data-path="logos/google-workspace-dark.svg" />

## Overview

Add **Google Workspace Admin** to any ModuleX agent or workflow. Retrieve admin audit activity reports from Google Workspace via the Admin SDK Reports API (`admin.googleapis.com`).

<Info>
  **Categories**: Productivity & Collaboration · Admin · Enterprise · **Auth**: OAuth2 · **Actions**: 4
</Info>

## Authentication

### OAuth2 Authentication

Connect using Google OAuth (recommended)

#### Required Credentials

| Field         | Description                    | Required | Format                                                                     |
| ------------- | ------------------------------ | -------- | -------------------------------------------------------------------------- |
| Client ID     | Google OAuth App Client ID     | Yes      | `xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com` |
| Client Secret | Google OAuth App Client Secret | Yes      | `GOCSPX-xxxxxxxxxxxxxxxxxxxxxxxxxxxx`                                      |

#### OAuth Configuration

* **Authorization URL**: `https://accounts.google.com/o/oauth2/v2/auth`
* **Token URL**: `https://oauth2.googleapis.com/token`
* **Scopes**: `https://www.googleapis.com/auth/admin.reports.audit.readonly`

## Available Actions

<AccordionGroup>
  <Accordion title="list_activities_by_admin — Retrieve admin console activities for a specific administrator">
    ### Parameters

    <ResponseField name="application_name" type="string" required>
      Application name to retrieve events for. Valid values: access\_transparency, admin, calendar, chat, drive, gcp, gplus, groups, groups\_enterprise, jamboard, login, meet, mobile, rules, saml, token, user\_accounts, context\_aware\_access, chrome, data\_studio, keep
    </ResponseField>

    <ResponseField name="user_key" type="string" required>
      Profile ID or email of the administrator to filter activities for
    </ResponseField>

    <ResponseField name="event_name" type="string">
      Name of the event to filter by
    </ResponseField>

    <ResponseField name="end_time" type="string">
      End of the time range in RFC 3339 format (e.g. 2010-10-28T10:26:35.000Z)
    </ResponseField>

    <ResponseField name="start_time" type="string">
      Beginning of the time range in RFC 3339 format (e.g. 2010-10-28T10:26:35.000Z)
    </ResponseField>

    <ResponseField name="max_results" type="integer">
      Maximum number of activity records to return per page (default 1000)
    </ResponseField>

    <ResponseField name="filters" type="string">
      Comma-separated event parameter filters (e.g. parameter\_name relational\_operator value)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "activities": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Activities",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListActivitiesByAdminOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_activities_by_event_and_admin — Retrieve activities filtered by both a specific event name and administrator">
    ### Parameters

    <ResponseField name="application_name" type="string" required>
      Application name to retrieve events for. Valid values: access\_transparency, admin, calendar, chat, drive, gcp, gplus, groups, groups\_enterprise, jamboard, login, meet, mobile, rules, saml, token, user\_accounts, context\_aware\_access, chrome, data\_studio, keep
    </ResponseField>

    <ResponseField name="event_name" type="string" required>
      Name of the event to filter by
    </ResponseField>

    <ResponseField name="user_key" type="string" required>
      Profile ID or email of the administrator to filter activities for
    </ResponseField>

    <ResponseField name="end_time" type="string">
      End of the time range in RFC 3339 format (e.g. 2010-10-28T10:26:35.000Z)
    </ResponseField>

    <ResponseField name="start_time" type="string">
      Beginning of the time range in RFC 3339 format (e.g. 2010-10-28T10:26:35.000Z)
    </ResponseField>

    <ResponseField name="max_results" type="integer">
      Maximum number of activity records to return per page (default 1000)
    </ResponseField>

    <ResponseField name="filters" type="string">
      Comma-separated event parameter filters (e.g. parameter\_name relational\_operator value)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "activities": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Activities",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListActivitiesByEventAndAdminOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_activities_by_event_name — Retrieve activities for all users filtered by a specific event name">
    ### Parameters

    <ResponseField name="application_name" type="string" required>
      Application name to retrieve events for. Valid values: access\_transparency, admin, calendar, chat, drive, gcp, gplus, groups, groups\_enterprise, jamboard, login, meet, mobile, rules, saml, token, user\_accounts, context\_aware\_access, chrome, data\_studio, keep
    </ResponseField>

    <ResponseField name="event_name" type="string" required>
      Name of the event to filter by
    </ResponseField>

    <ResponseField name="end_time" type="string">
      End of the time range in RFC 3339 format (e.g. 2010-10-28T10:26:35.000Z)
    </ResponseField>

    <ResponseField name="start_time" type="string">
      Beginning of the time range in RFC 3339 format (e.g. 2010-10-28T10:26:35.000Z)
    </ResponseField>

    <ResponseField name="max_results" type="integer">
      Maximum number of activity records to return per page (default 1000)
    </ResponseField>

    <ResponseField name="filters" type="string">
      Comma-separated event parameter filters (e.g. parameter\_name relational\_operator value)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "activities": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Activities",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListActivitiesByEventNameOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="list_all_activities — Retrieve all administrative activities for the account">
    ### Parameters

    <ResponseField name="application_name" type="string" required>
      Application name to retrieve events for. Valid values: access\_transparency, admin, calendar, chat, drive, gcp, gplus, groups, groups\_enterprise, jamboard, login, meet, mobile, rules, saml, token, user\_accounts, context\_aware\_access, chrome, data\_studio, keep
    </ResponseField>

    <ResponseField name="end_time" type="string">
      End of the time range in RFC 3339 format (e.g. 2010-10-28T10:26:35.000Z)
    </ResponseField>

    <ResponseField name="start_time" type="string">
      Beginning of the time range in RFC 3339 format (e.g. 2010-10-28T10:26:35.000Z)
    </ResponseField>

    <ResponseField name="max_results" type="integer">
      Maximum number of activity records to return per page (default 1000)
    </ResponseField>

    <ResponseField name="filters" type="string">
      Comma-separated event parameter filters (e.g. parameter\_name relational\_operator value)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "error": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Error"
        },
        "activities": {
          "items": {
            "additionalProperties": true,
            "type": "object"
          },
          "title": "Activities",
          "type": "array"
        }
      },
      "required": [
        "success"
      ],
      "title": "ListAllActivitiesOutput",
      "type": "object"
    }
    ```
  </Accordion>
</AccordionGroup>

## Limits & Quotas

* **Admin SDK Reports API quota**: 2,400 queries per minute per Google Workspace domain (default).
* **Per-user limit**: 480 queries per minute per user.
* **Error model**: non-2xx responses and timeouts are caught and returned as `success=False` + `error` rather than raising. Plan for retries on the agent side based on the error string.

## Related integrations

<CardGroup cols={3}>
  <Card title="Cal.com" href="/integrations/tools/cal-com" />

  <Card title="Canva" href="/integrations/tools/canva" />

  <Card title="ConvertAPI" href="/integrations/tools/convertapi" />
</CardGroup>

## Links

* [Google Workspace Admin](https://workspace.google.com)
