> ## 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.

# Automations

> Create scheduled and message-triggered tasks that CodeRabbit Agent runs automatically from Slack.

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"
    },
    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"
    }
  };
  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>;
};

Automations let CodeRabbit Agent run recurring or event-driven tasks for you from Slack. They can run on a **recurring schedule**, react to top-level **channel messages**, or run from a saved trigger such as a **webhook event**. You can create scheduled automations from Slack and inspect them in the web app. The web app also includes a `Triggers` tab for creating and managing trigger-based automations.

Each automation runs under the <Hint type="scope">scope</Hint> that applies to the channel or DM where it lives, so it only accesses the repositories, connections, and spend limits that surface is allowed to use.

## Examples

<Tabs borderBottom>
  <Tab title="Scheduled check">
    A platform team wants CodeRabbit Agent to check for new security advisories every morning. An engineer goes to `#platform-eng` and sends:

    ```
    @coderabbit Check for new dependency vulnerabilities in the main branch
    and summarize anything critical. Run this daily.
    ```

    CodeRabbit Agent runs it once as a trial. After reviewing the output, the engineer confirms the automation. From that point on, a fresh thread appears in `#platform-eng` every morning with the results.
  </Tab>

  <Tab title="Message triggered">
    A reliability team wants CodeRabbit Agent to investigate each new Datadog alert posted in `#prod-alerts`. An engineer asks CodeRabbit to save an automation that watches new channel messages from the Datadog bot, checks whether each alert looks real, and replies with the next step.

    From that point on, every matching top-level alert message in `#prod-alerts` gets a thread reply from CodeRabbit Agent. The automation stays in that same channel and only runs when a new message matches the saved trigger.
  </Tab>

  <Tab title="Webhook triggered">
    An on-call team wants CodeRabbit Agent to triage every new PagerDuty incident automatically. An engineer opens **Automations > Triggers** in the web app, creates a webhook trigger with PagerDuty as the source, and sets a matching rule on the `incident.trigger` event type. The agent instructions tell CodeRabbit to look up the affected service, check recent deploys, and post a summary with a suggested next step.

    After saving, CodeRabbit shows the webhook URL and required header to paste into PagerDuty. From that point on, every new incident fires the trigger and CodeRabbit Agent posts a triage summary to the configured Slack channel.
  </Tab>
</Tabs>

## Creating an automation

Ask `@coderabbit` to create an automation in any channel or DM. CodeRabbit Agent walks you through the setup in a thread. When you create an automation, it runs once as a **trial** before activating it, so you can review the output and iterate on the prompt before it starts running on its own.

<Info>
  In channels, you can also use the `/automations` slash command as a shortcut. Slash commands are not available in Direct Messages or threads.
</Info>

Workspace admins can control who is allowed to create automations from **Account Settings**. The creation policy can allow any workspace user, only global admins, or global admins plus users with the Automation admin role.

Every automation is bound to the channel or DM where it was created, and that binding cannot be changed. If the target surface changes, create a new automation in the new place.

## Schedules

Recurring automations can run:

* Every `x` minutes (10 minutes minimum)
* Hourly
* Daily
* Weekly

All schedules are timezone-aware.

## Triggers

Triggers are rules that start CodeRabbit Agent when a matching event arrives. Open **Automations > Triggers** in the web app to create, edit, pause, or delete triggers.

Each trigger has:

* **Source**: where the event comes from
* **Matching rules**: which events should run the trigger
* **Agent instructions**: what CodeRabbit Agent should do when the trigger runs
* **Destination**: where CodeRabbit Agent posts the result

### Slack channel messages

Slack channel message triggers run when a new top-level message appears in a selected channel. Instead of waiting for a clock-based schedule, they fire when a matching message arrives.

Use them when you want CodeRabbit Agent to react to repeated operational events, such as new alerts, queue-health posts, or deployment notices.

Slack channel message triggers support:

* **All new top-level messages** in the channel
* **Text filters** using case-insensitive substring matching
* **Required author allowlists** for specific Slack bots or Slack apps

CodeRabbit Agent always replies in the triggering thread. In the current version, these triggers must use **Same thread** delivery.

Human-authored messages never fire this trigger type. A Slack channel message trigger only runs when a new top-level message comes from a bot or app that the trigger explicitly allowlists. `Run now` is also unavailable for these triggers. To test one, post a matching message in the channel from the allowlisted bot or app.

### Webhook events

Webhook triggers run when an external service sends a matching webhook event:

* Any service can be connected via a **custom webhook**
* **Natively supported providers** (with pre-configured event types and payload schemas): Datadog, Sentry, PagerDuty, Linear, Jira, Fin (formerly Intercom), Zendesk, and Pylon

After saving a webhook trigger, CodeRabbit shows the webhook URL, required header, and sample payload to configure in the source service.

Webhook triggers can match by provider event type, by JSON payload fields, or both. If no matching rule passes, the event is dropped.

## Delivery

Each automation uses one of two delivery modes:

* **Fresh thread**: starts a new thread for every run
* **Same thread**: posts into the same thread each time (required for message-triggered automations, and also available when a recurring automation was created from a thread with a concrete root message)

## Who can manage automations

| Action                           | Creator | Workspace admin | Automation admin                                 | Other channel members |
| -------------------------------- | ------- | --------------- | ------------------------------------------------ | --------------------- |
| Edit, pause, resume, or delete   | Yes     | Yes             | Yes, when Automation admin management is enabled | No                    |
| Run immediately (recurring only) | Yes     | Yes             | Yes (channels only)                              | Yes (channels only)   |
| Stop a running automation        | Yes     | Yes             | Yes (channels only)                              | Yes (channels only)   |

Automations in DMs can be edited, paused, resumed, or deleted by the creator, a workspace admin, or an Automation admin when Automation admin management is enabled. Stopping a running DM automation is limited to the creator or a workspace admin. Other users cannot run or stop DM automations.

Message-triggered automations cannot be run manually. To test one, post a matching message in the channel.

## Archival

Automations are archived automatically when their place becomes unavailable:

* **DM automations** archive when the DM becomes unusable, the creator leaves the workspace, or the required `same_thread` root message disappears.
* **Channel automations** archive when the channel is deleted, the bot loses access, or the required `same_thread` root message disappears.

Archived automations are distinct from paused automations and cannot be resumed.

## Viewing automations in the web app

The Automations page in the web app is available to all workspace users. It shows which channels have active automations, their triggers, delivery mode, and recent run history. Run entries link to [thread reviews](/slack-agent/thread-reviews) when available.

Workspace admins can see every automation and trigger in the workspace. Automation admins can see and manage same-workspace automations when Automation admin management is enabled. Other users can see automations and triggers they created. Available actions depend on your permissions and the automation type.

## What's next

<CardGroup cols={1}>
  <Card title="Scopes" href="/slack-agent/scopes" icon="shield" horizontal>
    Control which repositories and tools automation runs can access.
  </Card>

  <Card title="Thread reviews" href="/slack-agent/thread-reviews" icon="file-search" horizontal>
    Inspect the output of an automation run.
  </Card>

  <Card title="Usage" href="/slack-agent/usage" icon="chart-column-big" horizontal>
    Review activity after automations run.
  </Card>
</CardGroup>
