Skip to content
Leads & bookings
Launch pack

Speed to Lead

Reply to every lead in minutes, and follow up until they book or say no.

  • Follow-up
  • Resend
  • Reviews

Install

npx skills add webrenew/skills --skill launch-speed-to-lead
GitHub

1 file · 351 lines · any agent that reads SKILL.md

Use it when

  • Leads wait hours or days for a first reply
  • Nobody follows up after the first message
  • You want a review request after each finished job

What your agent delivers

  • An instant confirmation and an owner alert with one-tap call
  • Follow-ups that stop when the lead replies, books or opts out
  • A review request one day after the owner marks a job won

Source files

Read every line before you install. Copy or download one file.

SKILL.md

351 lines

---
name: launch-speed-to-lead
description: >
  Reply to every new lead within minutes and follow up automatically until the lead books,
  replies or opts out. Use this skill when the user mentions lead follow-up, speed to lead,
  auto-reply, instant response, missed leads, nurture sequence, drip emails after an enquiry,
  owner alerts for new leads, or review requests after a job. Built for Next.js with Resend
  and Trigger.dev, and the ideas apply to any stack.
---

# Speed to Lead: Reply in Minutes, Follow Up Without Thinking About It

**RULE: The first reply goes out within 5 minutes, any hour. Every later message checks
first whether the lead has replied, booked or opted out, and stops if so.**

A lead who has to wait calls the next business on the list. Research on web leads (Harvard
Business Review, "The Short Life of Online Sales Leads", 2011) found that firms that replied
within an hour were about 7 times as likely to qualify the lead as firms that replied an
hour later. Most small businesses reply the next day, or never. Automation closes that gap.

## The sequence

| When | To | Message | Goal |
|---|---|---|---|
| Instant | Owner | New lead alert with name, need, and one-tap call and email links | The owner can call while the lead is still on the site |
| Instant | Lead | Personal confirmation: what happens next, when, who; booking link; phone number | The lead stops shopping around |
| +1 business day, if no reply or booking (and consent where needed, see "Email rules") | Lead | Short check-in "in case you have more questions", with the answer to the most common one for their request. It reads right whether or not the owner has replied in person. | Restart the conversation |
| +3 business days | Lead | Proof: a relevant project, review or before-and-after | Build trust |
| +7 business days | Lead | "Close the loop": should we keep your request open? | A clear yes or no |
| 1 day after the owner marks the job `won` | Customer | Thank-you and review request (see "Review request after a won job") | Reviews |

Keep each message short, plain and from a person ("Sam at Harbor Plumbing"), with a reply
address that a person reads. Write in the business's voice. Never pretend a message is
hand-typed if it is not.

## Stop conditions

Check all of these before **every** follow-up, not only at the start. The confirmation ("we
got your request") answers the customer's own request, so it needs no marketing consent and
goes out even after a reply. It still stops for spam, an unsubscribe, a test lead and a lead
marked `possibleSpam`.

- The lead replied (`repliedAt` is set).
- The status is not `new` or `contacted`: they booked (see `launch-booking-payments`), their
  booking was cancelled, or the owner marked the lead won, lost or spam. The owner's own
  reply (status `contacted`) does not stop the sequence; the customer's answer does.
- The lead unsubscribed (`unsubscribedAt` is set).
- The lead is marked `possibleSpam` and the owner has not tapped "Not spam" yet.
- The lead is marked `isTest` (for example a launch test entry, marked after it was sent).
- A follow-up needs marketing consent here and `marketingConsent` is false (see "Email rules").
- The send would land outside business hours for a follow-up (instant replies are fine at
  any hour; follow-ups wait for the morning in the business's time zone).

## Implementation (Trigger.dev + Resend)

This uses the shared lead model and the `lead-intake` orchestrator from
`launch-lead-capture`. `lead-intake` starts this task once per lead with a global
idempotency key. Do not start it from anywhere else.

```ts
All skills
  1. 09

    Lead Capture

    Launch packlaunch-lead-capture

    Short forms that convert, and a pipeline that never loses a lead.

    Short forms that convert, and a pipeline that never loses a lead.

  2. 11

    Booking & Payments

    Launch packlaunch-booking-payments

    Let customers book a time and pay online, without a phone call.

    Let customers book a time and pay online, without a phone call.

  3. 01

    Technical SEO

    Growth & marketingseo-technical

    Make each page clear to search engines. Give them a path to every link.

    Make each page clear to search engines. Give them a path to every link.

  4. 02

    Local SEO

    Launch packGrowth & marketinglaunch-local-seo

    Get found by customers nearby, in local search and on Google Maps.

    Get found by customers nearby, in local search and on Google Maps.