Skip to content

Case study · Real estate

Copilot that quotes the by-law, or says it does not know

A community association management company answers the same questions about rules, dues and approvals thousands of times a month. We built a Dynamics 365 support desk where Copilot drafts the reply from that community's own governing documents — and cites the clause every time.

Engagement · Implementation & rollout

AI assistance where a wrong answer is a governance problem.

Industry
Real estate
Solution
Resident support desk with AI drafting
Platform
Dynamics 365 CRM, Copilot
Engagement model
Dedicated product team
Scope
Case management, document grounding, approvals
Users
Support agents, community managers
Constraint
Rules differ per community
Rule
Every answer cites its source

Outcomes

What AI has to prove in a governed setting

Speed is easy. Being right about the right community's rules is the hard part.

  • −61% Time to first reply

    Copilot drafts from the community's governing documents and the agent reviews rather than researches, which removes the document-hunting step entirely.

    Measured across enquiry response times after rollout

  • 100% Of drafted answers carrying a citation

    The assistant answers only from retrieved clauses and shows which one it used. If it cannot ground the answer, it says so and routes to a manager rather than guessing.

    By design: no ungrounded generation

  • 0 Cross-community rule leakage

    Retrieval is scoped to the resident's own community, so one association's by-law can never be quoted at another's resident.

    By design: retrieval scoped per community

Context

Why resident support was so slow

Not because the questions were hard, but because the answers were scattered.

The business

A management company administering hundreds of community associations, each with its own governing documents, rules and approval processes.

The starting point

Residents emailed and called. Agents searched PDFs of by-laws and covenants, community by community, to answer questions that were mostly routine.

The trigger

Response times were measured in days for questions with a definite answer sitting in a document, and agents were quoting the wrong community's rules often enough to matter.

What they wanted

Fast, accurate answers grounded in the correct community's documents, with approval requests handled as a tracked process rather than an email chain.

Constraints

Every community has different governing documents · a wrong rule quoted is a governance exposure · residents expect a human tone · approval requests carry deadlines and voting rules.

System

What it runs at today

The support desk as it runs today.

  • 100s Communities served

    Each with its own documents

  • −61% Time to first reply

    Draft, review, send

  • 100% Answers cited

    Clause-level

  • 0 Ungrounded answers

    Routed instead

The engineering problem

Four problems in community association support

All four come from the same root: the rules are documents, not data.

  1. The answer is in a PDF nobody can search well

    Governing documents are long, inconsistently structured and specific to each community. Finding the relevant clause is most of the work.

    What we did

    Documents indexed per community with clause-level retrieval, so the relevant passage is surfaced rather than the whole document.

  2. Quoting the wrong community's rules

    An agent handling dozens of communities will eventually answer from the wrong one, which is a governance problem and an embarrassing one.

    What we did

    Retrieval hard-scoped to the resident's community. The assistant cannot see another association's documents at all.

  3. An AI that would rather answer than admit uncertainty

    A generative assistant asked about a rule that is not in the documents will produce something plausible, which is the worst possible failure here.

    What we did

    Grounded generation only: the assistant answers from retrieved clauses or declares it cannot and routes to a community manager.

  4. Approval requests lost in email

    Architectural changes, pets and rentals need approval with deadlines and voting rules. As email chains, they miss deadlines and nobody can prove what was decided.

    What we did

    Approval requests as tracked cases with deadlines, required evidence and a recorded decision.

Architecture

How it fits together

Simplified — the shape of the system rather than every service in it.

  1. Community model

    • Associations
    • Documents
    • Residents

    Every community with its own document set and its own residents, strictly separated.

  2. Retrieval

    • Clause indexing
    • Community scoping
    • Relevance

    Scoped retrieval that cannot cross a community boundary.

  3. Copilot drafting

    • Grounded answers
    • Citations
    • Escalation

    Draft from retrieved clauses, cite them, or hand over.

  4. Approvals

    • Requests
    • Deadlines
    • Decisions

    Governed processes as tracked cases with recorded outcomes.

The scoping is architectural rather than a prompt instruction. The assistant is not asked to stay in the right community — it cannot retrieve outside it.

Solutions

What we implemented

A support desk where AI is bounded by design.

  • Community model

    Associations, documents and residents, strictly separated.

  • Clause indexing

    Governing documents indexed for clause-level retrieval.

  • Grounded drafting

    Copilot answering only from retrieved text.

  • Scoping & escalation

    Hard community boundaries and honest uncertainty.

  • Approval workflows

    Requests with deadlines, evidence and recorded decisions.

  • Gap reporting

    What the documents fail to answer, per association.

Key capabilities

What it does day to day

Six capabilities across resident support.

