agentsUpdated·Falk Gottlob··updated ·8 min read

Build Your Team Triage Agent

Your #team-product channel is a firehose. This agent reads every message, categorizes issues, assigns owners, and tells you what's been sitting unanswered - twice a day.

agentsteam operationstriagehow-to
Helpful?

Try it live
See this agent running in the sandbox

Stream a simulated run, inspect the notifications it would send on Slack and email, and see exactly where it sits in the 7-stage PM OS flow. No password required.

The short version

The Team Triage agent runs twice daily (9 AM and 4 PM) and reads your entire #team-product Slack channel since the last run. It categorizes every message into bugs, feature requests, escalations, and questions, assigns owners using a smart matching algorithm against your PM roster, and surfaces threads waiting on response with a "waiting since" timestamp. It also flags ownership gaps (issues nobody claimed), trending topics, and PMs with too many open items. The point is to stop losing issues in a 87-messages-a-day firehose. Setup is 20 minutes. Saves the team 30 minutes a day in triage overhead.

Your #team-product channel had 87 messages yesterday. You read maybe 15 of them. Someone asked about a bug in production six hours ago and nobody responded. A feature request from sales came in and it's unclear who should own it. A customer escalation is sitting there with no decision. And you won't know any of this until someone reminds you at standup tomorrow.

This is the problem the Team Triage Agent solves.

