Intro
The wizarding world is safe once again. He Who Must Not be Named has finally been defeated, and the taint of dark wizardry is gone once again. But the threat remains. How can the wizarding world nurture the next generation of wizarding talent, to prevent the rise of the next dark wizard, while also offering a top-notch onboarding experience for students of all backgrounds – wizard or muggle born alike? An improved Wizarding Onboarding eXperience (WOX) is essential to ensure wizarding schools keeps attracting the world’s finest wizards and witches.
Introducing OwlExpress365, an innovative new digital solution from House Elves Limited, designed to assist wizarding schools across the globe to identify, nurture and onboard new students. Infusing the latest innovations from a low-code and artificial intelligence standpoint, our end-to-end solution is designed to benefit everyone involved as part of onboarding new wizards to your wizarding school – from initial identification, through to invitation and collating all required information to ensure students are ready and enthused to start at your school. Deliver an exceptional experience to your teachers, students and parents, whilst ensuring necessary compliance against dark magic regulations and ministry requirements for each new student. Contact our friendly House Elf developers today to find out more!
Use Case
Providing a great WOX for all students is at the cornerstone of our solution. We have created a seamless onboarding solution, reducing the time taken to submit a successful application, integrating with contract solutions and improving wizard satisfaction for students, all the while looking out for the next generation of Death Eaters.
Solution Overview
Students and Guardians
That initial owl is a key cornerstone to the historic new student onboarding, but we have improved the initial notifications, taking into account weather notifications and location to reduce the impact on an owls health. This has been done by integrating with Link Mobility, where we send an SMS with the invitation letter. This invitation now includes a link to register on our new and improved portal, https://owlexpress.app. Once registered, students can update their profile, provide information, and interact with our own knowledgeable chatbot, “Ask Hermione”, driven by a Copilot Studio agent.
Once the student has accepted their invitation, and the professors at the school have checked their submitted documentation, we get a signed agreement from their guardian. This allows all important agreement relating to the risky business of educating a wizard is concluded, and the parents / guardians also agree to pre-requisites such as book and equipment lists. Through this, the school can device that the wizard’s family is receiving adequate support and kept in the loop.
The entire solution is driven by a Power Platform base, supplemented by first party and third party solutions. This showcases the effectiveness of a low-code platform for any business solution.
Professors and Administators
Teachers are using a custom made Model Driven App, based on the first part Dynamics Customer Service. Tailored to closely align with the application process, prospective students are first segmented from the raw data received from various external sources, historical events recorded within the CRM system or information added by the professors or administrators.
Once the segment is created, prospective students and their application is created. The data source contains various characteristics for the students, such as charismatic, plant lover, bold that will augment the student profile. If one of these characteristics could align the student to the dark arts, we have an approval process. Only once all heads of hourse agree that the student will not pose a risk to the school will their application be able to continue. This process automation removes the communication and miscommunication that can allow the dark lords servants to flourish.
An application will have various documents that are required to be assessed, evidence of magical ability and approval contracts. These can be easily uploaded using the Resco PCF, allowing multiple files to be added at once.
The Application process has a central business process, which steps through the onboarding process. Once the process moves to communication, an Owl or SMS triggered to invite the prospective student to apply and provide further information. This is all handled with Power Automate and LINKMobility.
The professor will assign a house, and once checking all the documents the process is moved to Confirmation, where a contract is sent to the students guardians. This is all automated, with IP confirmed signatures to ensure full transparency and governance of the process
Overall, our ERD is below
Fabric Fera Verto
Analytics is at the cornerstone of our solution, as only through effective analytics can we address several requirements most common to wizarding schools and protect the future of our schools. This includes:
- The ability to visually “slice and dice” student information, to create segments for upcoming student cohorts without the admins doing the segmentation needing a deep understanding of the data model.
- Support for flexible data ingestion sources, that can be tailored for each organisation. For example, different muggle citizen data API’s for each country.
- Ability to access and view data “on the go”, as teachers apparate between classrooms
Power Query dataflows provide a scalable and effective means of consuming data from a variety of sources, such as flat file and publicly available APIs. This is a key benefit of our solution, as each wizarding school will have different ingestion sources that need to be accommodated. For this first school the following datasources were integrated from various sources using Power Query. All these have been brought into one semantic datamodel and used to enrich each other:
- Postal Adress data from UK postal service
- Student Dataset from “SnitchsOps” school
- SharePoint lists from muggle schools for student data
- Dataverse student for alumni students
Data is then surfaced within a Power BI report, embedded in the Professors Application management Model Driven App, consolidating all information into an easily accessible experience:
The report has a couple of visual slicers and filters and display the “Potential Students” in the right hand side. This way the users always see the result of the filters in realtime:
The same information can then be viewed on a mobile device with relative ease:
For the user experience we are utilizing the extensibility of Power BI besides the Fabric data integration capabilities. Using Power BI Embedded we extended the Power BI report showing the data of the semantic model with a custom action “Export Segment”. This way the user can use the visual filters and slicers of the report while seeing the live result of these. As soon as they are satisfied, they can use the “Export Segment” actions to copy the students within the filters to the Segment within the Model Driven App. This triggers the Application process will be automatically started for each of these students.
Fabric Troubles
Unfortunately, we were not able to fully maximise our usage of Fabric, due to issues starting the Fabric trial:
Assuming this issue was overcome, we had planned to further use Fabric by implementing the following:
- Fabric pipelines to handle the data ingestion to and from Microsoft Dataverse
- Implement a lakehouse for staging all data, rather then using a dataflow gen 1 and semantic model.
- Implement “big data” processing for all historical wizarding school data, to generate more useful analytics via machine learning prediction. For example, can we predict the level of support a new student would need, based on their parentage, characteristics and location?
Low-code Charms
Power Platform extensibility lends itself nicely to OwlExpress, and how we can facilitate our end-to-end process. The process starts with the embedded Power BI Segmentation report in the OwlExpress365 Model Driven App. The users can segment on external data import to Microsoft Fabric within Power BI with great usability and without the knowledge of the data model in the back:
Power Fx is used within the custom page, and as part of button that assesses a young wizard’ss previous actions, to then categorise accordingly. AI prompts are used to evaluate potentially semi-complex sentences and grade them accordingly, as a mechanism to identify potential dark wizards
Throughout our model-driven application, users have ready access to a business process flow, that helps to easily guide them to the next step, as well as providing a nice “at a glance” view for any student application:
Although requiring pro-code capability to initially implement, the various PCF controls acquired by third party vendors, such as Resco, provides an effective way for low-code developers to extend out their applications for ease. For example, Resco’s file upload control provides an easy to support more complex upload operations that are not available natively. Low-code developers would struggle to build something similar, but with available PCF controls, this becomes a breeze to configure:
Pro-code Potions
We created different potions to empower our solution.
We have the student’s portal as a Netlify static website integrated with Dataverse.
Two PCF components were created by our team for this challenge:
- Padfoots PowerBI Putter which allowing us to create the segmentation is using the PowerBI Embedded and the PowerBI extensions to read the selected data and post that to the PCF output properties.
- MaraudersMap which is using Azure SignalR to track everyone and push their presence in the map. It is also using the microphone to listen to your charms and reveal its secrets.
The serverless Azure SignalR service was implemented using dotnet Azure Functions.
In addition, we also authored some Dataverse plug-ins that did something unusual – triggering business logic based on the Associate message, a scenario that the team was unfamiliar with. Further details can be found on this blog post here.
Student Portal / Frontend
For the students we didn’t use a Power Platform component because of licensing, the potential students don’t have user licenses and cost wise it wouldn’t be cost-effective. For that reason we created a custom frontend built with the Astro framework, https://owlexpress.app
The following tech stack was used:
- Astro Framework
- Base Framework for static web apps
- TailwindCSS
- CSS compiler
- Daisy UI
- TailwindCSS component library
- Azure B2C
- User authentication with social media or local accounts
- Dhino
- Integration with Dataverse with authenticated external users, connecting with Azure B2C
Available login options in Azure B2C
Students receive an invite code via mail from Dataverse if their application reaches the stage “Communication”. The invite code is generated via plugin and stored in relation to the Student record. It also generates a login link (example: https://owlexpress.app/login?code=C0NIQWP28F ) for the student which will do the following when clicked:
- Direct student to the Azure B2C login page
- After successful login a Dataverse Custom API is called and links the Azure B2C Entra Object Id with the student record who is linked to the provided invite code.
dhino utilizes Azure API Management and Azure Functions for connecting with Dataverse and authenticating against Azure B2C. This is used to read the student profile from Dataverse and the student profile provides a form for the student to update data and provide additional data. The frontend is fully responsive:
Padfoot’s Power BI Putter
This PCF solves a couple of technical challenges.
First is embedding the PowerBI report in the PCF component. We started from the Microsoft react based example, but we had to overcome some complications.
The embedded PowerBI was extended using the PowerBI JavaScript API’s to include a command in one of our visuals that would allow us to export the segmented data.
Certainly, the Test-Driven Development approach helped us shorten the delivery cycle with this component as we didn’t have prior experience with those APIs and we got to use the time earned to go through the documentation and achieve success.
Authenticating the user using Microsoft Entra ID needed a little bit of trial and error to be able to overcome all the Power Platform limitations.
Marauder’s Map
Tracking where users are is the most important feature of this component. To achieve this, it is using the Azure SignalR Service so that each user can share their location. This information is being shown on an actual map that has the information hidden and can be opened and closed using voice commands.
Azure SignalR Service
Even though the authors have a lot of experience with SignalR, the Azure SignalR Service was something not yet explored. As expected, there were a lot of peculiarities to the service that required a lot of documentation reading (going through the same pages more than once).
The Microsoft sample projects were really useful to quick start the development.
Digital Transformation
Dynamics 365 Customer Service forms a cornerstone of our solution, as several of its functionality areas lends itself nicely to our scenario:
- Using Knowledge Articles both as an internal resource and a knowledge source in our “Ask Hermoine” chatbot:
- Taking the existing Case table and retooling it as our “Applications” table, complete with field customisations and a new Business Process Fow. Adapting this table saved considerable amount of time compared to creating it from scratch, including the ability to tailor features such as the Case ID to suit our scenarios.
Without these capabilities, it would have taken us significantly longer to build out our solution.
ALM Magic
We achieve ALM primarily via two mechanisms:
- For our single Dataverse solution, Owl Express 365, we use Power Platform Pipelines to handle the movement across all environments. In addition, we have incorporated a flow approval process to ensure that a dedicated release manager always approves new releases before they are deployed to any environment and also enabled Git integration, to ensure changes are exported out to our Azure Repos Git repository (see next point)
- For all other components including (but not limited to) third-party solutions, PCF controls and any form of custom code, we use an Azure Repos Git repository to host all resources. YAML pipelines are used to automatic import of key assets into all required environments:
ALM can only be truly achieved when all aspects can be documented fully, to ensure that everyone in the organisation is familiar with the discrete processes. Our ALM document, linked below, goes into fuller detail regarding what has been implemented:
To further develop what we have from an ALM perspective, we would plan to fully implement the Configuration Migration Tool (CMT) to handle the movement of important configuration data between our environments. This would be fully incorporated within our Git repository and then executed automatically via Azure Pipelines.
Magic Matrix
By tapping into some of the other features and services across the Microsoft 365 stack, our solution drives further value from existing investments. In particular, we can point the following key features in the OwlExpress product:
- Mail-enabled queues in Microsoft Dataverse, that integrates with an Exchange Online mailbox to support the sending / receiving of emails
Integration into Microsoft Teams, for modern flow approvals and for our “Ask Hermoine” chatbot, which has been built using Copilot Studio.
Using SharePoint as a potential staging site for wizarding schools’ bespoke data, that would then be ingested into Fabric:
Wizarding schools using our solution can be confident of the many avenues that are open to integrate across the entire Microsoft 365 stack, and to afford opportunities to further maximise existing investments.