Domain · Conversion
What it covers
Moving each renter's conversation from expressed interest in a unit through to a signed lease — intent detection, option anchoring, proactive booking, viewing coordination, attendance, post-viewing decision capture, and the handoff to the operator for lease execution. Conversion is where the matching domain's surfaces and the engagement domain's continuity become a transaction.
The Conversion domain is the operational home of the Viewing Journey — six of the journey's seven stages live here, the seventh (intent-capture) starts here and references the engagement domain's in-conversation-qa as a feeder signal. The domain is also the gateway to the Closing Journey: a positive post-viewing decision routes through lease-execution-handoff into the closing cycle.
Activities
- Detecting viewing-intent signals in renter messages and classifying them.
- Anchoring renter choice on 1–2 justified options before triggering bookings.
- Proactively asking the renter for the viewing slot.
- Scheduling, confirming, and reminding both renter and operator.
- Capturing the attendance state on every scheduled viewing.
- Capturing the renter's decision after every attended viewing within the defined time window.
- Generating handoff packages for the operator on the positive-decision path; following the conversation through to signature.
Operations
Intent-detection operation
Signal: Renter message contains a candidate viewing-intent signal — explicit ("can I view this Saturday?"), implicit ("is it still available?"), or unit-specific question that could resolve into intent ("does it have parking?", in context of a single surfaced unit).
Steps: Classify the message against the renter's conversation state → produce one of {confirmed, ambiguous, rejected} → route accordingly.
Closed state: Intent classified; confirmed intents route to option-anchoring, ambiguous intents to engagement for clarification, rejected classifications are no-ops on the Viewing Journey.
Cadence: Event-driven.
Intent-detection specialises viewing-intent classification. The generic in-conversation-qa operation in the engagement domain remains the handler for non-viewing renter questions; the two operations coexist.
Option-anchoring operation
Signal: Confirmed viewing intent detected for a renter. Steps: Read the renter's current brief from the profile → identify 1–2 options that carry an inspectable per-renter justification → present them in-conversation with the justification visible → capture renter confirmation or counter-suggestion. Closed state: 1–2 options anchored, justified, presented, and either confirmed or counter-suggested by the renter. Cadence: Event-driven.
The 1–2 limit is a deliberate constraint, not a default — surfacing more is an honest-brokerage breach per ADR 0003 because it pushes choice complexity onto the renter rather than absorbing it into the concierge process.
Booking-trigger operation
Signal: Options anchored for a renter, or renter has independently expressed firm interest in a specific unit (bypassing the anchoring step on a single-unit signal). Steps: Compose the booking ask in the renter's preferred medium → "When would you like to view?" with concrete slot options where availability is known → deliver → capture renter response. Closed state: Booking ask delivered; renter response (slot offered / declined / requesting alternatives) captured. Cadence: Event-driven.
Rentiful asks first. This operation must fire proactively after option-anchoring; reactive booking — waiting for the renter to ask — is the defining-feature failure mode this operation exists to prevent. See ADR 0006 — Rentiful owns viewing booking.
Viewing-coordination operation
Signal: Renter offers ≥1 candidate slot in response to booking-trigger.
Steps: Cross-check operator availability via operator-loop.listings.availability-sync → confirm slot with both renter and operator → dispatch reminders to both sides through the renter's preferred medium.
Closed state: Viewing scheduled and confirmed by renter and operator, reminders dispatched.
Cadence: Event-driven.
Scope narrowed in Commit 3 to scheduling and logistics only. Post-viewing follow-up — capturing what the renter thought, whether they want to apply, whether they want to see more — moved to
post-viewing-decision-captureso each operation has a single clean closed state.
Attendance-confirmation operation
Signal: Scheduled viewing time has elapsed, or operator/renter signals attendance state mid-window (e.g. cancellation, reschedule request).
Steps: Resolve into one of attended / cancelled / rescheduled / no-show → record the state on the conversation → route to next stage: attended → post-viewing-decision-capture; rescheduled → back to viewing-coordination with the new slot; cancelled or no-show → engagement domain for recovery.
Closed state: Attendance state captured; routing applied.
Cadence: Event-driven.
Every scheduled viewing must resolve into one of these four states. "Unknown" is not a valid terminal state — an unresolved viewing fires the
unresolved-viewingfailure state on the Viewing Journey, which routes through stuck-conversation.
Post-viewing-decision-capture operation
Signal: Attendance confirmed as 'attended'. Steps: Open the post-viewing conversation thread — "What did you think?" / "Could you see yourself living there?" / "Anything we can help with?" → classify the renter's response into a decision state → if no response within the defined window, classify as 'ambiguous' and route to engagement for nurture. Closed state: Decision state captured — one of interested-and-want-to-apply, declined, want-more-options, ambiguous. Cadence: Event-driven.
Every attended viewing must produce a decision state within the defined post-viewing window. Silence is not a decision: the operation explicitly produces 'ambiguous' rather than letting the conversation lapse, so the journey always has somewhere to go next.
Lease-execution-handoff operation
Signal: Post-viewing decision captured as 'interested-and-want-to-apply' (positive-decision path only). Steps: Generate the handoff package for operator (renter details, unit, terms, conversation context) → transfer execution responsibility → operator runs lease paperwork → signed lease received and recorded → Rentiful's conversation continues in parallel. Closed state: Signed lease received and recorded; Rentiful's conversation with the renter continues in parallel with the operator's execution work. Cadence: Event-driven.
Refactored in Commit 3 to fire only on positive post-viewing decision, replacing the earlier "renter ready to sign" trigger which conflated several upstream signals and could fire prematurely. Critical handoff between Renter Loop and Operator Loop — must be clean. Rentiful's conversation continues after handoff ("What did you think of the apartment?", "Anything we can do to help move this forward?", "Do you have an agreed move-in date?") rather than terminating at handoff.
Notes
Conversion is the domain most directly under commercial pressure to drift — the easy thing is to hand off at "interested" and let the operator close. ADR 0003 — Concierge as defining feature and ADR 0006 — Rentiful owns viewing booking together encode the anti-drift commitments. The seven operations in this domain are deliberately structured so each anti-drift rule has an Operation that enforces it, rather than the rule living only in prose.
The Viewing Journey is the read-only orchestration of these operations into a single goal arc. The journey defines correct progression and failure-handling; the operations execute the work.
On partner (White Label) surfaces, these operations run identically but the outbound messages are co-branded. The loop mechanics do not change.