operating-model / decisions/0002-conversation-as-unit-of-interaction.md
id: adr-0002type: adrstatus: accepted

ADR 0002 — Conversation as the unit of interaction

Status

Accepted.

Context

Conventional marketplace tooling treats the medium (email thread, web chat session, WhatsApp thread, phone call) as the unit of interaction. This leads to fragmented renter records — the same person shows up as three different leads because they engaged on three different channels — and forces each operation to be medium-aware.

From the renter's perspective, there is only one exchange with Rentiful. They pick it up wherever is convenient. Modelling this as multiple leads across multiple channels breaks the concierge feel and makes automation much harder: every operation has to stitch together state that was split for no real reason.

Decision

The conversation is the unit of interaction. Definitions live in the vocabulary. Concretely:

  • One persistent conversation thread per renter.
  • The thread holds full state: history, profile, prior matches, prior responses, medium preferences.
  • Operations operate on conversations, not on messages or threads-per-medium.
  • The medium of any given exchange is operational detail, not a first-class concept.

This applies across all surfaces (rentiful.ai and White Label microsites) and all mediums.

Consequences

  • A platform requirement is created: unified conversation infrastructure (see platform.conversation-infrastructure). This is a structural prerequisite, not a feature.
  • Renter records are merged across mediums. A renter who begins on web chat and continues on WhatsApp is one conversation, not two leads.
  • Operation specs in the Renter Loop take conversations as input rather than messages, and output updates to conversation state.
  • Metrics are conversation-level (conversation health, continuity across mediums, escalation accuracy).
  • Hiring and contractor briefings explicitly train on the conversation model rather than treating each medium as a silo.

Alternatives considered

  • Medium-level interaction model. Rejected: creates fragmentation, makes automation harder, damages the concierge feel.
  • Contact-level interaction model (one record per renter but not a continuous thread). Rejected as insufficient: the thread and its state is what carries meaning, not just identity.

Related

Comment on GitHub →