CapabilityRunsRefreshWhat it does
Case management Agents Continuous Resident enquiries as tracked cases with history
Document indexing Automatic On upload Governing documents indexed at clause level per community
Grounded drafting Copilot Per enquiry Replies drafted from retrieved clauses with citations
Escalation Automatic When ungrounded Routed to a community manager when the documents do not answer
Approval requests Residents Per request Architectural, pet and rental requests with deadlines and decisions
Reporting Automatic Weekly Volumes, response times and the questions documents do not answer

Integrations

How the moving parts plug in

Draft, cite, review, send — or escalate.

Enquiry arrives

  • Resident identifiedAnd their community
  • Case created
  • Scope setThat community only

Grounded retrieval

  • Clause retrieval
  • Draft generatedFrom retrieved text
  • Citation attachedAlways

Agent review

  • SendWith the citation
  • AmendThen send
  • EscalateWhen ungrounded

The reporting on what the documents do not answer turned out to be valuable in itself — it tells each association where its governing documents have gaps.

Security & data

What keeps the assistant trustworthy

The controls are what make AI acceptable in a governed setting.

  • Architectural scoping

    Retrieval cannot cross a community boundary — it is enforced by the data access, not by instruction.

  • Citation on every answer

    Residents and agents can see the clause the answer came from.

  • No ungrounded generation

    The assistant declares uncertainty and escalates rather than producing something plausible.

  • Human send

    Every reply is reviewed by an agent before it reaches a resident.

The brief

Grounding is the product, generation is the convenience

The temptation with a support desk like this is to let a capable model answer from general knowledge about community associations. That produces confident, fluent and occasionally wrong answers about rules that are legally binding.

We built the retrieval and the scoping first, and only then let the model write. The assistant is useful because of what it will not do.

  • Retrieval scoped per community, architecturally
  • Every answer carrying a clause citation
  • Escalation instead of ungrounded generation
  • Approvals as tracked, deadline-bound cases

What the build had to respect

  • 01Hundreds of communities with different governing documents
  • 02Rules that are legally binding, so a wrong quote matters
  • 03Residents who expect a human tone
  • 04Approval processes with deadlines and voting rules

Process

We built retrieval before generation

A grounded assistant is a retrieval system with a writer attached, not the other way round.

  1. Stage 1

    Document ingestion

    Governing documents structured and indexed per community, with clause boundaries that survive inconsistent formatting.

  2. Stage 2

    Retrieval evaluation

    Tested against a set of real resident questions with known correct clauses, before any generation was added.

  3. Stage 3

    Grounded drafting

    Generation constrained to retrieved passages, with citation and a refusal path.

  4. Stage 4

    Agent workflow

    Review-and-send designed with agents, so the draft accelerates rather than obstructs.

  5. Stage 5

    Approvals

    Architectural, pet and rental requests modelled with their deadlines and voting rules.

Technology

Dynamics 365 with grounded Copilot

Standard case management with retrieval that respects community boundaries.

CRM

  • Dynamics 365 CRM
  • Case management
  • Custom entities

AI

  • Copilot
  • Grounded generation
  • Citation enforcement

Retrieval

  • Clause-level indexing
  • Community scoping
  • Relevance tuning

Process

  • Approval workflows
  • Deadlines
  • Decision records

Business impact

What changed for residents and managers

Three outcomes across the management company.

  • Replies in hours, not days

    Agents review a grounded draft instead of searching documents.

  • Governance exposure removed

    Wrong-community answers became architecturally impossible.

  • Document gaps became visible

    The escalation log shows each association what its documents fail to cover.

The result

Fast answers that can be checked

Time to first reply fell 61% because agents review a grounded draft instead of hunting through PDFs, and every answer carries the clause it came from.

The assistant escalates when the documents do not answer, which is the behaviour that made it acceptable to use on legally binding rules at all.

  • Time to first reply down 61%
  • Every answer carrying a clause citation
  • Cross-community leakage architecturally impossible
  • Document gaps surfaced per association

What we hold to with AI on governed content

  • 01Build retrieval first and evaluate it before generation exists
  • 02Enforce scope in the data access, not in the prompt
  • 03An assistant that escalates is more valuable than one that always answers
  • 04Cite the source on every answer, without exception

Verified reviews

What clients say about our Dynamics work

Verified reviews from clients of ours on similar work, published on Clutch. They are not from this project.

5.0 27 verified reviews

Free discovery call

Have an idea? Let's turn it into AI-powered software.

Book a free discovery call with our experts. Share your idea and we will help you shape the scope, timeline and budget, under NDA.

  • Free consultation
  • NDA before we talk
  • Transparent estimate