# See how fast your reps actually respond to new Close leads

> 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.

- Workflow type: app
- Services: Close, Slack Bot
- Categories: Sales, Operations
- Published: 2026-08-16

## What it does

- Lists every lead created in the last 7 days on one screen, showing the owner and how long the lead waited before anyone reached out, with leads nobody has touched pinned to the top
- Scores each rep on their typical first response time and how many leads blew past your response deadline, which defaults to one hour and is yours to change
- Gives you a breached-only view so your morning review is just the misses, and remembers which ones you already dealt with so they do not come back tomorrow
- Lets you fix the problem from the row itself: send the first email or text, assign a callback task, leave a note explaining a delay, or hand the lead to someone else
- Posts today's misses to your sales channel in Slack with one button

## What you'll need

- A Close account with calling, email, or texting in use, so there are activities to measure against
- A Close API key, which you can create in your Close settings under Developer
- A Slack workspace and permission to add an app, if you want the button that posts misses to your sales channel
- An agreed response deadline for new leads, for example one hour

## Prompt

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.

## How to customize

- Change the response deadline from the default one hour to whatever your team promises, such as 15 minutes for paid ads or 24 hours for partner referrals
- Switch elapsed time between round-the-clock and business hours only, and set your working days and hours so a lead that arrives at 11pm is not counted as an overnight miss
- Widen or narrow the 7 day window, and choose which Slack channel the misses button posts to

## FAQ

### What counts as a first touch?

Only outbound contact your team makes: a call your rep placed, an email your team sent, or a text message you sent to the lead. Replies coming in from the lead do not count, so a chatty prospect can never make it look like you responded when you did not.

### Does this work if we only use email and never call?

Yes. The board looks at calls, emails, and text messages together and takes whichever happened first. If your team only sends email, the first email is the first touch.

### Can I change the one hour deadline?

Yes. The threshold is a setting inside the app, so you can set it to 15 minutes, one hour, one business day, or whatever your team has committed to. The rep scores and the breached list both recalculate against whatever you pick.

### What happens to leads that come in overnight or on weekends?

You can measure elapsed time against business hours instead of the clock. With that turned on, a lead that arrives at 11pm starts counting when your team opens the next morning, so nobody gets blamed for a nine hour miss they could not have prevented.

### If I deal with a missed lead today, will it still be on the list tomorrow?

No. When you acknowledge a breached lead the app remembers it, so tomorrow's list only shows new misses. That keeps the morning review focused on what actually changed.

### Does Close not already report on this?

Close shows you activity, meaning what was logged and when, but it has no built-in measure of how long a new lead sat untouched before anyone reached out. This board works that number out from your own call, email, and text history.

Use this prompt in General Input: https://www.generalinput.com/prompts/see-how-fast-your-reps-actually-respond-to-new-close-leads