Skip to content
Cloud Mechanics
Property Viewing Coordination iconAI Agent

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.

At a glance

Type
ai agent

Next step

Move from solution to engagement.

Build This Solution

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 & VENDORApplicant /vendorportal · website · emailINTAKEAzure Logic Appsportal feeds & enquiry inboxAzure BlobStorageID & proof of address · encryptedEXTRACTIONAzure APIManagementgateway · auth · auditAI DocumentIntelligenceidentity & address fieldsAzure Functionsnormalise & classifyAI & FAIR HOUSINGMicrosoft FoundryAgentscreen · verify · assess · routeAzure OpenAImodelscase summarisation onlyAzure AI Searchviewing policy & access rulesAGENCY SYSTEMSCRM / listingsystemlistings, diary & applicantsAzure Cosmos DBcase state & auditAzure Key Vaultintegration credentialsPEOPLE & INSIGHTViewingcoordinatorconfirm · arrange accessCompliance leadfair-housing refusalsPower BI / Fabricresponse time & conversionDEVOPS & DELIVERYGitHubsource control & CIDockercontainer buildContainer Registryversioned imagesWorker releasedeploy with rollback
Figure 1 — End-to-end reference architecture for property viewing coordination on the Microsoft stack.
  • 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.

1ReceiveEnquiry arrives from a portal, thewebsite or email2ScreenFair-housing, injection andcontrol-override scan on all untrusted…3ExtractIdentity and address documents read;out-of-scope documents refused unread4VerifyIdentity established before any accessdetail is disclosed5AssessListing status, occupier consent andslot suitability evaluated…6RouteCase sent to the queue that owns it, ora slot held for confirmationLawful, verified& access agreed?Path 1 · routine viewingPropose a reversible viewing holdVerified enquirer, viewable listing,occupier notice respected — a…Path 2 · refusal or exceptionRefuse, escalate or hand to a named queueFair-housing refusal, security review,identity hold, access review or…Decision recordedRule, prompt and fair-housinglist versions stored with the…Occupier given noticeNotice drafted on an enabledchannel — never sent by the…Closeviewing confirmed by a person
Figure 2 — Receive → screen → extract → verify → assess → route → fair-housing branch → hold or handover.
  1. Receive: Enquiry arrives from a portal, the website or email
  2. Screen: Fair-housing, injection and control-override scan on all untrusted text
  3. Extract: Identity and address documents read; out-of-scope documents refused unread
  4. Verify: Identity established before any access detail is disclosed
  5. Assess: Listing status, occupier consent and slot suitability evaluated deterministically
  6. Route: Case sent to the queue that owns it, or a slot held for confirmation
  7. Path 1 · routine viewingPropose a reversible viewing hold: Verified enquirer, viewable listing, occupier notice respected — a coordinator still confirms
  8. Path 2 · refusal or exceptionRefuse, 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 Apps iconAzure Logic AppsPortal feed, website enquiry and inbox watchers.
  • Azure Blob Storage iconAzure Blob StorageIdentity and proof-of-address documents, encrypted and access-logged.
  • Azure AI Document Intelligence iconAzure AI Document IntelligenceIdentity and address field extraction into structured JSON.
  • Microsoft Foundry Agent Service iconMicrosoft Foundry Agent ServiceScreening, verification, assessment and routing orchestration with tools.
  • Azure OpenAI models iconAzure OpenAI modelsDrafts the case summary. It does not make the fair-housing decision.
  • Azure AI Search iconAzure AI SearchGrounded retrieval across viewing policy, access rules and listing particulars.
  • Azure Functions iconAzure FunctionsNormalisation, slot suitability scoring and queue routing.
  • Azure API Management iconAzure API ManagementSecure gateway for CRM, listing and diary APIs.
  • Azure SQL iconAzure SQLListing, applicant and viewing history.
  • Azure Cosmos DB iconAzure Cosmos DBCase state, retries and per-case audit history.
  • Azure Key Vault iconAzure Key VaultCRM and portal integration credentials.
  • Azure Communication Services iconAzure Communication ServicesOccupier notice and applicant confirmations, sent by the agency rather than the agent.
  • Azure Container Apps iconAzure Container AppsContainerised extraction and assessment workers.
  • Power BI / Microsoft Fabric iconPower 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.

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.

10020Time to first response10040No-access visits10030Short-notice complaintsManual baselineAI-assisted target
  • 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.

  1. 01 Requested
  2. 02 Validating request
  3. 03 Waiting for configuration
  4. 04 Provisioning Azure resources
  5. 05 Configuring Foundry project
  6. 06 Deploying agent
  7. 07 Connecting tools
  8. 08 Connecting knowledge
  9. 09 Running deployment validation
  10. 10 Running evaluation gate
  11. 11 Ready
  12. 12 Degraded
  13. 13 Failed
  14. 14 Updating
  15. 15 Decommissioning
  16. 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 agent

Related & recommended

Derived automatically from our solution knowledge graph.

Related professional services

How we design, build and secure it.

Related quick wins

Ready-made Azure AI to start fast.

Technologies

What powers this solution.

Related managed services

Keep it running and optimised.

Ready to move from challenge to solution?

Talk to a Cloud Mechanics expert or build your solution in minutes.