Build
Connectors
A Connector is a static, code-first definition an Agent's tools can call through — the same 'declared, not faked' convention as the Reddit channel adapter: planned connectors are visible in the catalog but callConnector() hard-fails with a clear message until they're wired.
Overview
4 connectors are wired for real today (no vendor OAuth-app registration required); 11 more are declared and on the roadmap. All go through one callConnector() chokepoint, permission-checked (manage_ai) and rate-limited per connector.
Auth types
oauth2 — OAuth 2.0api_key — API keywebhook_secret — Webhook secretnone — None (uses workspace mailer)REST connector
The generic rest_api connector is the one with no fixed vendor domain — you supply a base URL (validated once at connect time via validateConnectorBaseUrl()) and an API key/bearer token. Every other connector locks its calls to a static approvedDomainPatterns allowlist, never a wildcard.
OAuth connectors
Google Calendar, Slack, Notion, Jira, HubSpot, Salesforce, Shopify and Zapier are declared with their scopes and domain allowlist, but require a vendor OAuth app registration (client id/secret, redirect URI) outside this codebase before they flip to available.
Webhook connectors
The webhook connector triggers one of the workspace's existing outgoing webhooks on demand from an Agent — reusing the same webhook system covered on the Webhooks page, not a second one. Zapier and n8n are the same shape, declared but not yet wired.
Full registry
| Connector | Category | Auth | Status |
|---|---|---|---|
| REST API | Developer | api_key | Available |
| Webhook (Outgoing) | Automation | webhook_secret | Available |
| Communication | none | Available | |
| GitHub | Developer | api_key | Available |
| Google Calendar | Productivity | oauth2 | Planned |
| Slack | Communication | oauth2 | Planned |
| Notion | Productivity | oauth2 | Planned |
| Jira | Productivity | oauth2 | Planned |
| HubSpot | CRM | oauth2 | Planned |
| Salesforce | CRM | oauth2 | Planned |
| Stripe | Payments | api_key | Planned |
| Shopify | Commerce | oauth2 | Planned |
| WooCommerce | Commerce | api_key | Planned |
| Zapier | Automation | webhook_secret | Planned |
| n8n | Automation | webhook_secret | Planned |
Built-in tools
call_rest_connector, github_request, send_email and trigger_webhook are thin wrappers over callConnector(), each one ToolDefinition file plus a registry line — zero changes to runTool()'s permission/audit/error-handling contract. See Tool Calling.
Examples
An Agent calling the GitHub connector
// Agent tool call, resolved by runTool() → callConnector("github", ...)
{
"tool": "github_request",
"args": { "method": "GET", "path": "/repos/acme/widgets/issues" }
}