L

Mioym Affordable Homes

System design

MS

System design

How the leasing assistant is put together.

Business rules, workflow, and conversation are engines outside React. The UI reads them; it does not own them. Every integration sits behind a port with a mock, so Mioym Affordable Homes can run the workflow before a single credential exists.

Workflow stages

Derived from services/workflow — this list cannot drift from the engine.

1Awaiting tour date2Awaiting tour time3Awaiting credit score4Awaiting annual income5Awaiting monthly income6Qualified7Tour booked8Waiting for documents9Verified10Door code sent11Tour completed12Follow-up sent13ClosedBranch · Alternate options

Qualification rules

Configured in services/rules. Thresholds are data, not code.

Tour preference collected

Date and time required

soft

Minimum credit score

600 or above

hard

Income details

Annual and monthly required

soft

Employment status

Employed or self-employed

Disabled

Move-in date

Date provided

Disabled

Property availability

Unit still available

Disabled

Pet preference

Within property pet policy

Disabled

Integrations

Ports, adapters, and what backs them

Each integration is an interface with a working mock. Swapping in a real provider is a container change, not a rewrite.

PortMockLive todayProduction target
CrmPortIn-memory mapAirtableFreshworks
LlmPortDeterministic rulesOpenAI · Anthropic · GeminiAny provider
CalendarPortFixed inventoryCalendlyMS Bookings
EmailPortConsole logn8n → GmailOutlook · SendGrid

CRM schema

Leads

Contact, source, stage, qualification, door code, ingestion completeness

Activities

Timeline events and notification deliveries, batched per lead

Tours

Reserved slot, duration, door-code issuance, cancellation

Emails

Send history: template, recipient, status, provider message id

Properties

Address, unit, availability

Conversation memory

What Sophie remembers

Context carries across every channel, so a question already answered is never asked twice.

Lead name and contactProperty of interestCredit scoreAnnual and monthly incomePreferred tour date and timeOutstanding documentsEvery previous answer

Voice agent

Prepared, not yet built

Post-tour follow-up by AI phone call is in the client's scope. The conversation engine is channel-agnostic, so voice reuses the same turn contract.

1Greeting
2Qualification
3Scheduling
4Confirmation
5Human handoff
Deferred · no telephony credential