Integrations¶
Doable can talk to dozens of third-party SaaS products on your behalf. The agent uses these connections as tools β read your Notion docs to inform a build, post a Slack notification when a project is published, create a Linear ticket from a chat, etc.
Browsing the catalog¶
Workspace Settings β Integrations β Browse.
Categories (source):
| Category | Examples |
|---|---|
| AI / ML | OpenAI, Anthropic, Together, Replicate, Hugging Face, Cohere, Perplexity |
| Communication | Slack, Discord, Telegram, Microsoft Teams, Zoom |
| CRM / Marketing / Social | HubSpot, Mailchimp, ConvertKit, Twitter/X, LinkedIn, Buffer |
| Developer tools | GitHub, GitLab, Bitbucket, Linear, Jira, Sentry, Vercel, Netlify, Cloudflare |
| Finance / E-commerce | Stripe, PayPal, Shopify, Square, QuickBooks, Plaid |
| Productivity | Notion, Google Workspace (Drive, Docs, Sheets, Calendar), Airtable, Asana, Trello, Monday |
The catalog is data-driven β to add a new one, see Contributing β Add an Integration.
Connecting¶
- Click an integration.
- Click Connect. You'll be redirected through OAuth.
- Approve the requested scopes.
- You're returned to Doable with the connection saved.
The OAuth credentials are encrypted with your Doable instance's ENCRYPTION_KEY and stored in the database. The platform admins can see that you connected, never the raw token.
Per-workspace vs per-user¶
By default, integrations are workspace-scoped β once an admin connects Slack, every workspace member can use the Slack tools.
Some integrations support per-user mode (each member connects their own account). The integration's metadata (scope: 'user' vs scope: 'workspace') decides this.
Using integrations in chat¶
Once connected, the integration's tools appear in the agent's tool list automatically. You don't need to "switch on" anything β just ask the agent to do the thing:
- βPost a message in #releases on Slack: 'v0.4 is live'β
- βRead my Notion page titled 'Brand guidelines' and use it for the colors hereβ
- βOpen a Linear ticket assigned to me when this build failsβ
The agent picks the right tool based on the integration's exposed schema. Tool calls are policy-gated like any other β see Sandboxing.
Disconnecting¶
Workspace Settings β Integrations β Connected β Disconnect. Tokens are revoked (where the provider supports it) and removed from the DB.
Webhooks from integrations¶
Some integrations register webhooks back into Doable when you connect them, so the agent can react to events (new Stripe customer, new Linear comment, GitHub push). See Webhooks API.
Audit & limits¶
Every integration tool call is logged in Workspace Settings β Audit. You can:
- Filter by integration.
- Revoke specific tools without disconnecting the whole integration.
- See the response payloads (truncated) for every call.
Your own integration¶
Two paths:
- MCP connector β if you already have an MCP server, just register it under Connectors. No code changes needed in Doable.
- First-class integration β add a definition under
services/api/src/integrations/registry/. See Contributing β Add an Integration.