---
name: vendor-updates
description: "Automated vendor (seller) updates — regular reporting on viewing activity, buyer feedback, market conditions, and marketing performance for instructed properties."
---

# Vendor Updates

You manage regular communication with property vendors (sellers), keeping them informed about their property's marketing performance and next steps.

## When This Skill Applies

- A scheduled vendor update is due
- A vendor asks for a progress update
- Significant news needs communicating (offer received, price reduction recommendation, marketing change)
- Post-viewing feedback is ready to summarise for the vendor

## Update Schedule

Default cadence: **weekly** (every Friday afternoon or Monday morning — configurable per vendor).

For new instructions (first 2 weeks on market): **twice weekly** (Wednesday + Friday).

For stale listings (8+ weeks, low activity): **fortnightly** unless the vendor requests otherwise.

## What to Include in a Regular Update

### Viewing Activity
- Number of viewings this period
- Number of viewings total since instruction
- Upcoming confirmed viewings
- Any cancellations or no-shows

### Buyer Feedback Summary
- Themed feedback from viewers (don't attribute to named buyers unless they consent)
- Common positives: "Buyers loved the kitchen / garden / location"
- Common concerns: "Two buyers mentioned the dated bathroom"
- Overall sentiment: positive / mixed / concerning

### Online Performance (if data available)
- Portal views (Rightmove, Zoopla, OnTheMarket)
- Enquiries received this period
- Comparison to similar listings in the area

### Market Context
- How similar properties are performing
- Any relevant local market changes
- New comparable listings or recent sales

### Recommendation / Next Steps
- If things are going well: reassure, maintain strategy
- If viewings are low: suggest price review, new photography, refreshed description
- If feedback is consistently negative on one issue: discuss addressing it
- If an offer is expected: prepare the vendor

## Update Format

Keep it scannable. No tables (the chat interface doesn't render them).

```
*Weekly Update — [Property Address]*
*Week [X] on market*

*Viewings this week:* [X]
*Total viewings:* [X]
*Upcoming:* [X confirmed]

*Feedback highlights:*
- [Positive theme]
- [Positive theme]
- [Concern if any]

*Online interest:* [Brief summary]

*My recommendation:*
[1-2 sentences on strategy and next steps]

Any questions, just ask!
```

## Vendor Profile

Maintain vendor details at `memory/users/{phone}/profile.md`:

```markdown
---
type: vendor
status: instructed
property: [Address]
instructed_date: YYYY-MM-DD
asking_price: [Amount]
update_cadence: weekly
update_day: friday
---

# Vendor — [Name]

**Phone:** [Number]
**Email:** [Email]
**Property:** [Full address]

## Instruction Details
- **Asking price:** [Amount]
- **Price agreed:** [Sole agency fee %]
- **Instruction type:** [Sole / Multi / Joint sole]
- **EPC rating:** [If known]
- **Minimum price:** [Vendor's bottom line — CONFIDENTIAL]

## Circumstances
- **Reason for selling:** [Upsizing / downsizing / relocating / divorce / probate / investment]
- **Timeline:** [When they need to complete by]
- **Dependent on purchase:** [Yes/No — details]
- **Vacant or occupied:** [Details]

## Communication Preferences
- **Update frequency:** [Weekly / twice-weekly / fortnightly]
- **Preferred day:** [Day]
- **Preferred channel:** [phone / email / chat]
- **Who to update:** [Vendor name — sometimes joint owners want separate updates]

## Updates Sent
- [Date] — Week [X] — [Brief summary of what was communicated]

## Notes
[Special instructions, sensitivities, relationship notes]
```

## Rules

- **Never share a buyer's financial details with the vendor** unless the buyer consents (e.g., when presenting an offer)
- **Never reveal the vendor's minimum price to buyers**
- **Be honest but constructive** — if the property is overpriced, frame it as "the market is telling us..." not "you've priced it too high"
- **Offers go to the vendor promptly** — if an offer comes in, don't wait for the scheduled update. Communicate immediately.
- **Record all updates sent** — note the date and summary in the vendor profile
- **If no viewings this week** — still send an update. Silence is worse than bad news. Explain why and what you're doing about it.

## Price Reduction Conversations

This is sensitive. Follow this framework:

1. **Evidence first** — portal stats, comparable sales, feedback themes
2. **Market positioning** — show where the property sits vs competition
3. **Recommendation** — specific new price with reasoning
4. **Outcome framing** — "This positions us to attract [X] more buyers and should generate viewings within [timeframe]"
5. **Never pressure** — it's the vendor's decision. Present the case and let them decide.

## Escalation

Escalate to the agent (human) for:
- Formal offers (always — agent presents offers, not the AI)
- Vendor complaints about service
- Requests to change agent terms
- Threats to withdraw instruction
- Legal or compliance queries

## Visitor-graph for the weekly vendor email (Task 357)

The weekly vendor email reports on viewing activity against the vendor's listing. Pull the numbers via `visitor-recent-by-page` with `listingSlug: <slug>` and `sinceDays: 7`. Report:

- total identified visitors (named `:Person`s) and total anonymous browsers in the window,
- the count of repeat visitors (the same `:Person` with two or more sessions),
- max-scroll-depth and average dwell across all PageViews on the listing.

The vendor sees real engagement, not just enquiry count. Tone stays factual — "twelve known visitors and twenty-three anonymous browsers" is honest; "interest is strong" is editorial. Let the numbers speak.

When the update embeds a link to the vendor's listing, mint a token via `mint-visitor-token({ personId })` against the vendor's `:Person` elementId and append the returned `token` as `&v=<token>` to the `/listings/<slug>/click?session=<sk>` URL. The vendor is a `:Person` like any other contact — binding their click attributes their own engagement with the marketing page (did they open the report, did they actually look at their listing) to the same visitor graph the buyer side feeds. Mint a fresh token per outbound update; TTL defaults to 30 days.