The Real Problem (It's Not Slack)

The issue isn't Slack. It's that product work moves through Slack - bugs, feature requests, escalations, decisions, blockers, all mixed into one channel. You need signal, not noise. You need categorization. You need ownership clarity.

Without triage, what happens:

Morning: Two bugs came in overnight. Nobody flagged them. You see them at 9:15am during standup. One blocks a customer. You should have known at 6am.

Afternoon: Sales asked about building a new integration. It's been three hours. No PM claimed it. No one said "we're tracking this." The sales person is waiting, and it fell into a gap.

Late afternoon: A customer escalation about performance landed in the channel. It got 3 responses but nobody agreed on what to do. It's been open 4 hours with no decision.

End of day: You have no idea how many open issues your team didn't triage, how many PMs are overloaded, or which escalations need your attention.

The Team Triage Agent solves this by reading your entire channel, categorizing everything, assigning owners, and flagging what's been sitting too long.

What This Agent Does

Twice a day (9am and 4pm), the agent delivers a single triage report that answers: What's new in #team-product? Who owns it? What's waiting?

It's not a dump of messages. It's a structured triage report that categorizes incoming work, assigns owners, and surfaces issues that have gone unanswered.

New Issues Since Last Check (Categorized)

The agent scans all messages since the last run and categorizes them by type:

🐛 Bugs

  • What: Description from thread
  • Severity: Critical / High / Medium / Low (inferred from language and customer impact)
  • Who reported it: Internal / Customer / Sales / Support
  • Assigned to: Best match from PM roster (or flagged as unassigned)

✨ Feature Requests

  • What: Feature description
  • Source: Sales / Customer / Leadership / Other
  • Customer impact: N customers requesting / ARR at risk (if known)
  • Assigned to: Relevant PM or flagged as unassigned

🚨 Escalations

  • What: The escalation (customer angry, revenue at risk, etc.)
  • Severity: Critical / High / Medium
  • Customer: Customer name + ARR
  • Assigned to: Relevant PM or flagged for leadership

❓ Questions

  • What: The question
  • Asked by: Which team member
  • Needs response from: Which PM (or which team)
  • Status: Answered / Waiting / Needs discussion

Issues Awaiting PM Response

The agent identifies threads where a decision or response is needed and surfaces:

  • Thread: Link to message
  • Waiting since: How long (e.g., "5 hours ago")
  • Assigned to: Who should respond
  • Status: No response / Partial response / Waiting for decision
  • Urgency: Based on who asked and what they're waiting for

Issues Resolved Since Last Check

Quick visibility into what got done:

  • What was resolved
  • Who resolved it
  • How long it took (time from first message to resolution)

Ownership Gaps

The agent flags issues that nobody claimed:

  • Issue: Description
  • Why unassigned: No PM responded, unclear who owns it, or all team PMs are already overloaded
  • Recommended owner: Based on PM expertise/roadmap
  • Action: Who should claim it right now

Patterns in what's being raised:

  • Top bug categories (auth, performance, data issues, etc.)
  • Top feature request categories
  • Which customers are escalating frequently
  • Themes that suggest systemic problems

How It Works: The Triage Logic

The agent doesn't randomly assign issues. It uses a smart matching algorithm:

For bugs: Assign to PM with expertise in that area (auth PM gets auth bugs, etc.) or to the owning squad lead if available. If the bug blocks a customer, escalate to leadership if it's not claimed within the first mention.

For feature requests: Assign to the PM who owns that product area. If cross-functional, flag for discussion. If it's a sales request, note the customer context.

For escalations: Route to the customer's dedicated PM if one exists. If not, route to the account executive's PM partner. If it's a product escalation, route to leadership.

For questions: Route to whoever has the context to answer. The agent scans previous messages to see who's been talking about that topic.

The agent also detects patterns:

  • If three requests came in for the same feature in one week, it's a signal.
  • If a PM has unanswered issues from yesterday still open today, it's a red flag for capacity.
  • If a customer is escalating for the third time this month on the same issue, it's a systemic problem.

Why This Actually Works

I built this because my team was losing issues in Slack. We had a 400-person Slack. Our product channel had 50+ messages a day. And every standup, we'd discover we missed something important.

The Team Triage Agent catches three categories of things you'd normally miss:

The silent bug: A customer reported a performance issue at 4:47pm. It got one "thanks for reporting" response. No one investigated. No one assigned it. By the next standup, you'd forgotten it existed.

The unclear owner: Sales dropped a feature request in the channel. It's a good ask. But no one owns the product area. No PM claimed it. So it floated in limbo for three days until you noticed.

The escalation that stalled: A customer is upset. Three people responded. They said three different things. No one made a decision. The customer is still waiting. Two hours later, you still don't know the status because you didn't read the full thread.

This agent surfaces all three in a structured format. No more "did we miss this?" at standup.

Data sources and setup

Prerequisites: Complete the Claude setup guide first. This agent needs the following MCP connections active:

  • Slack - reads #team-product channel messages and threads
  • Jira - reads bug reports and feature requests already tracked
  • Google Calendar - reads team availability for workload context
  • Salesforce - reads customer context and ARR for prioritization

Schedule: Runs 9:00 AM and 4:00 PM daily via cron. Output posts to Slack.

Quick test: Open Claude and ask: "What is each team member working on today and are there any unassigned escalations?"

For the full agent fleet and scheduling details, see Your AI Agent Fleet.

What Good Looks Like

After running this agent for two weeks, here's what changes:

Week 1: Your team starts seeing issues categorized and assigned. The triage report becomes a thing they check. Some PMs respond to assigned issues immediately. Some are slower. You notice who.

Week 2: PM response time improves. Because they're getting a clear daily assignment (from triage), they know what to tackle first. Issues don't float in limbo anymore. They get triaged, assigned, and addressed.

Week 3: Escalations move faster. Because you have a clear routing logic (customer escalations always go to the account PM), escalations get to the right person immediately. Response time drops from "we'll discuss at standup" to "2 hours."

Week 4: You notice capacity problems. The triage report shows which PMs are consistently overloaded (too many open issues). You can rebalance work, bring in help, or deprioritize things. You're not guessing.

The Full Agent Prompt

Ready to build this? The complete agent instruction file is available at /artifacts/agent-team-triage.md. It includes:

  • All triage categorization rules
  • Assignment logic for different issue types
  • How to detect ownership gaps
  • Trending topic detection
  • Output format
  • Complete test prompt to validate

Copy it into your agent platform, connect your Slack channel and PM roster, and run it. Setup takes 20 minutes. It saves your team 30 minutes per day in triage overhead.

Final Thought

Triage is usually the job of whoever's standing at the whiteboard at standup. But you have 87 messages a day, and nobody reads all of them. You're triaging with 20% of the information.

This agent reads 100% of the channel, categorizes everything, assigns clearly, and flags what needs escalation. It doesn't make the work disappear. But it makes sure you're not losing issues in the noise.

Your #team-product channel will still have 87 messages tomorrow. But you'll know exactly what they mean, who owns them, and what's been waiting too long.

That clarity is worth building for.


Ready to build? Start with the full agent prompt at /artifacts/agent-team-triage.md. Copy-paste-ready, includes all triage rules, assignment logic, trending detection, and a test prompt.

Share this post

Download the artifact

Ready to use. Copy into your project or share with your team.

Download

Also on Medium

Full archive →

Keep Reading

Posts you might find interesting based on what you just read.