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

# Connections

> Connect external tools and APIs to your workspace so CodeRabbit Agent for Slack can access issue trackers, documentation, observability, and custom integrations.

export const Hint = ({type, children, headline, tip, href, cta}) => {
  const TIPS = {
    learnings: {
      headline: "Learnings",
      tip: "Review preferences CodeRabbit learns from your chat conversations and applies automatically to future reviews.",
      cta: "Learn about Learnings",
      href: "/knowledge-base/learnings",
      content: "Learnings"
    },
    walkthrough: {
      headline: "PR Walkthrough",
      tip: "A structured comment posted by CodeRabbit at the top of every pull request, summarizing changes, sequence diagrams, review effort, and more.",
      cta: "Learn about PR Walkthroughs",
      href: "/pr-reviews/walkthroughs",
      content: "Walkthrough"
    },
    "finishing-touches": {
      headline: "Finishing Touches",
      tip: "Post-review agentic actions (Autofix, writing docstrings or unit tests, and more) you trigger from a PR comment or a checkbox in the Walkthrough.",
      cta: "See all Finishing Touches",
      href: "/finishing-touches",
      content: "Finishing Touches"
    },
    "coding-plan": {
      headline: "Coding Plan",
      tip: "A detailed, codebase-aware implementation plan CodeRabbit generates from an issue or description, ready to hand off to any coding agent.",
      cta: "Learn about Coding Plans",
      href: "/plan",
      content: "Coding Plan"
    },
    "knowledge-base": {
      headline: "Knowledge Base",
      tip: "The collected context sources CodeRabbit draws on during reviews: Learnings, Code Guidelines, issue trackers, connected MCP servers, and cross-repo analysis.",
      cta: "Explore the Knowledge Base",
      href: "/knowledge-base",
      content: "Knowledge Base"
    },
    "path-instructions": {
      headline: "Path Instructions",
      tip: "Custom review rules that only apply to files matching a glob pattern, e.g. 'src/controllers/**'.",
      cta: "Configure path instructions",
      href: "/configuration/path-instructions",
      content: "Path Instructions"
    },
    "change-stack": {
      headline: "Change Stack",
      tip: "An improved code inspection interface that reorganizes a pull request from a flat file list into a structured, layer-by-layer walkthrough with range-specific summaries and diagrams when useful.",
      cta: "Learn about Change Stack",
      href: "/pr-reviews/change-stack",
      content: "Change Stack"
    },
    scope: {
      headline: "Scope",
      tip: "A named set of repositories, connections, and spend limits that controls what CodeRabbit Agent can access in a given Slack conversation.",
      cta: "Learn about Scopes",
      href: "/slack-agent/scopes",
      content: "Scope"
    },
    "coderabbit-agent": {
      headline: "CodeRabbit Agent for Slack",
      tip: "An AI agent built into Slack that investigates issues, generates implementation plans, and opens pull requests right from the Slack threads.",
      cta: "Explore CodeRabbit Agent",
      href: "/slack-agent",
      content: "CodeRabbit Agent"
    },
    "configuration-inheritance": {
      headline: "Configuration Inheritance",
      tip: "A setting that merges configuration values across multiple levels — repository YAML, central YAML, and UI settings — instead of using only the highest-priority source.",
      cta: "Learn about Configuration Inheritance",
      href: "/configuration/configuration-inheritance",
      content: "Configuration Inheritance"
    }
  };
  const defaults = TIPS[type] || ({});
  return <Tooltip headline={headline ?? defaults.headline} tip={tip ?? defaults.tip} cta={cta ?? defaults.cta} href={href ?? defaults.href}>
      {children ?? defaults.content}
    </Tooltip>;
};

Connections give CodeRabbit Agent for Slack access to external tools like issue trackers, documentation, observability dashboards, MCP servers and custom APIs. Repository-provider credentials separately give the Agent access to repositories on supported providers. You configure both at the workspace level and assign them to the <Hint type="scope">scopes</Hint> that need them.

