Integrations

Use integrations.
Don't build them.

Agent200 connectors handle each provider's API, its OAuth flow and its tokens, and keep every end user's connections separate. You choose the services, endpoints and scopes. Your agent reaches all of them through one SDK.

Your agent uses one SDK and one API key to reach the Agent200 connector layer, which communicates with external services such as Slack, Gmail, LinkedIn, Google Drive, Tavily and AI models on its behalf.
Your agent one SDK · one API key

Agent200 connector layer

  • Provider APIs
  • OAuth
  • Tokens
  • Permissions
  • Per-user connections
  • Slack Connector
  • Gmail Connector
  • LinkedIn Connector
  • Google Drive Connector
  • Tavily Paid service
  • AI models Model access

Six of the services Agent200 connects to. See the full catalog.

Connectors

The provider-specific work, already done.

A connector is Agent200's integration with one external service. It lets Agent200 communicate with that service on behalf of your agent, so retrieving Slack messages never means implementing Slack's HTTP API yourself.

You configure the capability. When it is invoked, Agent200 talks to the provider and retrieves the information.

Depending on the service, a connector may handle

  1. API authentication

    Authenticates every request to the provider the way that provider expects.

  2. OAuth authorization requirements

    Knows what the service requires before it will release a user's data, and runs that authorization flow.

  3. Access to supported endpoints

    Exposes the provider operations Agent200 supports. You decide which of them your agent may use.

  4. Request construction

    Builds each request in the provider's format and communicates with its API.

  5. Token retrieval and refresh

    Fetches the right end user's tokens for each call and refreshes them where the provider allows it.

  6. Data retrieval or manipulation

    Reads data and, where you permit it, performs write operations through the provider's API.

  7. Returning results

    Hands the API result back to Agent200's execution environment, where the model or your workflow can use it.

Services

What your agent can reach.

Slack and Gmail appear in most examples on this site because they are familiar. They are two entries in a longer list, and every service below is reached through the same SDK.

Connectors to your users' accounts

Each end user authorizes their own account through managed OAuth. No connector fee is intended for operations that carry no provider cost.

Communication
  • Spike
  • Slack
  • Microsoft Teams
Email and calendar
  • Gmail
  • Outlook
  • Google Calendar
Files and knowledge
  • Google Drive
  • OneDrive
  • Notion
CRM and sales
  • HubSpot
  • Salesforce
  • LinkedIn
Developer tools
  • GitHub
  • GitLab
  • Jira
  • Linear

Models and paid services

Reached with your Agent200 API key and billed through Agent200. No separate provider keys or accounts.

Search and data
  • Tavily
  • Exa
  • Firecrawl
AI models
  • OpenAI
  • Anthropic
  • Google

The operations available for a service depend on what its API offers and on the scopes your users grant. Need a service that is not listed yet? Tell us which one.

Request a connector How model and service usage is billed

Connectors and tools

How a connector becomes a tool your model can call.

The two are related but different. A model never sees a provider's HTTP API. It sees a tool: a name, a description of what it does, and the inputs it accepts.

  1. Connector

    Slack

    Access to an external service.

  2. Endpoint

    Search messages

    One supported API operation you have enabled.

  3. Tool

    slack_search

    A capability the model can discover and invoke.

A tool can expose

  • A single endpoint

    slack_search

    One API operation, described so a model knows when to use it and which inputs it takes.

    • Search messages
  • Several endpoints

    customer_context

    Operations from the same service, or from different ones, behind one name.

    • Customer details
    • Related emails
    • Slack conversations
  • A developer-defined workflow

    brief

    Your own sequence of operations with a structured result, configured once and referenced by name.

    • Slack · messages
    • Gmail · emails
    • Combine results

Illustrative customer_context shows the shape of a multi-endpoint tool: CRM details, related emails and Slack conversations behind one name.

See how workflows become tools

What the model receives

tool definition
Conceptual example
A conceptual tool definition for slack_search: a name, a description and an input with a query string.
{
  "name": "slack_search",
  "description": "Search the user's Slack messages.",
  "input": {
    "query": "string"
  }
}

The model decides whether to call the tool. When it does, Agent200 executes the underlying Slack request through the connector and returns the result to the model.

Permissions

Read, write, and exactly as far as you allow.

Connectors are not limited to retrieving information. Agent200 is intended to support write operations too, such as sending a message, subject to the endpoints a provider offers, the user's authorization and the permissions you configure.

Access is decided at three levels

  1. You configure

    Which services, endpoints and OAuth scopes your app is allowed to request or execute.

  2. The end user authorizes

    Access to their own external account, through the provider's consent screen.

  3. The provider enforces

    The permissions it actually granted, on every request made through its API.

