AI Personas Playground demonstrates how Microsoft Entra ID, Microsoft Graph, SharePoint Online and Azure AI Foundry can be combined to create dynamic AI personas managed entirely through Microsoft 365.
The application allows business users to create and manage AI personas in SharePoint while developers focus on the underlying platform integration. Persona behavior, personality, language and instructions are controlled through configuration stored in SharePoint rather than hardcoded in the application.
This project showcases an end-to-end AI solution built with:
- Microsoft Entra ID
- Microsoft Graph
- SharePoint Online
- Azure AI Foundry
- Azure OpenAI Responses API
- WinForms (.NET 10)
Users authenticate with Microsoft Entra ID, select a persona loaded from SharePoint and start a conversation with an AI-powered assistant whose behavior is dynamically generated through prompt engineering.
- Microsoft Entra ID authentication
- Secure access token handling
- User profile retrieval through Microsoft Graph
- Persona definitions stored in SharePoint Lists
- Persona images stored in SharePoint Document Libraries
- Dynamic loading of personas without code changes
- Azure AI Foundry integration
- OpenAI Responses API
- Dynamic system prompt generation
- Persona-driven conversations
- Personalized user context
- Dynamic persona selection screen
- Persona image support
- Multi-language personas
- AI-generated welcome messages
- Real-time chat experience
Microsoft Entra ID
│
▼
Authentication Service
│
▼
Microsoft Graph
│
▼
SharePoint Online
│
├── Persona Configuration
└── Persona Images
│
▼
Prompt Builder
│
▼
Azure AI Foundry
│
▼
OpenAI Responses API
│
▼
Chat Experience
Users authenticate using Microsoft Entra ID.
Business users maintain personas directly in SharePoint.
Persona images are stored in a dedicated SharePoint document library.
The application dynamically loads available personas and images through Microsoft Graph.
Each persona generates responses using Azure OpenAI while remaining in character according to the SharePoint configuration.
Each persona contains:
| Property | Description |
|---|---|
| Name | Persona display name |
| Role | Profession or role |
| Age | Persona age |
| Personality | Character traits |
| Goal | Educational or conversational goal |
| Audience | Intended audience |
| Personal Instructions | Additional AI instructions |
| Language | Preferred communication language |
| Image File | Persona image |
| Active | Availability flag |
| Sort Order | Display order |
Because personas are stored in SharePoint, business users can create and maintain new personas without modifying code.
Persona behavior is generated dynamically through the PromptBuilder component.
The system prompt combines:
- Persona configuration from SharePoint
- Language preferences
- Behavioral instructions
- User information from Microsoft Graph
This approach enables configuration-driven AI behavior while maintaining a clean separation of concerns.
- WinForms
- .NET 10
- Microsoft Entra ID
- Microsoft Graph
- SharePoint Online
- Azure AI Foundry
- Azure OpenAI
- OpenAI Responses API
Arcadiuz.AI.Personas
│
├── Config
├── Forms
├── Helpers
├── Models
├── Services
│
├── LoginForm
├── PersonaSelectionForm
├── ChatForm
│
├── AuthenticationService
├── ConfigurationService
├── GraphService
├── SharePointService
├── OpenAIService
│
└── PromptBuilder
This project was created to explore:
- AI Personas
- Prompt Engineering
- Azure AI Foundry
- OpenAI Responses API
- Microsoft Graph Development
- SharePoint Integration
- Configuration-driven AI solutions
- Microsoft 365 extensibility
Possible future enhancements:
- Chat history storage
- Conversation persistence
- Streaming responses
- Speech support
- Chat bubbles UI
- Semantic Kernel integration
- AI Agents
- Retrieval Augmented Generation (RAG)
- Copilot integration
Maarten Delissen
Senior Microsoft 365 Consultant
Specializations:
- Microsoft 365
- SharePoint Online
- Microsoft Graph
- Azure AI Foundry
- Copilot Extensibility
- AI Agents
MIT License




