---
name: enquiry-triage
description: "Classify overnight portal and email enquiries into hot, lukewarm, cold, duplicate, or spam. Built for use inside the morning round; the operator does not invoke it directly."
---

# Enquiry triage

A building-block skill called by `morning-round`. Takes the new portal and email enquiries since the last round and assigns each one a triage tag.

## What hot, lukewarm, cold, duplicate, and spam mean

- **Hot.** The enquirer named a price range and a timeline, or asked to book a viewing, or referenced a specific property and confirmed they are a proceedable buyer. Hot enquiries appear verbatim in the round so the operator can act on them without re-reading the source.
- **Lukewarm.** The enquirer asked about a property without naming budget, timeline, or position. The round shows a one-line summary.
- **Cold.** Generic enquiry with no specifics. One-line summary in the round.
- **Duplicate.** Matches a previous enquiry by phone, email, or named buyer in the last 30 days. One-line summary referencing the prior contact.
- **Spam.** Off-topic, lead-broker, or otherwise non-buyer traffic. One-line summary so the operator can confirm the call.

## Triage signals

For each enquiry, the skill considers: source (Rightmove, Zoopla, OnTheMarket, agency website, direct email, WhatsApp), the literal text of the enquiry, the contact details supplied, the CRM history of the same contact, and the property the enquiry refers to.

The decision is the LLM's, not a regex. Classification quality improves as the profile learns from skip patterns (see learning hooks in `morning-round`).

## What it does not do

- It does not reply to enquiries. Reply drafting is `tone-matched-drafter`, invoked from a chase or new-instruction workflow.
- It does not write to the CRM. The enquiry record itself lives in the portal or the email connector; this skill only reads.

## Connectors

Read: portal feeds (Rightmove, Zoopla, OnTheMarket), email, WhatsApp, CRM. No writes.

## Profile keys

- `realagent.enquiry_triage.source_weights` (map of source to weight, learned)
- `realagent.enquiry_triage.spam_phrases` (list of phrases the operator has flagged as spam, learned)
