Skip to main content

Slack Integration

SignalPilot integrates with Slack to surface relevant team discussions during data investigations. Find out what your team said about a metric drop, who owns a data pipeline, or what decisions were made about data definitions.

What Slack Integration Provides

Context TypeWhat You GetExample Use
Channel DiscussionsRecent messages about data topics”What did the team say about conversion?”
Thread ContextFull conversation threads”Show me that revenue discussion”
MentionsReferences to metrics, tables, dashboards”Who mentioned the orders table?”
DecisionsKey decisions about data definitions”What did we decide about active users?”

Setup

1

Create a Slack App

  1. Go to api.slack.com/apps
  2. Click Create New AppFrom scratch
  3. Name it “SignalPilot” and select your workspace
2

Configure OAuth Scopes

Under OAuth & Permissions, add these Bot Token Scopes:
  • channels:history - Read messages in public channels
  • channels:read - List public channels
  • search:read - Search messages
  • users:read - Resolve user names
For private channels, add groups:history and groups:read, then invite the bot to each channel.
3

Install to Workspace

  1. Click Install to Workspace
  2. Authorize the permissions
  3. Copy the Bot User OAuth Token (starts with xoxb-)
4

Configure SignalPilot

Add to your signalpilot.config.json:
{
  "mcp_servers": {
    "slack": {
      "type": "slack",
      "bot_token": "${SLACK_BOT_TOKEN}",
      "channels": ["data-team", "analytics", "data-incidents"]
    }
  }
}

Using Slack Context

Finding Relevant Discussions

When investigating a metric change, SignalPilot automatically searches Slack:
You: "Why did conversion drop 8% last week?"

SignalPilot: Searching Slack for recent conversion discussions...

Found 3 relevant threads:

1. #data-team (Tuesday): "Heads up - we deployed the new checkout flow"
2. #analytics (Wednesday): "Seeing conversion numbers look off"
3. #data-incidents (Wednesday): "Hotfix deployed for checkout tracking"

Insight: The drop appears related to a checkout deployment with tracking issues.

Asking About Decisions

Surface past team decisions without manual searching:
You: "How do we define 'active user' again?"

SignalPilot: Searching Slack for 'active user' definition...

Found in #data-team (3 weeks ago):
"Active user = logged in within 30 days with at least 1 action"
Documentation: notion.so/data-definitions/active-user

Finding Data Owners

Identify who to ask about specific data:
You: "Who owns the attribution model?"

SignalPilot: Searching Slack for attribution model ownership...

Based on recent discussions:
- @marketing_analyst: Primary owner (mentioned 12 times)
- @data_engineer: Maintains the pipeline (mentioned 5 times)
- #marketing-analytics: Main channel for attribution discussions

Slack Commands

CommandDescription
@slack search <term>Search messages for a term
@slack channel <name>Get recent messages from a channel
@slack thread <url>Get full thread context
@slack mentions <term>Find who mentioned a topic

Privacy & Security

  • SignalPilot only searches channels the bot is invited to
  • Messages are fetched on-demand and not stored
  • All searches are logged locally for audit purposes
  • DMs and private channels require explicit bot invitation

Best Practices

1

Focus on Data Channels

Configure only channels where data discussions happen. This improves search relevance and speed.
2

Use Consistent Terminology

Encourage your team to use consistent names for metrics and tables. “MRR” is easier to search than various phrasings.
3

Document Decisions

When Slack surfaces a decision, add it to your team’s documentation. Slack is for discovery, not long-term storage.