> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xpander.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Tools & Connectors

> Browse the connector catalog, authenticate services, and configure tool behavior

Without tools, your agent can only talk. Tools and connectors let your agent **do things** like sending emails, searching the web, creating calendar events, etc.

Xpander has 2,000+ pre-built connectors for popular services like Slack, Google Drive, Salesforce, Jira, GitHub, and more.

You can sign in using OAuth or provide API keys to connect your account and let your agent use these services.

<img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/connectors-catalog.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=830a4de5b680e77f3ff24c48bb06524b" alt="Connector catalog showing available integrations with connection counts" width="1998" height="1207" data-path="images/guide/connectors-catalog.png" />

This page covers:

* [Create a new connection](#create-a-new-connection): authenticate an external service
* [Create a custom connector](#create-a-custom-connector): add your own APIs to the catalog
* [Add tools to your agent](#add-tools-to-your-agent): attach specific actions to an agent
* [Tool dependencies](#tool-dependencies): enforce tool execution order

## Create a New Connection

Before your agent can use a connector, you need to create a **connection**. This authenticates your account with the external service. Each connector can have multiple connections (e.g., different Slack workspaces or different AWS accounts).

<Steps>
  <Step title="Choose a Connector from the catalog">
    Open the [Agentic Connectors page](https://app.xpander.ai/connectors) and choose a connector you want to use (e.g., Calendly, Slack, Google Drive, Salesforce).

    This opens its **Connector Actions** list. Each action is a tool your agent can call once you've authenticated.

    You can see all actions grouped by category or as a flat list of API endpoints.

    <Tabs>
      <Tab title="Actions by group">
        <Frame>
          <img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/connector-actions-grouped.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=27441b1b28d19fecaf033c339172cf25" alt="Calendly connector actions organized by group" width="1998" height="1207" data-path="images/guide/connector-actions-grouped.png" />
        </Frame>
      </Tab>

      <Tab title="All actions">
        <Frame>
          <img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/connector-actions-all.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=0de8e9eab3aadd2fa9db89d9cdd76499" alt="Calendly connector showing all 43 individual API actions" width="1998" height="1207" data-path="images/guide/connector-actions-all.png" />
        </Frame>
      </Tab>
    </Tabs>
  </Step>

  <Step title="Click + Create new connection">
    In the top right of the Connector Actions page, click <kbd>+ Create new connection</kbd>.

    Enter connection details:

    * **Name**: Give the connection a descriptive name (e.g., "Marketing Team Slack")
    * **Access scope**:
      * **Personal** (only you can use it), or
      * **Organization** (anyone in your workspace can use it)

    <Frame>
      <img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/create-connection-dialog.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=9f90366d8cc2ee8151b7581ebc82bb94" alt="Connection creation dialog with authentication method options" width="1998" height="1207" data-path="images/guide/create-connection-dialog.png" />
    </Frame>
  </Step>

  <Step title="Choose an authentication method">
    Select the authentication method based on what the service supports:

    * Choose **No authentication** for public APIs that don't require credentials
    * Choose **API Key** for services that use API keys or tokens
    * Choose **OAuth 2.0** for services with own sign-in flow like Calendly, Slack, Google

    <Tabs>
      <Tab title="No authentication">
        1. Select the **No authentication** tab
        2. Click **Save**
      </Tab>

      <Tab title="API Key">
        <Frame>
          <img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/twilio-api-key.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=e82856c9e27b4f8283ce6336f61312bb" alt="API Key authentication dialog showing auth type and key input fields" width="3626" height="2190" data-path="images/guide/twilio-api-key.png" />
        </Frame>

        1. Select the **API Key** tab
        2. Enter your API key or token
        3. Choose the auth type:
           * **Authorization header**: Standard `Authorization` header
           * **Basic**: Base64 encoded credentials (`Authorization: Basic {encoded}`)
           * **Bearer**: `Authorization: Bearer {token}`
           * **In-URL**: Adds the key as a URL query parameter
           * **Custom**: Define your own header name and format
        4. Optionally add custom headers
        5. Click <kbd>Save</kbd>
      </Tab>

      <Tab title="OAuth 2.0">
        <Frame>
          <img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/create-connection-dialog.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=9f90366d8cc2ee8151b7581ebc82bb94" alt="OAuth 2.0 authentication dialog with Authorize Xpander.ai button" width="1998" height="1207" data-path="images/guide/create-connection-dialog.png" />
        </Frame>

        1. Click **OAuth2** and then <kbd>Authorize Xpander.ai</kbd>
        2. The service's consent screen opens in a new window
        3. Review the permissions and click **Approve**

        <Frame>
          <img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/oauth-consent-screen.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=4babd904a7a1e9472edcec25387334cd" alt="OAuth consent screen asking to connect Xpander AI to Calendly" width="1998" height="1207" data-path="images/guide/oauth-consent-screen.png" />
        </Frame>
      </Tab>
    </Tabs>

    <Tip>
      **Private OAuth.** If you want to use your own OAuth client ID and secret instead of xpander's shared credentials, contact support and we'll enable and manage private OAuth for you.
    </Tip>
  </Step>

  <Step title="Manage your connections">
    After creating a connection, you can view and manage all connections for a connector by clicking <kbd>connections</kbd> in the top right of the connector's detail page.

    <Frame>
      <img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/connections-list.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=0a6f3e9aff710d7c3e1d9d6fa0d003b4" alt="Connections modal showing saved connections with access scope and version" width="1998" height="1207" data-path="images/guide/connections-list.png" />
    </Frame>

    From here you can change the access scope, switch versions, or remove connections.
  </Step>
</Steps>

## Create a Custom Connector

If the catalog doesn't have what you need, for example, an internal tool API, you can create your own connector.

<Steps>
  <Step title="Click + Create new connector">
    In the top right of the Connectors Catalog page, click <kbd>+ Create new connector</kbd>.

    <Frame>
      <img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/connectors-catalog.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=830a4de5b680e77f3ff24c48bb06524b" alt="Connector catalog showing available integrations with connection counts" width="1998" height="1207" data-path="images/guide/connectors-catalog.png" />
    </Frame>
  </Step>

  <Step title="Provide connector details">
    * **Name**: A descriptive name for your connector
    * **Description**: Optional context about what this connector does
    * **OpenAPI specification or Postman collection**: Upload a spec file (up to 50 MB)
    * **API reference URL**: Optional link to your API documentation
    * **Server URL**: The base URL for your API

    <Frame>
      <img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/create-new-connector.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=e2a9244fe781cc6c89d76b5ada65db52" alt="Create new connector dialog with OpenAPI specification upload" width="1998" height="1207" data-path="images/guide/create-new-connector.png" />
    </Frame>
  </Step>

  <Step title="Upload and generate">
    Click <kbd>Create connector</kbd>. Xpander will turn each endpoint in your API spec into a tool your agent can call.
  </Step>

  <Step title="Authenticate and use">
    Your custom connector now appears in the catalog. Create a connection to authenticate it (see [Create a new connection](#create-a-new-connection) above), then add its actions to your agents.
  </Step>
</Steps>

## Add Tools to Your Agent

Once you've created connections, you can add tools to your agent. Tools come in two types: **Built-in tools** (pre-configured actions) and **Connector tools** (actions from authenticated services).

<Steps>
  <Step title="Open your agent's Tools tab">
    In the [Agents page](https://app.xpander.ai/agents), select your agent to open its Agent Studio.

    <Frame>
      <img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/agent-workbench.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=f83ec559a62112a6be3f7b7d7dd8c3cd" alt="Agent Studio showing the chat interface and configuration controls" width="3626" height="2190" data-path="images/guide/agent-workbench.png" />
    </Frame>

    Click the **gear** <Icon icon="gear" size={16} /> icon in the top right, then go to the **Tools** tab.

    <Frame>
      <img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/agent-tools.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=cf9a911472c0ec3537558767f48851d7" alt="Agent Tools tab showing built-in tools and Tools section" width="3626" height="2190" data-path="images/guide/agent-tools.png" />
    </Frame>
  </Step>

  <Step title="Enable built-in tools (optional)">
    Built-in tools are pre-configured actions that ship with every agent, no authentication or setup required.

    Click on any tool to toggle it on or off.
  </Step>

  <Step title="Add connector tools">
    Click <kbd>+ Add tools</kbd> to open the connector browser panel. Click <kbd>Connectors</kbd> to see the full catalog. Or use the search to find a specific connector.

    <Frame>
      <img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/select-connectors.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=6051274b0dcad4a349b838f5e05bd73a" alt="Add tools panel with the Connectors button highlighted" width="3626" height="2190" data-path="images/guide/select-connectors.png" />
    </Frame>

    <br />

    <Frame>
      <img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/workbench-tools-browse-connectors.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=a1bfa0bd5f43371c67e0c13772cf9857" alt="Connector catalog with search and categorized connectors" width="1998" height="1207" data-path="images/guide/workbench-tools-browse-connectors.png" />
    </Frame>
  </Step>

  <Step title="Select a connector and connection">
    Click a connector (e.g., Calendly) to see its available connections.

    <Frame>
      <img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/select-connection.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=fd78e916dd51871bbc36a985a1a22154" alt="Calendly connector showing available connections" width="3626" height="2190" data-path="images/guide/select-connection.png" />
    </Frame>

    If you haven't authenticated yet, you'll see **Create new connection**. Click it to set one up (see [Create a new connection](#create-a-new-connection) above).

    Click an authenticated connection to see its available actions.
  </Step>

  <Step title="Select specific tools">
    Check the boxes next to the actions you want. Finally, click <kbd>+ Add to agent</kbd> to attach them.

    <Frame>
      <img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/select-tool.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=fc2a645ae84bfa814e31ea9991a00a3a" alt="Selecting specific Calendly actions to add to the agent" width="3626" height="2190" data-path="images/guide/select-tool.png" />
    </Frame>

    <Tip>
      Fewer tools means fewer decisions for the model, which means better accuracy. Only attach the actions your agent actually needs.
    </Tip>
  </Step>

  <Step title="Verify and publish">
    The selected actions now appear under the **Tools** section in the config panel.

    <Frame>
      <img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/connector-added.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=9ad661d2dd1f2cd65c10d0839e3418d7" alt="Tools tab showing added Calendly connector tool" width="3626" height="2190" data-path="images/guide/connector-added.png" />
    </Frame>

    You'll see a banner: "Deploy changes to update tool configuration." Click **Publish** in the top right to push changes live, or test your draft configuration in the embedded chat first.
  </Step>
</Steps>

## Tool Dependencies

Without dependencies, an agent can call any tool in any order. Dependencies lock Tool B until the agent has called Tool A first, even if the user's request only mentions Tool B.

This is useful when one tool's output is a prerequisite for another to work correctly.

```mermaid theme={"dark"}
graph LR
    A["Get calendar availability"] --> B["Create calendar event"]
```

Even if the user says "book a meeting at 3pm," the agent must call **Get calendar availability** before it can call **Create calendar event**. This guarantees the agent checks for conflicts before booking.

### Create a dependency

Click <kbd>+ Manage dependencies</kbd> at the top of the Tools tab to open the agent graph, a visual canvas showing every tool attached to your agent as a node.

<img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/manage-dependencies.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=5f02539a74e85cb3c797e8eefc38a2af" alt="Manage dependencies modal showing the agent graph with tool nodes" width="1998" height="1207" data-path="images/guide/manage-dependencies.png" />

<Steps>
  <Step title="Select the dependent tool">
    Click the **top handle** of the tool that must wait (the downstream tool).
  </Step>

  <Step title="Drag to the prerequisite tool">
    Drag to the **bottom handle** of the tool it depends on (the upstream tool). The dependency is created automatically.
  </Step>

  <Step title="Chain additional dependencies">
    Repeat to build multi-step sequences. You can also create branching paths where multiple tools depend on the same prerequisite, or where a tool requires multiple prerequisites to complete first.
  </Step>
</Steps>

## Configure Max Tool Calls

Under **Advanced Configuration** in the Tools tab, you can limit the maximum number of tool calls per run.

<img src="https://mintcdn.com/xpanderai-099931d1/OGlJJ1lp1VY3af7I/images/guide/max-tools.png?fit=max&auto=format&n=OGlJJ1lp1VY3af7I&q=85&s=1b4dc121846ee677a7c89b97eb7f8b54" alt="Advanced Configuration section with the Max tool calls per run limit field" width="3626" height="2190" data-path="images/guide/max-tools.png" />

<Warning>
  Without a limit, an agent with many tools can enter runaway loops, calling tools indefinitely and consuming tokens. Set a cap appropriate for your use case.
</Warning>

## Next steps

<CardGroup cols={2}>
  <Card title="Knowledge Bases" icon="book" href="/guides/agents/knowledge-bases">
    Upload documents so your agent can search and cite them
  </Card>

  <Card title="AI Models & Intelligence" icon="brain" href="/guides/agents/ai-models-intelligence">
    Planning mode, reasoning mode, and model selection
  </Card>

  <Card title="Agent Configuration" icon="sliders" href="/guides/agents/agent-configuration">
    Full overview of all Agent Studio settings
  </Card>

  <Card title="Testing & Chat" icon="messages" href="/guides/agents/testing-chat">
    Test your tools and debug behavior
  </Card>
</CardGroup>
