Integrations Overview

Managed connections to external services.


Overview

Integrations are managed connections to external services. Instead of manually copying tokens, you authenticate through OAuth or service-specific flows.


Available Integrations

Google

Two options for Google services:

IntegrationServicesHow it works
Service AccountSheets, Docs, DriveShare files with a dedicated email
OAuthGmail, Calendar, personal DriveSign in with your Google account

Slack

IntegrationServicesHow it works
OAuth (BYOK)Messages, Channels, EventsUse your own Slack app

Discord

IntegrationServicesHow it works
OAuth (BYOK)Messages, Servers, Bot EventsUse your own Discord bot

X.com (Twitter)

IntegrationServicesHow it works
OAuth (BYOK)Tweets, Users, TimelinesUse your own X Developer app

Google Cloud Platform

IntegrationServicesHow it works
GCP (BYOK)Vertex AI, BigQuery, Cloud Storage, Pub/SubConnect your own GCP project

Microsoft 365

IntegrationServicesHow it works
OAuth (BYOK)Outlook, OneDrive, Teams, CalendarUse your own Azure app registration

Notion

IntegrationServicesHow it works
OAuth (BYOK)Pages, databases, workspace contentUse your own Notion integration

Salesforce

IntegrationServicesHow it works
OAuth (BYOK)Leads, accounts, opportunities, casesUse your own Salesforce connected app

Reddit

IntegrationServicesHow it works
OAuth (BYOK)Posts, comments, subreddits, messagesUse your own Reddit app

Integration Types

TypeDescriptionExample
OAuthSign in and authorize accessGoogle OAuth
OAuth (BYOK)Use your own app credentialsSlack, Discord, X.com
Service AccountDedicated email you share resources withGoogle Service Account
Cloud (BYOK)Connect your own cloud provider projectGCP Vertex AI, BigQuery

What is BYOK?

Bring Your Own Key (BYOK) means you create your own app/bot in the service's developer portal and use those credentials. This gives you:

  • Isolated events — only receive events from your workspaces/servers
  • Full control — configure permissions, webhooks, and triggers yourself
  • Your rate limits — not shared with other users
  • Custom branding — your bot name and avatar
  • Your billing — for cloud providers like GCP, use your own quotas and billing

Security

FeatureBenefit
Token encryptionOAuth tokens encrypted at rest
Auto-refreshWe handle token expiration
Granular permissionsRequest only the scopes you need
RevocableDisconnect anytime from Settings

Using in Apps

Apps declare integration requirements:

yaml
1integrations:2  - key: google.sheets3    description: Read sales data from Google Sheets45  - key: slack.channels.write6    description: Send notifications to Slack78  - key: gcp.vertex_ai9    description: Use Vertex AI models (Gemini, etc.)1011  - key: x.tweet.write12    description: Post automated updates13    optional: true

When you run the app:

  1. We check if you have the required integration connected
  2. If not, you'll be prompted to connect it
  3. Once connected, credentials are injected automatically

Connecting Integrations

Open Settings → Credentials → Integrations in the workspace (direct link).

Standard OAuth (Google)

  1. Open the integration from the list, or go directly to its detail page (for example /settings/integrations/google)
  2. Click Connect
  3. Complete the OAuth flow — you are redirected back to the detail page when authorization finishes
  4. Done!

From the CLI, belt integrations connect google starts the OAuth flow. Google Sheets/Docs/Drive also offers a service account connection — connect it from the workspace UI at /settings/integrations/google-sa or with belt integrations connect google-sa.

BYOK Integrations (Slack, Discord, X.com)

  1. Create an app in the service's developer portal
  2. Configure OAuth redirect URLs and permissions
  3. Click Configure and enter your credentials
  4. Click Connect to authorize
  5. Done!

GCP WIF Integration

  1. Configure Workload Identity Federation in your GCP project
  2. Create a service account with required permissions
  3. Click Configure and enter your project details
  4. Click Connect to verify
  5. Done!

See the GCP Setup Guide for detailed instructions.

Integration detail page

Each integration type has its own detail page at /settings/integrations/{slug}. Open it from the integrations list or link directly:

code
1https://app.inference.sh/settings/integrations/google2https://app.inference.sh/settings/integrations/google-sa3https://app.inference.sh/settings/integrations/gcp

Use the slug from GET /integrations/configs (for example google for Google OAuth, google-sa for the Sheets/Docs/Drive service account, gcp for GCP WIF/BYOK, slack for Slack). Provider names are globally unique — Google OAuth uses google, the managed service account uses google-sa, and GCP WIF uses gcp.

When not connected, the page shows setup steps and a single Connect button for that integration type.

When pending (awaiting connection), the detail page shows an awaiting connection badge and a banner prompting you to connect — for example when an agent needs the integration before it can run. Account details are hidden until OAuth or BYOK setup completes. The integrations list shows the same status badges (pending, expired, error) so you can spot broken connections without opening each provider.

When connected, the page shows:

  • Account — connected account identifier and display name
  • Permissions — granted OAuth scopes
  • Add permissions — request additional capabilities (redirects through OAuth re-authorization)
  • Disconnect — revoke the connection

When expired or errored, if token refresh fails or credentials are revoked, the page shows a warning badge (expired or error) and a banner:

  • Credentials expired — reconnect to restore access (refresh token missing or expired, for example after you revoked access in the provider's settings)
  • Connection error — the platform could not refresh credentials (provider outage, invalid grant, or similar)

When the API returns an error_message, it appears in the banner. Click Reconnect to start the OAuth flow again — the same flow as Connect, with previously granted scopes included in the OAuth consent screen. Account info and permissions stay visible so you can see what was previously connected. Use Disconnect to remove the broken connection entirely.

Apps and agents that require an expired or errored integration fail at validation (POST /integrations/check or POST /run with HTTP 412) with a reconnect prompt — they do not run with empty credentials.

OAuth callbacks redirect to the detail page after authorization completes.

Use direct links in setup flows, emails, or custom UIs when you know which integration type a user needs to connect or manage. Look up slug from GET /integrations/configs. → Integrations API — check requirements


Next

Google Service Account
Google OAuth
Google Cloud Platform
Slack
Discord
X.com
Microsoft 365
Notion
Salesforce
Reddit

we use cookies

we use cookies to ensure you get the best experience on our website. for more information on how we use cookies, please see our cookie policy.

by clicking "accept", you agree to our use of cookies.
learn more.