DEV Community

Kaspars Jurjāns
Kaspars Jurjāns

Posted on Edited on

I built an AI assistant that answers from SharePoint and shows where each answer came from

Update, October 2026: the product was first called Privault. It is now Answergrove.

For the last while I've been building Answergrove, a private AI assistant that answers questions from a company's own SharePoint. Every answer names the document it came from, its SharePoint version and, for PDFs, the page. SharePoint permissions are checked before anything is shown, and the data stays in the EU.

Here's the architecture and the judgment calls behind it.

The problem

Document-heavy organisations (construction, engineering, 50+ knowledge workers) want an AI that actually knows their SharePoint. For many EU companies the first questions are not about capability:

  • Where does the data go?
  • Which version of a document is in force, and was it approved?
  • Can every employee use it, without a per-user licence?

The architecture

  • Retrieval: semantic search over SharePoint document libraries and lists through Microsoft Graph. Each answer cites the document, its version and the page for PDFs. Where a library uses content approval, the answer shows the approval status.
  • Permissions: checked before anything is shown, so each person sees only what they are allowed to open.
  • Actions: Answergrove also prepares e-mails, tasks and meeting invitations from the chat, in your own name. You check each one and send it yourself.
  • Languages: any European language. A Swedish procedure can answer a question asked in English.
  • Models: Azure OpenAI in the EU Data Zone, for both reasoning and embeddings.
  • Where it runs: a two-week pilot runs in our Azure environment in Sweden Central (EU). After rollout the index, the AI and the logs run in the customer's own Azure subscription.

Answers are logged and cited, which turns "is the AI trustworthy?" into something you can actually audit.

The judgment call: pro-code vs low-code

This is where most "just use Power Automate" advice falls apart. Power Automate is great until you need real retrieval, custom tool calls, and control over how the model grounds its answers. That's a Python service. Knowing which one a given workflow needs is the whole game. Getting it wrong is how you end up with a flow nobody can maintain.

What surprised me

The first production environment, a construction group with 865 SharePoint sites, about 400,000 documents and four languages, showed that the hardest part wasn't the RAG. It was grounding + citations under messy, real-world input: bilingual requests, half-formed questions, documents that contradict each other. A demo that parses clean input is easy. Production is where "correct and in the EU" gets earned.

Answergrove runs alongside Copilot without interfering with it, and gives every employee, with or without a Copilot seat, answers from the documents they must get right. More on Answergrove here.

Top comments (0)