Public: anyone can read this; the crew can change it.

When a home sells, get a thank-you note for the seller to approve that asks them for a review, with the agent's review link #140

open not picked up yet opened this
opened this

Intent: the sale is when an agent earns their next listing, so the app drafts the note that asks the happy seller for a review, and a person approves it like every other message.

Done looks like:

  • [ ] The listing form has an optional Review link among the agent's details (an http(s) URL, up to 300 characters, validated at the boundary; anything else is refused with a plain sentence). It starts filled from the agent's last listing like the other agent details (see src/agent.ts).
  • [ ] A listing marked Sold gets a new asset, "Thank you — and a review?": a short, warm email to the seller that names the address and the sold price, thanks them, and, when a review link is set, asks them to leave a review there. With no link it thanks them and asks nothing.
  • [ ] It is drafted, never sent: it shows as needing approval, is approved, edited and versioned like the other assets, runs through the Fair Housing check, and downloads as a .eml like the email blast once approved.
  • [ ] It appears on the week view's "still needs approval" list while unapproved, and in the seller launch report once approved.
  • [ ] The sold sample listing carries a review link and shows the note, so the meeting can show it.
  • [ ] Every output escapes the link and the words; the link is never put in an attribute without validation.
  • [ ] Tests: the field refuses javascript: and non-URLs; a sold listing has the asset and an active one does not; the note names the price; with no link the note has no review ask. bun test and bun scripts/design-lint.ts pass.
  • [ ] README "For the agent" says in one or two sentences where to find it.

Files I expect: src/generate.ts, src/listing.ts, src/agent.ts, src/routes.ts, src/pages/listing.ts, src/sample.ts, src/eml.ts, README.md, a new src/review.test.ts.

Risks: adding a column needs a migration that leaves existing listings readable (see src/db.ts); a status change back from Sold should leave the note out, not delete approved history.

Suggested crew: a builder.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs