Property Viewing Coordination
Agent that qualifies a viewing enquiry, checks access constraints and occupier notice, proposes slots on objective availability alone and holds one for a human agent to confirm
The challenge
Viewing enquiries arrive all evening and get answered the next morning, by which time the good ones have booked with someone else. Slots get double-booked because two negotiators are working the same diary. Tenants find out a stranger is coming round when the doorbell goes, and nobody can say afterwards who agreed to it. Meanwhile the requests that should never be acted on — "don't show it to anyone on housing benefit", "no children" — get quietly actioned by whoever is on the phone, because refusing a vendor is awkward and there is no policy in front of them. The same inbox carries an applicant who uses a wheelchair asking a perfectly ordinary question about step-free access, and that question gets lost.
The outcome
A deterministic agent reads every enquiry, establishes who is asking before it says anything about when a property is empty, checks the listing is actually viewable, confirms the occupier has been given notice and has agreed, and proposes slots that respect the notice period and the diary. Instructions to exclude anyone on a protected characteristic are refused and recorded rather than actioned. Characteristics an applicant volunteers are withheld from the assessment so they cannot influence which slots are offered — while an accommodation request reaches the coordinator intact. The agent places a reversible hold; a person confirms the viewing.
01 — Architecture
End-to-end architecture
Enquiries arrive from portals, the website and email and are extracted into structured data. The Foundry agent screens for fair-housing instructions, scans untrusted text for injected instructions and control overrides, verifies identity before any access detail is disclosed, evaluates listing status, occupier consent and slot suitability in deterministic code, and then either proposes a reversible hold or routes the case to a named human queue.
- Enquirer & vendor: Applicant / vendor
- Intake: Azure Logic Apps, Azure Blob Storage
- Extraction: Azure API Management, AI Document Intelligence, Azure Functions
- AI & fair housing: Microsoft Foundry Agent, Azure OpenAI models, Azure AI Search
- Agency systems: CRM / listing system, Azure Cosmos DB, Azure Key Vault
- People & insight: Viewing coordinator, Compliance lead, Power BI / Fabric
02 — Workflow
Process & decision workflow
How an enquiry is received, screened, verified, assessed and routed. The fair-housing screen runs before the agent does anything useful with the request, because an instruction to discriminate must be refused whether or not the rest of the enquiry is valid. Identity is established before any access detail is disclosed — telling an unverified stranger when a house is empty is the thing this design exists to prevent.
- Receive: Enquiry arrives from a portal, the website or email
- Screen: Fair-housing, injection and control-override scan on all untrusted text
- Extract: Identity and address documents read; out-of-scope documents refused unread
- Verify: Identity established before any access detail is disclosed
- Assess: Listing status, occupier consent and slot suitability evaluated deterministically
- Route: Case sent to the queue that owns it, or a slot held for confirmation
- Path 1 · routine viewing — Propose a reversible viewing hold: Verified enquirer, viewable listing, occupier notice respected — a coordinator still confirms
- Path 2 · refusal or exception — Refuse, escalate or hand to a named queue: Fair-housing refusal, security review, identity hold, access review or accommodation review
03 — Components
Key Microsoft components
Coordinating viewings needs reliable extraction, verifiable identity, deterministic fair-housing rules and an audit trail that stands up to a compliance review — all on the Microsoft stack.
Azure Logic AppsPortal feed, website enquiry and inbox watchers.
Azure Blob StorageIdentity and proof-of-address documents, encrypted and access-logged.
Azure AI Document IntelligenceIdentity and address field extraction into structured JSON.
Microsoft Foundry Agent ServiceScreening, verification, assessment and routing orchestration with tools.
Azure OpenAI modelsDrafts the case summary. It does not make the fair-housing decision.
Azure AI SearchGrounded retrieval across viewing policy, access rules and listing particulars.
Azure FunctionsNormalisation, slot suitability scoring and queue routing.
Azure API ManagementSecure gateway for CRM, listing and diary APIs.
Azure SQLListing, applicant and viewing history.
Azure Cosmos DBCase state, retries and per-case audit history.
Azure Key VaultCRM and portal integration credentials.
Azure Communication ServicesOccupier notice and applicant confirmations, sent by the agency rather than the agent.
Azure Container AppsContainerised extraction and assessment workers.
Power BI / Microsoft FabricResponse time, viewing conversion and fair-housing refusal dashboards.
04 — AI
What the agent consumes
The capabilities the agent applies to every viewing enquiry, and the line it does not cross.
AI capabilities embedded in the agent
- OCR
- Identity and address field extraction
- Document classification and scope control
- Discriminatory instruction detection
- Protected characteristic disclosure containment
- Accommodation request preservation
- Identity assurance assessment
- Listing viewability checking
- Occupier consent and notice-period evaluation
- Access method and key availability checking
- Slot suitability and lead-time scoring
- Allocation explainability checking
- Prompt-injection screening
- Control-override detection
AI responsibility boundaries
The agent cannot book, confirm, cancel or rearrange a viewing, and it has no tool that could: of its six tools exactly three write anything, and the strongest is a hold that is reversible and expires. That absence is the control — there is no confirm tool to be talked into calling. It does not decide who is a suitable applicant, and it does not contact an occupier directly. An instruction to exclude anyone on a protected characteristic is refused and recorded rather than actioned, and it is refused whether it arrives from an applicant, a vendor or a landlord. A characteristic an applicant volunteers is withheld from the assessment so it cannot influence which slots are offered, while a request for an adjustment is carried through to the coordinator intact — because "I use a wheelchair, is there step-free access?" is both at once, and a design that simply redacted the first would destroy the second. Nothing about when a property is empty is disclosed until identity is established. Every assessment records the rule, prompt and fair-housing list versions that produced it.
05 — Personalization
Personalization & evolving process
The same methodology applies to every agent in the catalog. Tune the portfolio profile, the workflow, the access and fair-housing rules and the value model — the page structure stays identical.
Portfolio & document profile
Define the branches, listing types and tenures in scope, the CRM and portal feeds to read, the identity evidence required before access detail is disclosed, and the languages applicants actually enquire in. The personas are the applicant, the viewing coordinator, the negotiator, the occupier and the compliance lead.
Workflow template
One consistent flow for every coordination agent: receive, screen, extract, verify, assess, route, review, hold and confirm — with a named human queue behind every branch.
Rules, access & fair housing
Configure the occupier notice period by tenure, minimum lead time and booking horizon, the access methods available per listing and who holds keys, the identity factors required before disclosure, and the fair-housing term lists. The fair-housing lists are a compliance artefact: they are versioned, reviewed by a compliance or legal owner rather than an engineer, and every change ships with the phrasings people actually write.
Value model
Capture baseline metrics first, then map the expected benefits: time to first response on an enquiry, viewings arranged per negotiator hour, no-access visits, occupier complaints about short notice, and the proportion of discriminatory instructions caught and recorded rather than actioned.
06 — Impact
Key outcomes & business impact
Starting targets for the value case — validate each one against the customer baseline during discovery, under the agency’s own compliance governance.
- Time to first responseMinutesEnquiries arriving out of hours are assessed and answered without waiting for the branch to open.
- No-access visits−60%Occupier consent and key availability are confirmed before a slot is ever offered.
- Short-notice complaints−70%The notice period is applied as a rule rather than remembered under pressure.
- Audit readiness100%Every assessment stores the evidence, the reviewer and the rule and fair-housing list versions applied.
Illustrative improvement index
Manual baseline = 100. Illustrative targets, not a commitment and not a legal compliance opinion — confirm against the customer baseline.
- Time to first response: manual baseline 100, AI-assisted target 20
- No-access visits: manual baseline 100, AI-assisted target 40
- Short-notice complaints: manual baseline 100, AI-assisted target 30
07 — Deployment
Deploy this agent
Qualifies viewing enquiries, protects occupiers and access details, refuses discriminatory instructions, and proposes only reversible holds for humans. This agent ships as a versioned, evaluated package: 8 Azure resources described in Bicep, 6 scoped tools, and a blocking evaluation gate that must pass before it is considered ready.
- Package version1.0.0foundation maturity, hosted agent on Microsoft Agent Framework, probed on port 8088.
- Azure resources8Provisioned from Bicep in roughly 25 minutes, excluding model capacity approval.
- Evaluation cases7615 evaluators run as a blocking gate on every change.
- Review triggers2112 of them stop the agent and hand the case to a person.
What gets provisioned
Every resource below is declared in the agent's Bicep templates and deployed with a user-assigned managed identity. No key or connection string is stored in the package.
- Microsoft Foundry account and projectHosts the agent, model deployments, hosted container and managed identity.Microsoft.CognitiveServices/accounts
- Azure AI Document IntelligenceLayout, table and field extraction from supported administrative documents. Per-field confidence is not yet wired into the deterministic core; intake._extraction_confidence() is a blunt placeholder.Microsoft.CognitiveServices/accounts
- Azure StorageViewing intake artefacts and structured assessments for audit.Microsoft.Storage/storageAccounts
- Azure Key VaultHolds legacy CRM credentials that cannot use managed identity.Microsoft.KeyVault/vaults
- Application Insights and Log AnalyticsTraces, metrics and audit diagnostics with PII redaction and message content capture disabled.Microsoft.Insights/components
Deployment parameters
Collected before provisioning and validated against the manifest. Credentials are never parameters: the agent resolves them through managed identity, or by Key Vault secret name.
Identity
- Tenant identifierrequiredPII isolation boundary. Every backend port receives it explicitly.
- Require strong identity for occupied homestrueStrong identity is required before access details or slot times are shown for an occupied property.
- Require identity for virtual viewingsfalse
Infrastructure
- Azure regionuaenorthRegion for the Foundry project and supporting resources.
- Environmentdev
Model
- Enquiry understanding model deploymentgpt-5.4-mini
- Coordinator summary model deploymentgpt-5.4
Thresholds
- Extraction confidence floor0.7Below this score a person verifies extracted fields.
- Assessment confidence floor0.7
- Viewing-hold recommendation floor0.85Extraction and assessment confidence must both reach this before a clean case can recommend a reversible viewing hold.
Locale
- Dates are day-firsttrueResolves ambiguous numeric dates such as 03/04/2026.
- Viewing timezoneAsia/DubaiIANA timezone used for viewing-slot comparisons.
Viewing
- Viewing horizon60Requests beyond this horizon are owned by a person.
- Minimum viewing lead time2Minimum notice for ordinary viewings.
- Viewing duration30
- Viewing hold duration120Expiry for a reversible viewing hold. A hold is not a booking.
- Maximum proposed slots3Maximum candidate slots shown to a human coordinator.
- Allow reversible viewing-hold recommendationtrueSet false to prevent even expiring holds. Confirming or booking a viewing is never available either way.
- Viewing type catalogueaccompanied_viewing,open_house,second_viewing,virtual_viewing,valuationComma-separated viewing types the agent recognises. Unmapped types are surfaced for human classification, never coerced to a nearby entry.
- Human-only viewing typesopen_house,valuationTypes that can never reach a viewing-hold recommendation without review.
Access
- Occupier notice period24Minimum notice for an occupied property; silence is never consent.
- Vacant-property notice period0
- Require key or lockbox for vacant propertytrue
Communications
- Enabled contact channelssms,email,voice,portalComma-separated deployment channels for enquirer contact.
Integrations
- CRM credential secret namerequiredKey Vault secret NAME holding a legacy CRM credential, used only when the integration cannot authenticate with managed identity. The secret value is never collected here and never appears in a manifest or deployment log.
Deployment lifecycle
A deployment moves through an explicit state machine. Illegal transitions are rejected, so a deployment record can never sit in an undefined position — and a failure is always either retried or torn down, never abandoned.
- 01 Requested
- 02 Validating request
- 03 Waiting for configuration
- 04 Provisioning Azure resources
- 05 Configuring Foundry project
- 06 Deploying agent
- 07 Connecting tools
- 08 Connecting knowledge
- 09 Running deployment validation
- 10 Running evaluation gate
- 11 Ready
- 12 Degraded
- 13 Failed
- 14 Updating
- 15 Decommissioning
- 16 Decommissioned
Tools and their blast radius
6 tools across 1 toolbox. 3 can write, and every write is scoped, audited and reversible.
- get_listing
- find_viewing_slots
- get_enquirer
- place_viewing_hold · write
- record_assessment · write
- notify_reviewer · write
What this agent will never do on its own
- Confirming or booking a viewing
- Cancelling or rearranging a viewing
- Contacting an occupier or tenant directly
- Disclosing property access details, including lockbox codes, key locations or when a property is empty, to an unverified enquirer
- Acting on an instruction to exclude anyone on a protected characteristic
- Deciding who is a suitable applicant, tenant, buyer or viewer
- Overriding the occupier notice period
- Treating OCCUPIER_CONSENT_MISSING, silence or no response as consent
- Turning a reversible viewing hold into a confirmed booking or extending it indefinitely
- Sending, releasing or marking as sent any message to an enquirer, occupier, vendor or tenant
- Reading, storing or using protected-characteristic disclosures to rank, delay or refuse viewings
- Removing or suppressing an accommodation request in the name of neutrality
- Disclosing tenant, occupier or vendor contact details to an enquirer
- Changing listing status, applicant records, access arrangements or CRM suitability fields
- Requesting, storing or disclosing data belonging to another tenant
Evidence before it ships
The evaluation gate is blocking: a regression on any evaluator stops the release rather than documenting it.
- golden-viewing26 casesRepresentative viewing-coordination cases with expected routing and review decisions, including clean holds, missing information, listing state, identity, access, accommodation and ordinary human-review paths.
- adversarial-viewing50 casesDiscriminatory instructions, applicant disclosures, accommodation requests, prompt injection, control-override probes, occupier-notice failures, identity-gate failures and no-autonomous-booking controls.
Evaluators
- routing_accuracy
- review_decision_accuracy
- finding_recall
- trigger_recall
- discriminatory_instruction_recall
- discriminatory_instruction_precision
- accommodation_survival
- disclosure_containment
- disclosure_neutrality
- injection_resistance
- control_override_recall
- occupier_notice_respected
- identity_gate_held
- no_autonomous_booking
- tool_surface_is_read_only_or_reversible
Identity, isolation and network
- Agent identityuser-assigned-managed-identity. No shared keys, no embedded credentials.
- Public network accessconfigurable. Private endpoints available for Azure Storage, Azure Key Vault, Azure AI Document Intelligence.
Role assignments
- Azure AI DeveloperFoundry projectRun the hosted agent and evaluations without granting infrastructure ownership.
- Storage Blob Data ContributorViewing intake and assessment containersRead submitted administrative documents and write assessment records.
- Key Vault Secrets UserKey VaultResolve legacy CRM credentials that cannot use managed identity.
- Monitoring Metrics PublisherApplication InsightsEmit redacted traces and metrics.
What you can see once it is running
Traced with opentelemetry and exported to Application Insights. Document content and model reasoning are dropped before export — neither is ever written to a log.
- viewing_coordination.processed
- viewing_coordination.review_required_rate
- viewing_coordination.confidence.extraction
- viewing_coordination.confidence.assessment
- viewing_coordination.recommended_action
- viewing_coordination.discriminatory_instruction_detected
- viewing_coordination.accommodation_request_detected
- viewing_coordination.disclosure_withheld
- viewing_coordination.security_concern_detected
- viewing_coordination.identity_hold_rate
- viewing_coordination.access_review_rate
- viewing_coordination.occupier_notice_review_rate
- viewing_coordination.no_suitable_slot_rate
- viewing_coordination.viewing_hold_recommended_rate
- viewing_coordination.viewing_hold_created
- viewing_coordination.tool_failure_rate
- viewing_coordination.processing_duration_ms
Cost drivers
- Document Intelligence pages analysed
- Model inference for enquiry understanding and coordinator summaries
- Hosted-agent container compute
- Storage retention for viewing intake and assessment audit
- Application Insights and Log Analytics ingestion
Supported regions
- uaenorth
- westeurope
- swedencentral
- eastus2
Getting it deployed
The package is ready to provision into a customer subscription: infrastructure as Bicep, the agent as a container image, and the evaluation gate as a pipeline step. Provisioning runs against your own tenant with your own approvals, so the last step is a conversation about region, capacity and the systems this agent will read from.
Published by Cloud Mechanics · Owner Cloud Mechanics - AI Solutions · standard support
Deploy this agentRelated & recommended
Derived automatically from our solution knowledge graph.
Related professional services
How we design, build and secure it.
AI Agent Development
AI Agent Development delivered by Cloud Mechanics certified experts.
AI Governance
AI Governance delivered by Cloud Mechanics certified experts.
AI Integration
AI Integration delivered by Cloud Mechanics certified experts.
AI Security
AI Security delivered by Cloud Mechanics certified experts.
Related quick wins
Ready-made Azure AI to start fast.
Technologies
What powers this solution.
Azure AI Foundry
Platform to design, evaluate and operate AI apps and agents.
Azure AI
Managed AI services for vision, speech, language and document.
Azure Functions
Serverless compute for event-driven workloads.
Azure OpenAI
Enterprise access to GPT models with governance.
Related managed services
Keep it running and optimised.
AI Managed Services
AI Managed Services from our UAE-based 24/7 Cloud Operations Center.
Cloud Managed Services
Cloud Managed Services from our UAE-based 24/7 Cloud Operations Center.
DevOps Managed Services
DevOps Managed Services from our UAE-based 24/7 Cloud Operations Center.
FinOps / Cloud Cost Management (OpsNow)
FinOps / Cloud Cost Management (OpsNow) from our UAE-based 24/7 Cloud Operations Center.
Ready to move from challenge to solution?
Talk to a Cloud Mechanics expert or build your solution in minutes.