All signed-in users can open the Connections page from **Slack Settings** in the [web app](https://app.coderabbit.ai). Creating, editing, reconnecting, or deleting a connection requires either workspace admin access or assigned scope-admin access.

## How connections are organized

Each service type (Jira, Linear, Notion, Sentry, Google Drive, etc.) is a **connector**. A **connection** is a specific account or credential under that connector. You can create multiple connections for the same connector if different teams need separate accounts or permissions.

Repository-provider credentials are distinct from these third-party SaaS connections. They authorize repository access for a supported provider and are assigned to scopes alongside the repositories that the Agent can use.

## Repository-provider credentials

Add repository-provider credentials from the Connections page, then assign them to the Base Scope or another scope. CodeRabbit validates each credential before it can be used for repository access.

GitHub writes started from Slack use the organization's configured authoring identity, the CodeRabbit bot, by default. For a live Slack request, a user can explicitly ask CodeRabbit to act "as me" or "use my GitHub identity" to override that default for the current run only. If the required GitHub App user connection is missing, CodeRabbit prompts the user to connect it, then resumes the same request with the user-authoring choice preserved.

User-authored pull request creation and pull request reviews are limited to GitHub.com. Pull request reviews can approve, request changes, or comment.

You can manage a provider credential throughout its lifecycle:

<Tabs>
  <Tab title="Add and validate">
    Enter the provider's required credential values and save them. CodeRabbit validates the credential before making it available for scope assignment.
  </Tab>

  <Tab title="Replace">
    Replace a stored credential when its token expires, its permissions change, or a different account should provide repository access. The provider-owned Base Scope credential can be replaced, but it cannot be deleted.
  </Tab>

  <Tab title="Assign">
    Assign a validated credential to the [Base Scope or a child scope](/slack-agent/scopes). Child scopes can inherit the Base Scope credential or select another stored credential for that provider.
  </Tab>

  <Tab title="Deactivate">
    Deactivating a stored GitLab, Bitbucket, or Azure DevOps credential requires global admin access. Before deactivating a credential, update any scopes that depend on it so they retain usable repository access.
  </Tab>
</Tabs>

## Supported connection categories

CodeRabbit Agent groups connections by category in the connection catalog:

| Category                | Services                                                                             |
| ----------------------- | ------------------------------------------------------------------------------------ |
| Docs & Knowledge        | Notion, Google Drive, OneDrive                                                       |
| Issue tracking          | Jira, Linear, Asana                                                                  |
| Observability           | Datadog, Sentry                                                                      |
| Incident Management     | PagerDuty                                                                            |
| Development & DevOps    | GitHub, GitLab, GitLab Self-Hosted, Bitbucket Cloud, Azure DevOps, CircleCI, Jenkins |
| Product Analytics       | PostHog, Google Analytics, Google Ads, Google Search Console, Reddit Ads             |
| Marketing & advertising | Semrush                                                                              |
| Customer Data           | Customer.io                                                                          |
| CRM                     | HubSpot, Salesforce                                                                  |
| Support                 | Zendesk, Fin (formerly Intercom), Pylon                                              |
| Sales Intelligence      | Amplemarket, Gong                                                                    |
| Design                  | Figma, Canva                                                                         |
| Infrastructure          | AWS, GCP                                                                             |
| Custom                  | MCP servers and APIs                                                                 |

The exact catalog is product-defined and evolving. The important model is that connections are created once at the workspace level and then selected where needed.

## Add a connection

<Steps>
  <Step title="Open Connections in the web app">
    Go to [app.coderabbit.ai/slack](https://app.coderabbit.ai/slack), open **Connections**, and click **Add connection**. To add or edit a connection, you need either workspace admin access (Slack admin, workspace owner, or `cr_admin` holder) or assigned scope-admin access.
  </Step>

  <Step title="Pick a connector">
    Connectors are grouped under always-visible product categories, with every non-empty category shown at once. Search filters connectors by name while keeping matching results under their category headings. Select the service you want to connect. If your tool is not listed, choose **Custom** to connect it through an MCP server, API endpoint, or other custom integration.
  </Step>

  <Step title="Name and describe the connection">
    Give the connection a **name** (required, at least 2 characters) and an optional **description**. The name defaults to something like "Jira OAuth RO" but you can change it to anything that helps your team identify this connection.
  </Step>

  <Step title="Authenticate">
    The form shows one or more authentication tabs depending on what the connector supports:

    <Tabs>
      <Tab title="OAuth">
        1. Fill in any required fields (such as a site URL for Jira, customer IDs for Google Ads, etc.)
        2. **Save** the connection first
        3. Click **Connect \[Service]** to open the provider's authorization page in a new tab
        4. Authorize CodeRabbit in the provider
        5. You are redirected back, and the form shows a "Connected" status with the account email and granted scopes
      </Tab>

      <Tab title="API key / Credentials">
        Paste a token, API key, or structured credentials depending on the service:

        * **Most services**: A single API key or token field
        * **Amplemarket**: API key from Amplemarket Settings > API
        * **Semrush**: Dedicated read-only Semrush v4 API key
        * **Jira**: Atlassian account email + API token
        * **Gong**: Access key + access key secret
        * **Datadog**: API key + a site selector (e.g., datadoghq.com vs datadoghq.eu)

        Credential values are masked by default and stored securely.
      </Tab>

      <Tab title="MCP server">
        For custom tool integrations using the Model Context Protocol:

        1. Enter a **server name** and **server URL** (HTTP, HTTPS, or WebSocket)
        2. Choose a **transport type**: SSE, Streamable HTTP, or WebSocket
        3. Add an **auth header name** and **auth header value** if the server requires authentication
        4. Click **Discover tools** to check the server connection and load the tools it exposes. This discovery step is the connectivity check for MCP connections. If you change the server target later, click **Refresh tools** to discover tools again; this resets the previous tool selection.
        5. Select at least one tool CodeRabbit is allowed to use. MCP connections are deny-by-default, so **Save** stays disabled until you select a tool.

        See [MCP servers](/integrations/mcp-servers) for more on setting up MCP integrations.
      </Tab>
    </Tabs>
  </Step>

  <Step title="Test the connection">
    Click **Test** to validate that the credentials work. This is available for most connectors after saving. If the test fails, check your credentials or URL fields and try again.

    MCP server connections use the tool-discovery step in **Authenticate** as their connectivity check instead of the generic **Test** action. The **Test** action does not appear during MCP setup.
  </Step>

  <Step title="Save">
    Click **Save** to create the connection at the workspace level. The connection is now available but not yet assigned to any scope.
  </Step>

  <Step title="Assign to a scope">
    Go to [Scopes](/slack-agent/scopes) and add the new connection to the Base Scope or a scope. The connection does nothing until at least one scope includes it.
  </Step>
</Steps>

## Connector-specific notes

Some connectors require additional fields during setup:

| Connector             | Extra configuration                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Amplemarket           | API key. CodeRabbit uses the fixed Amplemarket API host, `https://api.amplemarket.com`, for connection testing and Agent access.                                                                                                                                                                                                                                                                                                                                       |
| Semrush               | Read-only access only. Direct connections use a Semrush v4 API key and default to `api.semrush.com`. Hosted MCP uses Semrush's canonical endpoint with OAuth or API-key authentication and its documented read-only tool set. Connection testing reads one owned project and may consume Semrush API units. Access depends on the customer's Semrush plan and key permissions.                                                                                         |
| Jira                  | Site URL (required for both OAuth and credential modes). The Jira MCP preset uses Atlassian's `https://mcp.atlassian.com/v1/mcp/authv2` endpoint.                                                                                                                                                                                                                                                                                                                      |
| Sentry                | Base URL (sentry.io or a regional variant)                                                                                                                                                                                                                                                                                                                                                                                                                             |
| PagerDuty             | Base URL (api.pagerduty.com or regional) and API key for direct REST access. PagerDuty also supports managed webhook connections for Automations. A user with permission to manage workspace integrations must connect it with a read/write General Access API key or a User Token whose user can manage webhook subscriptions. OAuth and MCP are not available for managed webhook setup; the resulting subscription is account-wide and shared across the workspace. |
| Datadog               | Site selector (datadoghq.com, datadoghq.eu, etc.)                                                                                                                                                                                                                                                                                                                                                                                                                      |
| Google Ads            | Customer ID (required) and optional Login Customer ID for manager-account access                                                                                                                                                                                                                                                                                                                                                                                       |
| Google Search Console | Search Console property, such as a URL-prefix property or domain property                                                                                                                                                                                                                                                                                                                                                                                              |
| Reddit Ads            | Optional Reddit Ads account ID when the connection should target one account                                                                                                                                                                                                                                                                                                                                                                                           |
| Google Drive          | Service account JSON upload when using service account mode                                                                                                                                                                                                                                                                                                                                                                                                            |
| Customer.io           | Account region (`US` or `EU`) and either a Customer.io App API key for direct API access or the regional Customer.io MCP server URL                                                                                                                                                                                                                                                                                                                                    |
| Linear                | Policy mode choice: read-only or read-write (OAuth only; read-write is required to post comments and results). Enable **Manage Linear webhooks for automations** during setup to create a separate authorization with `read`, `write`, and `admin` access.                                                                                                                                                                                                             |
| AWS                   | Account ID (12 digits) + region                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| Jenkins               | Public HTTPS controller URL, optional job or folder path, Jenkins username, and API token. Access is read-only, and the controller context path is preserved.                                                                                                                                                                                                                                                                                                          |

## How connections work with scopes

Creating a connection or provider credential does not grant CodeRabbit Agent access on its own. A connection only becomes available when a [scope](/slack-agent/scopes) explicitly includes it, and a provider credential must be assigned to a scope before the Agent can use that provider's repositories. This means you can configure access at the workspace level and then decide, scope by scope, which teams or channels should be able to use it.

For most service types, a scope can include one connection per service. MCP connections are the exception: they are additive, so a scope's MCP servers stack on top of those already included in the Base Scope.

The Connections list shows a **Scopes** column so admins can see where each connection is currently assigned. Linked scopes appear by name, and unassigned connections show **No scopes**. Search also matches linked scope names, which helps you find all connections used by a specific team, channel, or workflow.

## Who can do what

| Action                                                       | Global admin | Scope admin | Member |
| ------------------------------------------------------------ | ------------ | ----------- | ------ |
| View configured connections                                  | Yes          | Yes         | Yes    |
| Create or edit connections                                   | Yes          | Yes         | No     |
| Reconnect or rotate credentials                              | Yes          | Yes         | No     |
| Deactivate a stored repository-provider credential           | Yes          | No          | No     |
| Connect PagerDuty with REST credentials for managed webhooks | Yes          | No          | No     |
| Create a Linear authorization for managed webhooks           | Yes          | No          | No     |
| Delete connections                                           | Yes          | Yes         | No     |

## Reusing existing integrations and creating new ones

If your team already uses CodeRabbit for pull request reviews, you may already have integrations configured for services like Linear or CircleCI. CodeRabbit Agent can reuse those existing integrations as connections, so you do not need to set them up again from scratch.

When a Review-only connection exists, you can enable it for CodeRabbit Agent without re-entering the credential. Repeating the enable action reuses the existing Agent connection instead of creating another one.

An older Linear connection that was authorized by a person may prompt you to **Reconnect Linear as CodeRabbit** rather than use the standard connect action when you save or edit it. This is expected and does not require setting up the connection again from scratch. Reconnecting grants the connection read/write access, which CodeRabbit requires to publish automation comments and final results to Linear; without it, automation output can fail or remain attributed to the person who originally authorized the connection. After you reconnect, actions such as comments on Linear issues are attributed to the CodeRabbit application instead of the person who originally authorized the connection, while existing connections keep their current action attribution until they are reconnected.

To create a Linear authorization for managed webhooks, enable **Manage Linear webhooks for automations** during setup and edit the connection name if needed. CodeRabbit rejects an incomplete OAuth grant that is missing `read`, `write`, or `admin` access and asks you to reconnect. A complete authorization remains valid for Linear trigger administration but is excluded from automation destination choices. Create a separate eligible Linear destination connection when an automation must post results to Linear.

Managed PagerDuty webhooks require a PagerDuty REST connection with an API key. When an Automation needs PagerDuty webhook access, a user with permission to manage workspace integrations is directed to the Connections page to enter a read/write General Access API key or a User Token whose user can manage webhook subscriptions. Existing PagerDuty OAuth and MCP connections cannot be used for managed webhook administration.

Create a separate connection when the existing one does not fit: for example, when a different team needs its own account for the same service, when you want a stricter permission mode (read-only instead of read-write), or when a specific scope should only see a subset of a service's data.

## What's next

<CardGroup cols={1}>
  <Card title="Scopes" href="/slack-agent/scopes" icon="shield" horizontal>
    Decide which scopes should be allowed to use each connection.
  </Card>

  <Card title="Knowledge Base" href="/slack-agent/knowledge-base" icon="brain" horizontal>
    Learn how CodeRabbit Agent uses connected systems to build and refine durable workspace knowledge.
  </Card>

  <Card title="MCP servers" href="/integrations/mcp-servers" icon="server" horizontal>
    See the canonical docs for MCP-based integrations that CodeRabbit Agent can use through workspace connections.
  </Card>
</CardGroup>
