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

# Integration Capabilities

> Full reference for all 25+ Bothive native integration capabilities.

<div className="hero-container">
  <h1 className="hero-title">
    Integration Capabilities
  </h1>

  <p className="hero-subtitle">
    Every native integration, capability name, and what it does — your complete reference.
  </p>
</div>

## How to use capabilities in HiveLang

```hivelang theme={null}
bot MyBot {
  capabilities {
    github.createIssue      // One capability per line
    gmail.readEmail         // Use dot notation: integration.action
    slack.postMessage
    billing.getSubscription
  }
}
```

Each capability name in the `capabilities { }` block maps directly to an integration action Bothive manages — including auth, retries, and schema normalization.

## GitHub

| Capability           | Description                          | Type  |
| -------------------- | ------------------------------------ | ----- |
| `github.createIssue` | Create a new issue in a repo         | Write |
| `github.getIssue`    | Read a specific issue                | Read  |
| `github.updateIssue` | Update issue title, body, labels     | Write |
| `github.closeIssue`  | Close an issue                       | Write |
| `github.getPRDiff`   | Get the full diff of a pull request  | Read  |
| `github.addComment`  | Post a comment on a PR or issue      | Write |
| `github.labelPR`     | Add or remove PR labels              | Write |
| `github.listFiles`   | List files changed in a PR           | Read  |
| `github.readFile`    | Read file contents at a path and ref | Read  |
| `github.searchCode`  | Search code across repos             | Read  |
| `github.createPR`    | Open a new pull request              | Write |

## Gmail

| Capability           | Description                          | Type  |
| -------------------- | ------------------------------------ | ----- |
| `gmail.readEmail`    | Read emails by label, query, or ID   | Read  |
| `gmail.getThread`    | Read a full conversation thread      | Read  |
| `gmail.searchEmails` | Search emails by subject/body/sender | Read  |
| `gmail.createDraft`  | Create a draft (not sent)            | Write |
| `gmail.sendEmail`    | Send an email immediately            | Write |
| `gmail.applyLabel`   | Add or remove Gmail labels           | Write |
| `gmail.markRead`     | Mark emails as read                  | Write |
| `gmail.deleteEmail`  | Move email to trash                  | Write |

## Slack

| Capability          | Description                         | Type  |
| ------------------- | ----------------------------------- | ----- |
| `slack.postMessage` | Post a message to a channel or DM   | Write |
| `slack.readChannel` | Read recent messages from a channel | Read  |
| `slack.uploadFile`  | Upload a file to Slack              | Write |
| `slack.getUsers`    | List workspace users                | Read  |
| `slack.setStatus`   | Set bot status message              | Write |

## Google Calendar

| Capability                          | Description                          | Type  |
| ----------------------------------- | ------------------------------------ | ----- |
| `google_calendar.createEvent`       | Create a calendar event with invites | Write |
| `google_calendar.getEvents`         | List events for a date range         | Read  |
| `google_calendar.checkAvailability` | Check free/busy for attendees        | Read  |
| `google_calendar.updateEvent`       | Update event details                 | Write |
| `google_calendar.deleteEvent`       | Cancel/delete an event               | Write |

## Notion

| Capability             | Description                       | Type  |
| ---------------------- | --------------------------------- | ----- |
| `notion.createPage`    | Create a new page in a workspace  | Write |
| `notion.readPage`      | Read an existing page by ID       | Read  |
| `notion.updatePage`    | Update page content or properties | Write |
| `notion.queryDatabase` | Query a Notion database           | Read  |
| `notion.createRecord`  | Add a record to a Notion database | Write |
| `notion.searchPages`   | Search pages by title             | Read  |

## Payments

| Capability                   | Service       | Description                            | Type |
| ---------------------------- | ------------- | -------------------------------------- | ---- |
| `stripe.getCustomer`         | Stripe        | Get customer profile and subscriptions | Read |
| `stripe.getInvoice`          | Stripe        | Read invoice details                   | Read |
| `stripe.listInvoices`        | Stripe        | List recent invoices for a customer    | Read |
| `paystack.verifyTransaction` | Paystack      | Verify a transaction by reference      | Read |
| `paystack.getSubscription`   | Paystack      | Get subscription status                | Read |
| `paystack.getCustomer`       | Paystack      | Get customer profile                   | Read |
| `lemonsqueezy.getOrder`      | Lemon Squeezy | Read order details                     | Read |
| `lemonsqueezy.getLicense`    | Lemon Squeezy | Get license key status                 | Read |

## Telegram

| Capability              | Description                | Type  |
| ----------------------- | -------------------------- | ----- |
| `telegram.sendMessage`  | Send a message to a chat   | Write |
| `telegram.getUpdates`   | Get recent message updates | Read  |
| `telegram.sendPhoto`    | Send an image              | Write |
| `telegram.sendDocument` | Send a file                | Write |
| `telegram.pinMessage`   | Pin a message in a group   | Write |

## Developer Tools

| Capability              | Service  | Description                   | Type  |
| ----------------------- | -------- | ----------------------------- | ----- |
| `jira.createIssue`      | Jira     | Create a new Jira issue       | Write |
| `jira.getIssue`         | Jira     | Read a Jira issue             | Read  |
| `jira.updateIssue`      | Jira     | Update issue status, assignee | Write |
| `linear.createIssue`    | Linear   | Create a Linear issue         | Write |
| `linear.getIssues`      | Linear   | Query issues by project       | Read  |
| `airtable.getRecords`   | Airtable | Read records from a base      | Read  |
| `airtable.createRecord` | Airtable | Add a new record              | Write |

## AI Capabilities

| Capability     | Description                             |
| -------------- | --------------------------------------- |
| `ai.generate`  | Generate text with the configured model |
| `ai.classify`  | Classify input into named categories    |
| `ai.summarize` | Summarize long text                     |
| `ai.extract`   | Extract structured data from text       |
| `ai.translate` | Translate text to another language      |

## Using capabilities safely

<AccordionGroup>
  <Accordion title="Read vs Write capabilities">
    Read capabilities (fetching data) are low-risk. Write capabilities (creating, updating, deleting) should be added carefully and tested thoroughly. For high-risk writes, add instructions requiring user confirmation before calling.
  </Accordion>

  <Accordion title="Minimum required capabilities">
    Only add the capabilities an agent actually needs. Each capability in the list is available to the model — an agent with 20 capabilities has more surface area for wrong tool selection than one with 4.
  </Accordion>

  <Accordion title="Custom capabilities via custom integrations">
    If the capability you need isn't listed here, build it as a [custom integration](./custom-integrations). Custom capabilities appear in the same `capabilities { }` block and behave identically to native ones.
  </Accordion>
</AccordionGroup>

## Next reads

<CardGroup cols={3}>
  <Card title="Custom Integrations" icon="wrench" href="./custom-integrations" className="glass-effect" />

  <Card title="HiveLang v5" icon="code" href="../concepts/hivelang" className="glass-effect" />

  <Card title="Build Your First Agent" icon="hammer" href="./build-your-first-agent" className="glass-effect" />
</CardGroup>
