Technical docs

Integrations

Public reference generated from tech docs/integrations.md.

Overview

Support reference for OAuth integrations at `/integrations`.

What the page does

- Lets organization members connect external OAuth providers to their own account. - Current provider list has one option: `Google`. - Google OAuth is used by predefined OAuth MCPs for: - `gmail` - `google_calendar` - `google_drive`

Current `/integrations` page behavior

- Page title: `Integrations`. - Page description: `Connect external OAuth providers to your account.` - Header action: `Refresh`. - Each provider card shows: - provider name - description - connection status badge when connected - connected account ID when `oauth_user_id` is available - Current Google description: `Connect Gmail, Calendar, and Drive with read-only access.`

Connection states and actions

- Disconnected state: - primary action: `Connect` - Connected state: - status badge can show: - `Valid` - `Invalid` - `Unknown` - actions: - `Validate` - `Reconnect` - `Disconnect` - `Disconnect` asks for browser confirmation before removal. - Failed loads show `Failed to load integrations` with `Retry`.

OAuth callback flow in the frontend

- Callback route: `/integrations/[service]/callback` - Expected query params: - `code` - optional `error` - The callback page has three phases: - `Connecting integration…` - `Integration connected` - `Failed to connect integration` - On success it shows a toast, then redirects back to `/integrations` after about `800ms`. - On failure it shows `Back to integrations`.

Current API routes

- `GET /api/organizations/{organization_id}/integrations` - `POST /api/organizations/{organization_id}/integrations/{service}` - validates an existing stored OAuth connection - `GET /api/organizations/{organization_id}/integrations/{service}/auth_link` - `POST /api/organizations/{organization_id}/integrations/{service}/callback` - `DELETE /api/organizations/{organization_id}/integrations/{service}`

Backend and permission notes

- All integrations routes require an authenticated user and organization access. - Stored integration records are user-scoped inside the organization. - Listing returns only records for the current user. - Current service enum supports only `google`. - Validation updates the stored status and returns `is_valid` plus the updated record.

Relationship to MCPs

- `/mcps` and AI teammate `Connectors` tabs use the integrations state to warn when a required OAuth provider is not connected. - OAuth MCP warnings link users to `/integrations`. - Disconnecting Google does not remove OAuth MCP definitions from the UI, but those MCPs will not work until Google is reconnected.

Start building your AI team