---
title: "Chat with your data using the Birdwatcher Slack App"
excerpt: "Birdwatcher Slack app alerts you when something breaks. Monitor your Tinybird pipelines without leaving your team's chat."
authors: "Alberto Romeu"
categories: "AI x Data"
createdOn: "2025-06-19 10:00:00"
publishedOn: "2025-06-23 09:01:00"
updatedOn: "2025-06-23 09:01:00"
status: "published"
---

Birdwatcher is an AI agent that talks to your data in Tinybird, automating data exploration, monitoring, and complex analysis.

It uses the Tinybird Remote MCP Server to give you access to advanced data tools for building analytics agents over your data.

Today, we’re excited to announce the Birdwatcher Slack App, a conversational agent that lets you explore your Tinybird data directly from Slack.

## How to get started

To begin, [install Birdwatcher in your Slack workspace](https://slack.com/oauth/v2/authorize?client_id=1689466861365.9006719895489&scope=app_mentions:read,channels:history,chat:write,im:history,im:read,im:write,groups:history,commands&user_scope=) and run `/birdwatcher-config` in any public or private channel.

![Birdwatcher Slack config](birdwatcher-config.png)

Alternatively, open a direct message with `@Birdwatcher` and run `/birdwatcher-config`. This allows you to connect Birdwatcher to your Tinybird workspace in a private conversation.

If you’re a Tinybird client, start a private chat with @Birdwatcher in the Tinybird Slack workspace. No installation required.

Once configured, you can use natural language to query your data or request key organization metrics. Examples:

- _"What's my storage usage?"_
- _"What are the pipes with the most errors in the last 24 hours?"_
- _"Which datasources have the most rows in quarantine in the last hour?"_

![Birdwatcher Slack thread](birdwatcher-thread.png)

## How it works

Birdwatcher is a standard Slack app that communicates with a web server. This server routes Slack event subscriptions to the Birdwatcher agent, which handles the requests.

### Architecture overview

```plaintext
                       ┌─────────────────┐
                       │ Slack App       │
                       │                 │
                       └─────────────────┘
                                |
                       event subscription
                                |
                                v
                       ┌─────────────────┐
                       │ Birdwatcher Web │
                       │ Server          │
                       └─────────────────┘
                                |
                                v
                       ┌─────────────────┐
                       │ Birdwatcher     │
                       │ Agent           │
                       └─────────────────┘
                                |
                       +--------+--------+
                       |                 |
            get user/channel token     token
                       |                 |
                       v                 v
          ┌────────────────────┐   ┌─────────────────┐
          │ birdwatcher_config │   │ Tinybird        │
          │                    │   │ MCP             │
          └────────────────────┘   └─────────────────┘
                                            |
                                          token
                                            |
                                            v
                                   ┌─────────────────┐
                                   │ Your Tinybird   │
                                   │ Workspace       │
                                   └─────────────────┘
```

Each Slack channel has its own `@Birdwatcher` configuration. The `/birdwatcher-config` command is scoped to the channel it runs in.
In DMs, the config is scoped to the user.

## Hybrid mode: Notifications + Conversations

You can combine Birdwatcher Notifications (running in the background) with the conversational Slack agent to monitor and investigate issues in your Tinybird workspace.

For instance, you can deploy a Birdwatcher agent using GitHub Actions with a given mission (See [daily_summary.md](https://github.com/tinybirdco/ai/blob/main/agents/birdwatcher/missions/daily_summary.md)), in this case investigate CPU spikes in your Tinybird cluster:

```yaml
name: Birdwatcher Agent

on:
  schedule:
    - cron: '0 * * * *'  # Run hourly

jobs:
   monitor-cpu-spikes:
    runs-on: ubuntu-latest
    steps:
      - uses: tinybirdco/ai@main
        with:
          slack_token: ${{ secrets.SLACK_TOKEN }}
          anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
          tinybird_token: ${{ secrets.TINYBIRD_TOKEN }}
          tinybird_host: ${{ secrets.TINYBIRD_HOST }}
          prompt: |
            Report daily metrics about pipe_stats, datasources_ops_log and
            jobs_log in the #tmp-birdwatcher Slack channel. No markdown.
          mission: daily_summary
          model: claude-4-sonnet-20250514
```

Once you receive a Slack notification from the Birdwatcher agent, follow up with questions to `@Birdwatcher` to investigate the issue further in natural language.

![Birdwatcher Slack notification](birdwatcher-hybrid.png)

`@Birdwatcher` uses the [explore](https://github.com/tinybirdco/ai/blob/main/agents/birdwatcher/missions/explore.md) mission which leverages the `explore_data` tool in the Tinybird MCP server.

## Learn more

Try the [Birdwatcher quickstart](https://github.com/tinybirdco/ai/blob/main/agents/birdwatcher/README.md) to deploy or build your own analytical agent.

Learn [how to build and deploy your own Slack agent](https://github.com/tinybirdco/ai/blob/main/agents/birdwatcher/slack.md).
