See how fast your reps actually respond to new Close leads

By General Input

Every lead from the last 7 days with the exact wait before its first outbound call, email, or text, so slow follow-up stops hiding in your activity feed.

Integrations

  • Close
  • Slack Bot

Type

App

Categories

  • Sales
  • Operations

Build me a speed-to-lead board that my sales manager opens every morning to see how fast we are actually responding to new leads in Close. Close shows me activity but never tells me how long a new lead sat untouched, so the whole point of this app is to compute and display that one number: the elapsed time between when a lead was created and the first outbound touch we made to it.

The main screen is a list of every lead created in the last 7 days, one row per lead. Each row shows the lead name, the lead owner, when the lead was created, and the elapsed time to first outbound touch, plus which channel that first touch was (call, email, or SMS). Leads with no outbound touch at all are pinned to the top of the list and shown as untouched rather than with a number, and below them the rest are sorted by longest wait first. The manager should be able to see the worst offenders without scrolling or sorting anything.

For the data: a handler reads Close List Leads filtered to the last 7 days by creation date to get the lead set. Then it reads Close List Calls, List Emails, and List SMS over the same date range (List All Activities is an acceptable single-call alternative if it returns the same channels) and finds, per lead, the earliest outbound activity across all three. Close List Users resolves owner ids to human names so the board shows names and not ids. Handle pagination on all of these, since a busy week can be more than one page of leads or activities.

Critical rule: only outbound activities count as a first touch. Inbound replies do not. An email the lead sent us, an inbound call we received, or an inbound SMS must never be treated as our first response, because otherwise a chatty prospect makes it look like we responded when we never did. Filter each activity by its direction before taking the earliest one, and if an activity's direction cannot be determined, exclude it rather than counting it.

A second panel is a rep scorecard. For each lead owner, show their median first-response time across the leads in the window, the number of leads assigned to them, and the count of leads that breached a response threshold. The threshold is a setting the manager controls inside the app and defaults to one hour. Use the median rather than the mean so one nightmare lead does not distort a rep's whole score. Sort the scorecard worst first so the person who needs coaching is at the top.

A third view is a filter that shows only breached leads, meaning leads whose first-response time exceeded the threshold plus leads still untouched past it. This is the view the manager works out of during the morning stand-up.

From any row the manager can act without leaving the page. Send Email and Send SMS make the first touch right there via the Close Send Email and Send SMS actions. Create Task assigns a callback to a rep via Close Create Task. Create Note lets the manager explain a delay via Close Create Note. Update Lead reassigns the lead owner via Close Update Lead, for when someone is clearly drowning and their leads need to move. After any of these actions the affected row should refresh so the board reflects reality immediately.

Add a button labelled something like post today's misses to Slack that sends the current breached list to our sales channel using the Slack Bot Send a Message action. Format it as a readable message: the count of breaches, then one line per lead with the lead name, owner, and how long it waited. The target channel should be configurable in the app rather than hard-coded.

Persist which breached leads a manager has already acknowledged. Give each breached row an acknowledge control, store the acknowledgement in the app's own storage keyed by lead, and hide acknowledged leads from tomorrow's breached view so the list only ever surfaces new misses. Let the manager reveal acknowledged items with a toggle if they want to look back.

Finally, elapsed time should optionally be measured against business hours instead of wall-clock time, so a lead arriving at 11pm is not unfairly counted as a nine hour miss. Make this a setting with configurable working days and working hours, defaulting to weekdays 9am to 5pm, and let the manager flip between business-hours and round-the-clock measurement. Every displayed duration, every median, and every breach determination must respect whichever mode is active.

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 reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them