Automatically generate renovation quotes for Summit Home Renovations by pulling unprocessed leads from ClickUp's Leads Pipeline, matching them against the detailed pricing model stored in ClickUp, and writing a finished quote back to ClickUp for human review. Use this skill whenever the user says "run quotes", "process leads", "generate quotes", "check for new leads", "quote the pipeline", "any new RFPs", "process the leads pipeline", or anything about generating, building, or running estimates or quotes for Summit Home Renovations. Also trigger when the user asks to triage incoming jobs, price out a job, or create a proposal. Even if the user just says "quote" or "leads" in the context of Summit Home Renovations, use this skill.
This skill automates the full quoting workflow: find unprocessed leads → pull pricing data → generate a quote → post it back to ClickUp for review.
The skill depends on this structure inside the Summit Home Renovations space:
| List | ID | Purpose |
|---|---|---|
| Leads Pipeline | 901415127898 | Incoming RFPs and leads. New leads arrive here with status "to do" or equivalent unstarted status. |
| Pricing Model | 901415129435 | Line-item pricing breakdowns by project type (Kitchen, Bathroom, Deck, Basement) plus the "Quote Assembly" instructions. |
The skill will also need a Quotes list to post finished quotes. If it doesn't exist yet, create it in the Summit Home Renovations space (space ID 90144901598) before posting. Make sure the Quotes list has a READY TO REVIEW status configured.
This skill uses ClickUp statuses to create a clean boundary between what the AI does and when a human steps in.
| Status | Who acts | What it means |
|---|---|---|
to do (Leads Pipeline) | AI | Unprocessed lead — AI picks it up and generates a quote |
quoted (Leads Pipeline) | — | Lead has been processed, quote was generated |
needs qualifying (Leads Pipeline) | Human | AI couldn't build a quote — needs more info from homeowner |
declined (Leads Pipeline) | Human | AI flagged as outside scope — human reviews the decline |
READY TO REVIEW (Quotes list) | Human | AI-generated quote is waiting for Mike to review, edit, and send |
complete (Quotes list) | — | Human reviewed and sent the quote |
The AI's job ends at READY TO REVIEW. Everything after that — tweaking numbers, personalizing further, sending to the homeowner — is Mike's call.
Use clickup_filter_tasks to pull all tasks from the Leads Pipeline list that have NOT been processed yet.
clickup_filter_tasks:
list_ids: ["901415127898"]
statuses: ["to do"] # or whatever the default unstarted status is
If no tasks come back with "to do", try also checking for statuses like "open", "new", or use clickup_search filtered to the Leads Pipeline list with task_statuses: ["unstarted"].
If there are zero unprocessed leads, tell the user "No new leads in the pipeline" and stop.
For each lead found, read its full details with clickup_get_task using detail_level: "detailed". Extract:
Pull all tasks from the Pricing Model list to get the line-item breakdowns:
clickup_filter_tasks:
list_ids: ["901415129435"]
Read each task's description. The key tasks are:
Pay special attention to the Quote Assembly task — it defines the step-by-step process for turning line items into a finished quote (margins, contingency, rounding, payment terms, disqualifiers, timelines).
If Zapier Tables tools are available, pull the company memory records from "Your Brain" table (ID 01KMC3WYXKSTYDWTEWF59BCBVR) to get:
Search for records where the type field (f7) = "memory" and the project field (f8) = "Summit Home Renovations" or "Summit Home Renovations".
If Zapier tools aren't available, use these defaults from memory:
For each unprocessed lead, work through this process:
Read the lead description and match it to one or more project types:
Before building a quote, check against the disqualifier list:
If a disqualifier hits, draft a polite decline or qualifying response instead of a full quote. Use Mike's voice.
Pull the relevant line-item pricing task(s) and scope each item based on what the homeowner described. Not every line item applies to every job — only include what's relevant.
For each applicable line item:
Use this structure:
## Quote for [Homeowner Name / Project]
[Standard proposal intro — personalized with homeowner name and project specifics]
### Project Scope
[2-3 sentences describing what's included]
### Estimated Range
**$XX,000 – $XX,000**
(includes materials, labor, subcontractors, permits, and [10/15]% contingency)
### What's Included
- [Line item 1]
- [Line item 2]
- ...
### Timeline
Estimated [X–X weeks] from start date.
[Note any scheduling constraints, e.g., tile sub availability]
### Payment Terms
- 30% deposit to book ($X,XXX – $X,XXX)
- 40% at rough-in/midpoint
- 30% on completion
### Next Steps
We'd love to schedule a site visit to refine this estimate. [Include early-bird discount mention if applicable — 5% off if booking 6+ weeks out.]
— Mike Dalton
Summit Home Renovations
Use clickup_get_list with list_name: "Quotes". If it doesn't exist, create it:
clickup_create_list:
name: "Quotes"
space_id: "90144901598"
content: "Generated quotes pending human review before sending to homeowner."
clickup_create_task:
list_id: [Quotes list ID]
name: "Quote — [Lead Name / Project Description]"
markdown_description: [the full proposal from Step 4f]
priority: "normal"
status: "ready to review"
The status: "ready to review" is critical — this is how Mike knows which quotes need his attention. He can filter the Quotes list by this status and see exactly what's waiting for him.
clickup_add_task_link:
task_id: [new quote task ID]
links_to: [original lead task ID]
Update the lead to reflect what happened:
If a quote was generated:
clickup_update_task:
task_id: [original lead task ID]
status: "quoted"
If the lead needs qualifying (vague description, missing info):
clickup_update_task:
task_id: [original lead task ID]
status: "needs qualifying"
Also add a comment with the specific questions that need answers.
If the lead was declined (outside scope, too small, commercial, etc.):
clickup_update_task:
task_id: [original lead task ID]
status: "declined"
Also add a comment with the reason and a drafted polite decline email.
If any of these status values aren't valid for the Leads Pipeline list, add a comment to the lead instead explaining the outcome, and set whatever active/in-progress status is available.
After processing all leads, generate a markdown file called summit-action-report.md and save it to /mnt/user-data/outputs/. This is Mike's at-a-glance dashboard — what needs his attention right now, in priority order.
Use this template:
# Summit Home Renovations — Action Report
**Generated: [today's date]**
---
## 🔴 Needs Your Action Now
### Quotes to Review & Send
[For each quote posted with READY TO REVIEW status:]
- **[Lead/Project Name]** — [project type] — **$XX,000–$XX,000**
- [1-line scope summary]
- ClickUp: [quote task URL]
- ⏱️ Suggested follow-up: within 24 hours
### Leads Needing Qualifying Calls
[For each lead marked "needs qualifying":]
- **[Lead Name]** — missing: [what info is needed]
- Questions to ask: [the specific questions drafted]
- ClickUp: [lead task URL]
- ⏱️ Call within 24 hours to stay responsive
### Declines to Confirm
[For each lead marked "declined":]
- **[Lead Name]** — reason: [why it was declined]
- Draft decline email is in the ClickUp comments — review and send
- ClickUp: [lead task URL]
---
## 🟡 Scheduling & Awareness
- **Tile jobs**: Ray is booked through May 2026. Any tile-heavy quotes have June+ timelines noted.
- **Early-bird discounts**: Any quotes where the homeowner could book 6+ weeks out have the 5% discount mentioned.
- **[Any other scheduling notes from the leads processed]**
---
## 📊 Pipeline Summary
| Metric | Count |
|--------|-------|
| Leads processed | [N] |
| Quotes generated | [N] |
| Needs qualifying | [N] |
| Declined | [N] |
| Estimated pipeline value | $XX,000–$XX,000 |
---
*Quotes are in the **Quotes** list in ClickUp → filter by **READY TO REVIEW**.*
*Qualifying leads are in **Leads Pipeline** → filter by **needs qualifying**.*
Present this file to the user using present_files so they can download it or view it immediately. Also paste the highlights (the "Needs Your Action Now" section) directly in the chat so Mike doesn't even have to open the file for the urgent stuff.
After presenting the report file, give a quick conversational summary in chat:
✅ Processed [N] leads from the pipeline:
1. [Lead name] — [Project type] — Range: $XX,000–$XX,000 — Quote posted → READY TO REVIEW
2. [Lead name] — Declined (reason) — Polite decline drafted → lead marked "declined"
3. [Lead name] — Needs qualifying — Follow-up questions posted → lead marked "needs qualifying"
📋 Full action report is attached — your top priority is [N] quote(s) to review and send.