Work every cold email reply from one screen with CRM context

By General Input

See every reply from all your sending inboxes in one queue, sorted by who has waited longest, with the sender's CRM history already loaded.

Integrations

  • AgentMail
  • HubSpot
  • Slack Bot

Type

App

Categories

  • Sales

I run outbound from a lot of separate sending inboxes and I need one screen to work every reply instead of opening each inbox in turn. Build me a three pane reply console: an inbox rail on the left, the reply list in the middle, and the full thread on the right with a CRM context card above a reply composer. This is a working surface, not a report. I should be able to sit in it and clear replies one after another without leaving the page.

The left rail lists all of my AgentMail inboxes, loaded with AgentMail List Inboxes, each showing the number of replies still waiting on me, with an All inboxes entry pinned at the top. Below the inbox list, show intent filters: Interested, Meeting booked, Not interested, Out of office, Referral, and Objection, each with its own count. Selecting an inbox and selecting an intent should combine, so I can look at just the objections that landed in one sending inbox.

The middle pane is the reply list for whatever I have selected, filled with AgentMail List Messages across the inboxes in scope. Each row shows the sender name and email address, a snippet of the reply, which inbox it landed in, its intent tag, and how long it has been waiting, written plainly as something like 3h 20m waiting. Sort by wait time by default, longest wait first, because the reply sitting there longest is the one costing me the meeting. Let me flip to newest first if I want, but always come back to wait time when I reopen the app.

Clicking a row opens the full thread in the right pane using AgentMail Get Message, rendered in order with the newest message last and long quoted history collapsed behind a toggle so I can see the actual reply first.

The CRM context card sitting above the thread is the point of the whole app. The moment I open a reply, look the sender's email address up in HubSpot with Search Contacts, then pull that contact's open deals with HubSpot Search Deals. The card shows who this person is, their job title, their company and lifecycle stage, then each open deal with its stage, amount and expected close date, so I know exactly who I am talking to and where the deal stands before I answer. If no contact matches the sender, say so plainly on the card and keep everything else working rather than showing an error.

Underneath the thread is the reply composer. Sending uses AgentMail Reply To Message so the reply threads correctly and goes back out from the same inbox the message landed in, never from a different one. Straight after a successful send, log what I sent back to the CRM using HubSpot Create Note associated to that contact, capturing the text I sent, which inbox it went from and the intent tag on the reply. If there was no matching contact, skip the note and tell me quietly in the interface instead of failing the send.

When a reply is genuinely hot and belongs to a rep, one Hand off button posts the thread and the CRM summary to a channel using Slack Bot Send a Message. Let me pick the channel from a list loaded with Slack Bot List Channels and save a default channel so the common case is a single click. The posted message should carry the sender and their company, the intent, the last thing they wrote, their open deals and how long the reply has been waiting. Mark the row as handed off afterwards, showing who handed it off and when.

The intent classification is the app's own work. When a reply is first seen, read it and sort it into one of the six categories, then store that result in the app's own storage keyed by message and thread, alongside the time it first arrived, whether I have replied, and whether it has been handed off. AgentMail has no way to write labels back, so never attempt to write a category onto the email side. Reading labels as a filter when listing messages is fine, writing them is not. Let me correct a wrong category directly from the row or the thread header, and always keep my correction over the app's own guess.

Wait time is measured from when the reply arrived until now, and it should keep counting while the app is open. A reply leaves the queue once I have replied to it or handed it off, with a toggle to show handled replies again so I can find something I worked earlier. Refresh on demand and whenever I switch inboxes. Treat this as a shared team console: anyone who opens it sees the same inboxes and the same queue, and rows should show who replied or who handed off so two of us never work the same reply twice.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery boardLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsA searchable RFP answer library your bid team drafts fromLinkedIn Ads budget pacing dashboard for every client account