# Catch the email threads your AI agents left hanging

> A live board of every conversation where someone is still waiting on you, sorted by how long it has been silent.

- Workflow type: app
- Services: AgentMail, Slack Bot, Google Sheets
- Categories: Customer Support, Operations
- Published: 2026-08-14

## What it does

- Shows only the conversations where someone is still waiting on you, so threads you already answered never clutter the view.
- Sorts everything by how long it has been silent, with anything over a day pinned at the top in red.
- Tells you whether the last reply came from an AI agent or a person, so you can spot conversations an agent started and then abandoned.
- Lets you claim, read, reply, snooze, or escalate to a teammate in Slack without leaving the board.

## What you'll need

- An AgentMail account with the inboxes your agents send and receive from.
- A Slack workspace where escalations should be posted.
- A Google account and a spreadsheet, if you want to keep the weekly response time record.

## Prompt

Build me an app that shows every email conversation where the other side spoke last and nobody on my team has answered yet. We run AI agents across several AgentMail inboxes, and my worry is not the mail they handle, it is the threads they picked up halfway and quietly dropped. The one rule that makes this app useful: a thread only belongs on the board when the most recent message in it is inbound. If we already replied and are waiting on them, it never shows up.

When the board loads, use AgentMail List Inboxes to find every inbox on the account, then List Messages on each one, and group the messages by their thread id. Results come back newest first and every timestamp is ISO 8601 UTC, so for each thread take the most recent message and check its direction. Keep the thread only if that latest message came from outside. The waiting time is the gap between that message's timestamp and now. Use Get Message when I open a thread so I can read the full body and any attachments.

Group the surviving threads into four sections by waiting time: under 1 hour, 1 to 4 hours, 4 to 24 hours, and over 24 hours. Pin the over 24 hours bucket at the top and style it in red, since that is the one that actually costs us. Inside each bucket sort oldest first, and show a count on each bucket header.

Each card shows the sender, the subject, which inbox it landed in, how long it has been waiting in plain language like 3h 20m, and the field I care about most: whether the last reply we sent on that thread came from an agent or from a human. That column is the point of the app, because an agent that answered twice and then stopped looks exactly like a healthy thread until you notice no human ever touched it. Work it out by looking back through the thread for the most recent outbound message. The app records every reply a person sends through it, so any outbound message not in that record is treated as agent sent. Show it as a small tag reading last reply: agent or last reply: human.

From a card I want to claim it, which locks it to me and shows my name to everyone else so two of us never answer the same person, and a claimed card can be released. I also want to open the thread and read it in full, reply directly from the app using AgentMail Reply To Message, snooze it with a note and a wake time so it drops off the board until then, and escalate it. Escalating posts to Slack using Slack Bot Send a Message and includes the sender, the subject, the inbox, how long it has been waiting, and my note, sent to the channel or teammate who owns that inbox. When I reply from the app, mark the thread resolved and move it into a resolved history.

Give me a settings view where I set a target response time per inbox and map each inbox to the teammate and Slack channel that owns it. Use the target to flag cards that have blown past their own inbox's target, on top of the time buckets.

Add a reporting view showing response times over the past week: how many threads we answered, median and worst waiting time, a split between agent handled and human handled, and a breakdown per inbox. Put a button on it that pushes that week's record into a Google Sheet with Google Sheets Append Values, one row per week, so I can watch the trend over months. There is no scheduler in an app, so this is a button I press. Remember when I last pushed it and show a reminder on the view once seven days have gone by.

Claims, snoozes and their notes, per inbox targets, inbox ownership, the human reply record and the resolved history are all the app's own stored state. AgentMail has no assignment, no snooze and no label writing to support this, so none of it is written back to the mail account. The app is a read only view over the mail store plus a reply surface. Claims are per person, and everyone in the workspace sees the same board and the same claims.

## How to customize

- Change the time buckets. The default splits are under 1 hour, 1 to 4 hours, 4 to 24 hours, and over a day.
- Set a different target response time per inbox, so a support inbox can be held to a tighter standard than a general one.
- Choose which Slack channel or teammate each inbox escalates to.

## FAQ

### Does this send email on its own?

No. Nothing goes out unless you write it and press send. The board is a view of what has arrived, plus a place to reply from.

### How does it know a conversation is waiting on us?

It looks at the most recent message in each conversation. If that message came from the other person, the ball is with you and the thread appears on the board. If your side spoke last, it stays off it.

### How does it tell an agent reply from a human one?

The app remembers every reply a person sends through it. Any outgoing message it does not recognize as human sent is shown as agent sent, which is exactly what surfaces conversations an agent handled and then went quiet on.

### What stops two people answering the same person?

Claiming. When you claim a card it locks to you and your name shows on it for everyone else looking at the board.

### Do claims and snoozes show up in the mailbox itself?

No, they live in the app. Your mail account is left untouched apart from the replies you actually send.

Use this prompt in General Input: https://www.generalinput.com/prompts/catch-the-email-threads-your-ai-agents-left-hanging