A tool only executes when the necessary permissions and authorization are both in place.

Example permission configuration. Slack: search messages and retrieve messages are allowed; send messages and delete messages are blocked. Gmail: read emails is allowed; send emails and delete emails are blocked.
Endpoint permissions Concept

Slack

  • Search messages read Allowed
  • Retrieve messages read Allowed
  • Send messages write Blocked
  • Delete messages write Blocked

Gmail

  • Read emails read Allowed
  • Send emails write Blocked
  • Delete emails write Blocked

This configuration determines what Agent200 may expose to the model or execute for your app. You also select the OAuth scopes each connector requests.

Illustrative The panel above shows one such configuration: allow the reads your agent needs, block the writes it does not. Set each permission in the dashboard, or through the SDK where it is supported.

Managed OAuth

Your API key can't read a user's inbox. Their consent can.

Private data needs the end user's authorization, whatever key your app holds. Agent200 runs that authorization for supported services, so you don't implement OAuth once per provider.

Handled by Agent200

  • Authorization flow
  • Callbacks
  • Token storage
  • Token refresh
  • User-to-account mapping
Connection · user_123 → Gmail

Step 1 of 6

The agent requests Gmail access

Agent200 checks the end user's connection status.

End user: Summarize my recent emails.

Your agent calls Agent200

The request runs for user_123 and needs a Gmail capability.

Checking the Gmail connection Checking

Step 2 of 6

Authorization is required

Agent200 provides an authorization URL, or starts the hosted authorization experience.

Gmail is not connected

Authorization required

user_123 has not authorized a Gmail account in this project yet.

Returned to your app

Connect Gmail an authorization URL to present to the end user

Step 3 of 6

The end user authorizes access

They open the link and are redirected to the provider's OAuth page.

Email provider · OAuth consent page

Productivity Agent wants to access your email account

Read your emails scope chosen by the developer

Illustration. The real consent screen is the provider's own, and the end user decides there.

Step 4 of 6

The provider redirects to Agent200

The OAuth callback is handled on an Agent200-controlled domain.

Agent200-controlled domain · OAuth callback
Provider Agent200

The provider redirects back with the result of the authorization. There is no callback endpoint for you to build, host or keep running.

Step 5 of 6

Agent200 stores the credentials

The authorized connection is associated with that end user.

user_123 is linked to Gmail account A

  • Credentials stored by Agent200
  • Tokens refreshed where applicable
  • Associated with this end user in your project

Step 6 of 6

The capability becomes available

Execution continues through the supported flow, or you resume the request.

Gmail is connected

200 OK

The Gmail capability can now execute for user_123, within the scopes that were granted.

Agent: Here is a summary of your recent emails…

When authorization is missing, you choose how to ask.

Agent200 is intended to support two approaches. One keeps the moment inside your product; the other hands it to Agent200.

Approach A

Authorization-required response

Agent200 responds that authorization is required and includes a URL you can present to the end user. You control how the request is presented, in your own interface and your own words, and when execution resumes.

Approach B

Hosted authorization experience

Agent200 provides a hosted authorization experience that can resume the requested operation after the end user has authorized access, so there is less for you to build around the interruption.

Planned The hosted flow returns to Agent200 after the user authorizes and resumes the interrupted run, so your code does not have to retry it.

User isolation

Every connection belongs to one end user.

Connections are stored per end user inside your project. When you invoke Agent200 for user_123, it uses that user's accounts and must never reach for anyone else's. This mapping is the foundation of the platform's identity model.

A request made for user_123 uses only the Slack and Gmail accounts that user_123 authorized. The connections that belong to user_456 in the same project are not used.

Request from your app

agent200.user("user_123").run({ … })

  1. 01 The request names the end user it runs for.
  2. 02 Agent200 looks up that user's connections in your project.
  3. 03 Tools execute with those credentials, and no one else's.
Conceptual interface

Developer project

  • user_123 Used for this request
    • Slack account A resolved for this request
    • Gmail account A resolved for this request
  • user_456 Not used
    • Slack account B isolated from this request
    • Gmail account B isolated from this request

Authorized doesn't mean unlimited.

Agent200 cannot give an agent access to information the external service has not authorized. What an agent can actually do is the narrowest of four things.

  1. The end user

    Only what they granted on the provider's consent screen.

  2. Your configuration

    Only the services, endpoints and scopes you enabled.

  3. The provider's API

    Only the operations the service actually exposes.

  4. Provider restrictions

    Any quotas, policies or limits the provider applies.

How Agent200 approaches security and data handling

200 OK

Give your agent
its first connection.

Choose the services, endpoints and scopes. Agent200 handles the provider APIs, the OAuth flow and every end user's connections.