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
Two options for Google services:
| Integration | Services | How it works |
|---|---|---|
| Service Account | Sheets, Docs, Drive | Share files with a dedicated email |
| OAuth | Gmail, Calendar, personal Drive | Sign in with your Google account |
Slack
| Integration | Services | How it works |
|---|---|---|
| OAuth (BYOK) | Messages, Channels, Events | Use your own Slack app |
Discord
| Integration | Services | How it works |
|---|---|---|
| OAuth (BYOK) | Messages, Servers, Bot Events | Use your own Discord bot |
X.com (Twitter)
| Integration | Services | How it works |
|---|---|---|
| OAuth (BYOK) | Tweets, Users, Timelines | Use your own X Developer app |
Google Cloud Platform
| Integration | Services | How it works |
|---|---|---|
| GCP (BYOK) | Vertex AI, BigQuery, Cloud Storage, Pub/Sub | Connect your own GCP project |
Microsoft 365
| Integration | Services | How it works |
|---|---|---|
| OAuth (BYOK) | Outlook, OneDrive, Teams, Calendar | Use your own Azure app registration |
Notion
| Integration | Services | How it works |
|---|---|---|
| OAuth (BYOK) | Pages, databases, workspace content | Use your own Notion integration |
Salesforce
| Integration | Services | How it works |
|---|---|---|
| OAuth (BYOK) | Leads, accounts, opportunities, cases | Use your own Salesforce connected app |
| Integration | Services | How it works |
|---|---|---|
| OAuth (BYOK) | Posts, comments, subreddits, messages | Use your own Reddit app |
Integration Types
| Type | Description | Example |
|---|---|---|
| OAuth | Sign in and authorize access | Google OAuth |
| OAuth (BYOK) | Use your own app credentials | Slack, Discord, X.com |
| Service Account | Dedicated email you share resources with | Google Service Account |
| Cloud (BYOK) | Connect your own cloud provider project | GCP 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
| Feature | Benefit |
|---|---|
| Token encryption | OAuth tokens encrypted at rest |
| Auto-refresh | We handle token expiration |
| Granular permissions | Request only the scopes you need |
| Revocable | Disconnect anytime from Settings |
Using in Apps
Apps declare integration requirements:
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: trueWhen you run the app:
- We check if you have the required integration connected
- If not, you'll be prompted to connect it
- Once connected, credentials are injected automatically
Connecting Integrations
Open Settings → Credentials → Integrations in the workspace (direct link).
Standard OAuth (Google)
- Open the integration from the list, or go directly to its detail page (for example
/settings/integrations/google) - Click Connect
- Complete the OAuth flow — you are redirected back to the detail page when authorization finishes
- 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)
- Create an app in the service's developer portal
- Configure OAuth redirect URLs and permissions
- Click Configure and enter your credentials
- Click Connect to authorize
- Done!
GCP WIF Integration
- Configure Workload Identity Federation in your GCP project
- Create a service account with required permissions
- Click Configure and enter your project details
- Click Connect to verify
- 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:
1https://app.inference.sh/settings/integrations/google2https://app.inference.sh/settings/integrations/google-sa3https://app.inference.sh/settings/integrations/gcpUse 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