Skip to content

Getting Started with Connectors

Connectors are integrations that let your AI agents interact with external services -- Slack, Gmail, Google Drive, Notion, Asana, Airtable, Vercel, Stripe, and more. Each connector provides a set of tools that agents can call during workflows or that you can invoke directly via the API and CLI.

Think of connectors as bridges between your Chainabit workspace and the services your team already uses.


How Connectors Work

  1. Install a connector instance in your workspace
  2. Authenticate by linking your account on the external service (OAuth, API key, etc.)
  3. Enable tools that the connector provides
  4. Use tools in agent workflows, call them from the API, or run them from the CLI

Each connector instance is scoped to your workspace. Multiple team members can share the same instance, or you can create separate instances for different use cases.


Quick Start

Prerequisites

  • A Chainabit account with a valid access token
  • An active workspace

Set your environment variables:

bash
export BASE_URL="https://api.chainabit.com/api/v1"
export TOKEN="your-access-token"

Step 1 -- Choose a Connector

Browse the available connectors:

bash
chainabit connectors list
bash
curl "$BASE_URL/connectors" \
  -H "Authorization: Bearer $TOKEN"
javascript
const response = await fetch(`${BASE_URL}/connectors`, {
  headers: { Authorization: `Bearer ${TOKEN}` },
});
const { data } = await response.json();
python
import requests

response = requests.get(
    f"{BASE_URL}/connectors",
    headers={"Authorization": f"Bearer {TOKEN}"},
)
data = response.json()["data"]

Step 2 -- Install a Connector Instance

Create a connector instance in your workspace:

bash
chainabit connectors install slack --name "Team Slack"
bash
curl -X POST "$BASE_URL/connectors/instances" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "connectorKey": "slack",
    "displayName": "Team Slack"
  }'
javascript
const response = await fetch(`${BASE_URL}/connectors/instances`, {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${TOKEN}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    connectorKey: 'slack',
    displayName: 'Team Slack',
  }),
});
const { data } = await response.json();
python
response = requests.post(
    f"{BASE_URL}/connectors/instances",
    headers={"Authorization": f"Bearer {TOKEN}"},
    json={"connectorKey": "slack", "displayName": "Team Slack"},
)
data = response.json()["data"]

Response 201 Created

json
{
  "data": {
    "id": "inst_abc123",
    "connectorKey": "slack",
    "displayName": "Team Slack",
    "status": "pending",
    "enabled": true,
    "createdAt": "2026-03-23T10:00:00Z"
  }
}

Save the instance id -- you will need it for authentication and tool execution.

Step 3 -- Authenticate

Most connectors use OAuth. Start the authorization flow:

bash
chainabit connectors auth inst_abc123
bash
curl -X POST "$BASE_URL/connectors/instances/inst_abc123/oauth/initiate" \
  -H "Authorization: Bearer $TOKEN"

Follow the returned URL to authorize access on the external service. Chainabit handles the token exchange automatically.

For connectors that use API keys or connection strings, store credentials directly:

bash
curl -X POST "$BASE_URL/connectors/instances/inst_abc123/credentials" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "credType": "api_key",
    "credentials": { "apiKey": "your-key" }
  }'

Step 4 -- Test the Connection

bash
chainabit connectors test inst_abc123
bash
curl -X POST "$BASE_URL/connectors/instances/inst_abc123/test" \
  -H "Authorization: Bearer $TOKEN"

Step 5 -- Use in Workflows or Call Directly

Once authenticated, the connector's tools are available to your agents. You can also execute tools directly:

bash
chainabit connectors exec inst_abc123 send_message \
  --input '{"channel": "#general", "text": "Hello from Chainabit!"}'
bash
curl -X POST "$BASE_URL/connectors/instances/inst_abc123/tools/tool_send_message/execute" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "input": {
      "channel": "#general",
      "text": "Hello from Chainabit!"
    }
  }'

Connector Catalog

The full catalog is grouped by family and mirrored in English and Turkish. Start with the Connector Catalog, then open the connector-specific pages you need.

ConnectorKeyCategoryAuth MethodDescription
SlackslackCommunicationOAuthSend messages, manage channels, search
GmailgmailCommunicationOAuthSend and read emails, manage drafts
Google Drivegoogle-driveProductivityOAuthManage files and folders
Google Calendargoogle-calendarProductivityOAuthManage calendar events
NotionnotionProductivityOAuth / API keySearch and manage pages, databases
CanvacanvaDesignOAuthCreate and export designs
SQL Databasesql-databaseDatabaseConnection stringQuery PostgreSQL or MySQL
MCP Servermcp-genericProtocolAPI key / BearerConnect to any MCP-compatible server

Connector Lifecycle

  • Pending -- Connector is installed but not yet authenticated
  • Active -- Connector is authenticated and ready to use
  • Error -- Health check failed or credentials expired
  • Inactive -- Connector has been manually disabled

Security

  • Credentials are encrypted at rest and never returned in API responses
  • OAuth tokens are refreshed automatically before they expire
  • Each connector instance is scoped to a single workspace
  • All tool executions are logged in the audit trail
  • You can revoke credentials at any time

Next Steps

Built with purpose.