Update to Quo
Snapshot Oct 28, 2026 · 12:05 UTC · version 8.1.1
Collection source: downloaded plugin package.
Supporting file metadata differs
Supporting file metadata differs
Observed in package metadata. These changes alone do not establish a new customer-facing feature.
Up to 3 plugins free · no card required.
All fields and original values.
Supporting files
Oct 24, 2026 · 12:47 UTC
[{"relative_path":"references/actions.md","size_in_bytes":7939},{"relative_path":"references/output-template.md","size_in_bytes":4508},{"relative_path":"references/retrieval.md","size_in_bytes":5834},{"relative_path":"references/rubrics/...
Oct 28, 2026 · 12:05 UTC
[{"relative_path":"agents/openai.yaml","size_in_bytes":231},{"relative_path":"references/actions.md","size_in_bytes":7939},{"relative_path":"references/output-template.md","size_in_bytes":4508},{"relative_path":"references/retrieval.md",...
Compare saved observations
Download comparison JSONSKILL.md text changes
− removed · + added
No SKILL.md text changes between these observations.
Full technical diff · 1 changed fields
changed /included_files
[
{
"relative_path": "references/actions.md",
"size_in_bytes": 7939
},
{
"relative_path": "references/output-template.md",
"size_in_bytes": 4508
},
{
"relative_path": "references/retrieval.md",
"size_in_bytes": 5834
},
{
"relative_path": "references/rubrics/agencies.md",
"size_in_bytes": 1718
},
{
"relative_path": "references/rubrics/cleaning.md",
"size_in_bytes": 1758
},
{
"relative_path": "references/rubrics/franchises.md",
"size_in_bytes": 1283
},
{
"relative_path": "references/rubrics/home-services.md",
"size_in_bytes": 2046
},
{
"relative_path": "references/rubrics/law-firms.md",
"size_in_bytes": 2370
},
{
"relative_path": "references/scoring.md",
"size_in_bytes": 5387
},
{
"relative_path": "references/setup.md",
"size_in_bytes": 6407
}
][
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 231
},
{
"relative_path": "references/actions.md",
"size_in_bytes": 7939
},
{
"relative_path": "references/output-template.md",
"size_in_bytes": 4508
},
{
"relative_path": "references/retrieval.md",
"size_in_bytes": 5834
},
{
"relative_path": "references/rubrics/agencies.md",
"size_in_bytes": 1718
},
{
"relative_path": "references/rubrics/cleaning.md",
"size_in_bytes": 1758
},
{
"relative_path": "references/rubrics/franchises.md",
"size_in_bytes": 1283
},
{
"relative_path": "references/rubrics/home-services.md",
"size_in_bytes": 2046
},
{
"relative_path": "references/rubrics/law-firms.md",
"size_in_bytes": 2370
},
{
"relative_path": "references/scoring.md",
"size_in_bytes": 5387
},
{
"relative_path": "references/setup.md",
"size_in_bytes": 6407
}
]Full snapshot data
{
"description": "Score and prioritize new sales leads from a small business's Quo calls, voicemails and texts, then write results back into Quo — a 0–100 score, tier and stage on saved contacts, a note explaining it, and a follow-up task with assignee, due time and draft text. Runs twice daily (morning covers after hours, evening covers the business day) for home services, cleaning, law firms, agencies and franchise locations. Use whenever someone asks to score, rank or prioritize leads, \"who should we call back first\", \"which leads are hot\", \"run lead scoring\", \"set up lead scoring\", \"adjust my lead scoring weights\", or wants follow-up tasks from recent sales calls. Do NOT use for a general what-came-in digest (quo-daily-report), texting every missed caller (quo-missed-call-followup), call quality coaching (sales-call-coaching, daily-call-review), win-loss analysis, real-time urgent alerts, or call volume and answer-rate metrics.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 231
},
{
"relative_path": "references/actions.md",
"size_in_bytes": 7939
},
{
"relative_path": "references/output-template.md",
"size_in_bytes": 4508
},
{
"relative_path": "references/retrieval.md",
"size_in_bytes": 5834
},
{
"relative_path": "references/rubrics/agencies.md",
"size_in_bytes": 1718
},
{
"relative_path": "references/rubrics/cleaning.md",
"size_in_bytes": 1758
},
{
"relative_path": "references/rubrics/franchises.md",
"size_in_bytes": 1283
},
{
"relative_path": "references/rubrics/home-services.md",
"size_in_bytes": 2046
},
{
"relative_path": "references/rubrics/law-firms.md",
"size_in_bytes": 2370
},
{
"relative_path": "references/scoring.md",
"size_in_bytes": 5387
},
{
"relative_path": "references/setup.md",
"size_in_bytes": 6407
}
],
"name": "quo-sales-lead-scoring",
"skill_md_contents": "---\nname: \"quo-sales-lead-scoring\"\ndescription: Score and prioritize new sales leads from a small business's Quo calls, voicemails and texts, then write results back into Quo — a 0–100 score, tier and stage on saved contacts, a note explaining it, and a follow-up task with assignee, due time and draft text. Runs twice daily (morning covers after hours, evening covers the business day) for home services, cleaning, law firms, agencies and franchise locations. Use whenever someone asks to score, rank or prioritize leads, \"who should we call back first\", \"which leads are hot\", \"run lead scoring\", \"set up lead scoring\", \"adjust my lead scoring weights\", or wants follow-up tasks from recent sales calls. Do NOT use for a general what-came-in digest (quo-daily-report), texting every missed caller (quo-missed-call-followup), call quality coaching (sales-call-coaching, daily-call-review), win-loss analysis, real-time urgent alerts, or call volume and answer-rate metrics.\n---\n\n# Quo Sales Lead Scoring\n\nOwners of small businesses don't want a lead score for its own sake. They want to know who to call back first, what to say, and who is about to go to a competitor. This skill reads the Quo line, scores every new sales lead, picks one next step per lead, and leaves the result inside Quo where the team already works. The score is how the list gets sorted; the task is what gets the work done.\n\nTwo runs a day cover the whole day with no gaps and no overlap:\n\n| Run | Default time | Window | Leads with |\n|---|---|---|---|\n| **Morning** | 30 min before open | last evening run → now | Callback order: unanswered leads first, with draft texts |\n| **Evening** | 45 min after close | last morning run → now | Scored pipeline, follow-ups due tomorrow, response-time check on the morning's Hot leads |\n| **Backfill** | on request | explicit range, max 7 days | Used at setup to calibrate. Never writes to Quo and never moves the run cursors |\n\nIf the user names a mode, use it. Otherwise infer from local time in the configured timezone: before 12:00 → morning, 12:00 or later → evening. Say which mode ran and why in one clause, so a wrong guess is easy to spot.\n\n**What this skill is not.** It is not an alert system. A burst pipe at 9pm can't wait for a twice-daily report; urgent alerts belong in Quo's own routing, AI call tags, or a webhook. This skill sees what those systems did only through what reaches Quo's conversations, tasks and contact fields (for example, an outbound reply), and checks the next run that urgent leads were actually handled. The Quo MCP does not expose call tags or contact tags today, so don't look for them or claim to have read them.\n\n## Before running\n\nRead these files when you reach the step that needs them:\n\n- [references/setup.md](references/setup.md) — config template and the setup interview. Read first if no config exists, or when the user asks to change settings or weights.\n- [references/retrieval.md](references/retrieval.md) — how to pull Quo data without silently dropping activity. Read before step 2 of every run.\n- [references/scoring.md](references/scoring.md) — factors, hard rules, tiers, confidence, re-scoring. Read before scoring.\n- `references/rubrics/<industry>.md` — the signals for this business's industry. Read the one named in the config.\n- [references/actions.md](references/actions.md) — which task to create, what to write to Quo, and the guardrails. Read before writing anything.\n- [references/output-template.md](references/output-template.md) — the report format. Read before writing the report.\n\n## Configuration\n\nLook for a config before asking anything. It lives as a Notion page titled `Quo Sales Lead Scoring — [Business or Location]` when Notion is connected, otherwise as `quo-sales-lead-scoring-config-[slug].md` in the working folder. Franchises get one config, one pair of scheduled runs and one report per location.\n\nNo config means run setup per [references/setup.md](references/setup.md). A config with a blank field means ask about that field only. When setup finishes, offer a backfill run over the last few business days at report-only level so the owner can see real scores before anything is written to Quo.\n\n## The run\n\nWork through these steps in order. Each one exists because skipping it produces a specific, trust-destroying failure: missed leads, duplicate tasks, or scores that can't be explained.\n\n### 1. Set the window\n\nDerive `since` and `through` from the run mode, business hours, timezone and the config's `Last run` cursors:\n\n- **Morning:** since = the `Last run / Evening` timestamp if it exists, else the previous business day's close. Through = run time.\n- **Evening:** since = the `Last run / Morning` timestamp if it exists, else today's open. Through = run time.\n- **After a non-business day:** extend back to the last business close. A Monday morning run covers Friday evening → Monday. Say so in the report.\n- **72-hour cap** for morning and evening runs. If the gap is longer, cover the most recent 72 hours and say what was left out.\n- **Backfill:** the user's explicit range, up to 7 days, newest day first.\n\nQuo treats `createdAfter`/`createdBefore` as UTC and returns UTC. Store the IANA zone (never \"EST\"), compute the offset for the run's own date, and show both the local window and the exact UTC boundaries at the top of the report. Sanity-check: an after-hours window that starts an hour before close means the offset is wrong.\n\n### 2. Pull the data\n\nFollow [references/retrieval.md](references/retrieval.md). In short: one inbox at a time, one call at a time, never in parallel. Missed calls (with voicemail transcripts) in one paginated pull, one trial pull of call transcripts, and texts in time slices. Remove duplicates by activity ID (`AC…`). Record coverage as you go, because the report has to state it.\n\n### 3. Group by contact and sort into buckets\n\nGroup all activity by participant phone number so one lead equals one contact, across calls, voicemails and texts.\n\nThen find out which numbers are saved contacts. Call, voicemail and text rows carry only the phone number, never a contact ID, so match numbers against the contact list as described under \"Contact lookup\" in [references/retrieval.md](references/retrieval.md). A number with no match is treated as unsaved.\n\nPut each contact in exactly one bucket:\n\n- **Excluded** — matches the config's exclusion list, or the thread contains an opt-out (STOP, unsubscribe). Never list an opted-out contact as a lead or suggest contacting them.\n- **Spam / vendor / wrong number** — robocalls, suppliers, recruiters, wrong numbers.\n- **Existing customer, not new work** — a saved contact with a scheduling change, invoice question or warranty issue on work already done.\n- **Not enough to score** — a missed call with no voicemail and no text. Unknown is not the same as Cold.\n- **Thread not retrievable** — a row with no participant number.\n- **Sales lead** — asks about price, availability, scope, an estimate, a consult, or booking new work. A saved contact asking about *new* work is still a lead.\n\nOnly sales leads go on to scoring. Everything else is listed briefly under \"Filtered\" so the owner can see nothing was dropped.\n\n### 4. Add context to each lead\n\nBudget: up to 3 Quo calls per lead, Hot candidates first, and at most 30 enrichment calls per run. When the budget runs out, score on what you have and lower confidence.\n\n- **Saved contact** (matched in the contact lookup): `get-contact` reads the current custom fields, including any previous Lead score and Lead stage. `list-contact-notes` (first page) shows earlier notes from this skill, recognisable by the marker line.\n- **History check:** one `fetch-messages` call with that `participantPhoneNumber` and `createdBefore` = the window's `since` tells you whether this is a new lead or a returning one.\n- **Earlier calls:** if the contact has a previous score or an open task from this skill, one `fetch-call-transcripts` call with `participantPhoneNumber` gives the earlier call history, so the score reflects the whole conversation.\n\n### 5. Check open tasks in Quo\n\nTasks live in Quo; the skill keeps no separate list. Make one `list-tasks` pass per run (up to 3 pages of 100). Recognise this skill's tasks by the marker line at the end of the description (see [references/actions.md](references/actions.md)) and match them to leads by the linked activity or conversation ID or the lead number in the marker. If the pass hits the 3-page limit, say so in the report.\n\nThis pass serves four purposes:\n\n- **No duplicates.** A lead with an open task from this skill gets that task updated, not a second one.\n- **\"Still open from earlier runs.\"** Every open task from this skill goes in that table in the report.\n- **Response-time check.** For each Hot callback task created by the previous run (its run ID is in the marker, its tier in the description), find the first human reply after the lead's call or text: use this window's data first, otherwise one `fetch-messages` call with the lead number. Report Met or Missed against the config's Hot target, and add \"Mark done?\" if the task is still open but the callback happened.\n- **Quiet leads.** Any open task from this skill whose lead had no activity in this window still gets reviewed: check that lead's thread since the task was created (one `fetch-messages` call with the lead number from the marker), and re-score it if it went quiet. Cap this at 10 quiet leads per run, oldest due date first.\n\nLeads handled before any task was needed (for example, by an on-call tech overnight) were already reported as handled in the run that saw them, so they don't need a second check.\n\n### 6. Score\n\nFollow [references/scoring.md](references/scoring.md) and the industry rubric. Six factors, weights from the config, hard rules first, every factor backed by a quote or fact, a tier and a confidence level. Score the contact on the whole conversation, not just the new activity, and show the change if there was a previous score.\n\n### 7. Decide the action and write back\n\nFollow [references/actions.md](references/actions.md). Pick one action per lead from its tier and current state, then write at the configured write-back level: fields → note → task. Three rules matter most:\n\n- **The skill never creates contacts.** Unsaved numbers get a task only, with the score in the task description. No prompts to save the contact.\n- **The skill never sends messages and never marks tasks complete.** Drafts go in the task description and the report. A task that looks finished gets a \"Mark done?\" line in the report; a person decides.\n- **One open task per lead.** If one already exists, update it instead of adding another.\n\nBackfill runs never write. Level 0 never writes.\n\n### 8. Write the report and move the cursor\n\nUse [references/output-template.md](references/output-template.md). Every report ends with the tasks created in Quo this run and this skill's tasks still open from earlier runs. Then update the config's `Last run` timestamp for this mode only (not for backfill).\n\n## Scheduling\n\nSetting up the two daily runs is part of setup, not an extra step for the owner. The report is only useful if it shows up on its own every morning and evening.\n\nWhen setup finishes, propose both times in one line and ask the owner to confirm or change them. Times are in the business's timezone:\n\n- **Morning:** about 30 minutes before open.\n- **Evening:** about 45 minutes after close, so the last calls of the day have transcripts.\n\nOnce they confirm, create both runs with whatever scheduling tool the platform provides (for example a scheduled-task tool in Claude, or scheduled tasks in ChatGPT). Use these prompts:\n\n```\nRun quo-sales-lead-scoring in morning mode for [business or location].\n```\n\n```\nRun quo-sales-lead-scoring in evening mode for [business or location].\n```\n\nRun on business days only, matching the config's business days. Record both schedules in the config.\n\nIf the platform has no scheduling tool, say so plainly and give the owner the two prompts to schedule themselves. Don't claim a schedule exists unless the tool confirmed it.\n\nAnything after the evening run lands in the next morning run; the cursors make sure of it.\n\n## What the Quo MCP can and can't support\n\nBe exact about coverage. A report that covers 70% of the window and says so is useful; one that implies 100% will be trusted and is worse than nothing.\n\n- Transcripts exist only for answered calls with transcription on (Business plan). Answered calls without a transcript can't be scored on what was said.\n- Outbound calls that didn't connect leave no trace. Write \"no reply recorded\", never \"nobody replied\".\n- Voicemails process asynchronously. A voicemail in `in-progress` has no transcript yet; retry once before treating the call as having no message.\n- Whole-inbox message pulls cap at 50 contacts and 10 messages per contact; the retrieval rules handle this.\n- No call tags, contact tags, or task filters are available yet.\n- Call and message rows don't include contact IDs, and contacts can't be looked up by phone number, so saved-contact matching pages through the contact list (capped at 1,000 contacts per run).\n- Outcomes (won, lost, job value) aren't in Quo. Scores are informed judgment, not predictions trained on past results.\n\nNever calculate or claim call volume, answer rate, missed-call rate, conversion rate, or complete coverage. Point people to a Quo Analytics export for those numbers.\n\n## Cross-platform behaviour\n\n- Depend only on the Quo MCP and Markdown output (plus Notion for config storage when it's connected).\n- Identify tools by capability when names differ between platforms.\n- Run every Quo call sequentially.\n"
}SHA-256 of public snapshot: b494474579138ebef8de974f1e710f7a42d1ece2c4d1f6974a77e159bdbc15ff