Final Delivery – Logiq Mushrooms – Mushroom Kingdom Princess Support

When we got the word about this year’s theme, it made a lot of sense to implement a Customer Service system, where the skilled Mario technicians will process and resolve the requests that princesses raise, in their time of need.

This idea was realized by a team of very logical mushrooms.

Our Princess Support system is composed of below functional parts:

  • Mario Onboarding App – Technicians can get AI generated skills and backstory, as well as a cool avatar based on their photo.
  • Princess-facing Portal – Princesses can use simple and fun interface to raise their request, and monitor the progress, as well as the Mario that was assigned to their request.
  • Mario Admin Center – Request are automatically assigned to the appropriate Marios using AI and the system also distributes real-time notifications.

In the Princess Service Portal our Princesses can log their requests for the technical support. Technical support management starts from the magic app.

Killer- AI Mario Onboarding Center

In our Kingdom we manage Marios also, and we care a lot about them! That is why we have created a mobile application tailored for our Marios. Marios can utilize this app to craft their profile pages. Within the app, we employ ChatGPT vision, image generation, and text generation models. The vision model analyzes the actual image of the User.  We merge the vision models results with additional prompts based on user preferences to create a cartoon avatar of Mario. 

Furthermore, we leverage text generation to create a background story for the Mario. Users are given the option to choose themes for the story. Once the story is generated, the AI also evaluates and assigns a skill level by analyzing the content of the produced story. All ChatGPT requests are handled by power automate cloud flows. They retrieve parameters directly from canvas app and return results to app. Inside the flow, we adjust the prompts accordingly and send requests to API.

Princess Self-Service Portal

Princesses specify their personal info during registration and provide a short description of their hardship.

This information is tracked by our support team and administrators (Mushrooms). We are here to save our princesses! Once the request is created in the admin app, the most appropriate Mario is automatically assigned. Is is very Business Valuable for our company.

Once the case resolution is proposed, the princess can review and provide feedback.

Our mushrooms receive the real-time notifications of the new cases, with the severity and suggested actions. No way we can miss any serious princess request!

Behind the scenes, we’ve implemented Clippy PCF (React), built upon the ClippyJs project, to empower this real-time communication. Leveraging the power of socket.io hosted on Azure, our solution ensures swift and efficient message delivery. 

Moreover, the backbone of the real-time communication lies in Azure Functions, written in Node.js. These functions diligently send out notifications to the socket.io instance hosted on Azure.

You can find more technical details of this feature implementation in the following post. 

Mushroom Powered Dashboards: 

We created a Power BI report and embedded it into a Model Driven App. It’s the first page our managers see when they open the app. 

We enable the managers to stay informed about the system’s activities. They can view case and technician information and monitor the average time taken to resolve cases. 

Additionally, we have incorporated a Q/A section for managers seeking more specific information. 

In this section, we display the case resolution duration, allowing managers to track SLA/KPI metrics effectively. 

Another chart presents the average rating of cases alongside the technician who resolved them, highlighting the best employee of the month. 

We also display the number of cases received by severity and the average completion time of cases categorized by severity. 

Understanding a Princess (<?>_<?>)

To save time of administrators and help as much as possible our Princesses, we have implemented next solution.

Sometimes, princesses feel overwhelmed and are unsure of where to begin when facing technical issues. That’s where we come in with our AI assistance! All princesses need to do is submit a description of their problem, and we take care of the rest. 

Whenever a princess creates a support request, a Dynamics Plugin triggers. This plugin forwards the issue to ChatGPT with the following prompt: “Given the case description below, please rate its severity on a scale of 1 to 4, where 1 signifies a minor issue and 4 indicates a critical one.” 
The response from the OpenAI request is the severity level. Upon receiving this result, the plugin searches for Marios skilled enough to handle the specified severity level and assigns the case to one of them. The plugin also updates the case details accordingly. 

Killer- AI Princess Rumors

In addition to our bombing features, we have boosted our business and productivity, sales, marketing, and so on, by using Killer AI cutting-edge AI technologies!!

With the PowerPlatform and Azure connecting the Low and Pro code approaches together, we boost the performance of resolving the cases by using some insights from the Copilot. And here is how we do that:

  • When we get complicated cases when we need external consultancy and assistant – task is to find the suitable Marios-consultants according to the customer request, by searching the professionals on the Indeed, comparing their background and experience and finding the best matches. (to find the suitable Marios according to the request.) 
  • Simplify the KYC(Know Your Customer) process by using unified workspace for all operations.  From Indeed we can understand the company background,do semantic analysis of the comments to have insights on how technicians can approach customer (princess) (simplify the KYC(Know Your Customer) process by using unified workspace for all operations.) 
  • By analyzing current princess (customer) and her needs based on the Indeed. The data that we were able to retrieve contains open job postings, company in for, recent news and personal profile info. Based on this information, we can suggest more other services and provide information to sales and marketing departments. (analyze current princess and her needs based on the Indeed profile and suggest more other services.) 

Monetization

Of course, we have done a lot of work hear to make the solution that awesome, so that is can’t be free! We are charging:

Team license 99eur / year /user 

  1. As a manager, you will have the opportunity to assign different avatars for different users with his own character and mood. 
  1. Dashboard with the overview of the progress regarding the plan of sales, etc. 
  1. Add your custom messages for motivation or another event. 
  1. Define the achievements/badges for the users 
  1. Personal teams notification using adaptive cards

Personal user subscription: only 2.99eur 

– Personal user dashboard with progress tracking, scores, badges

– User will have an option to disable the Clippy 3 times per week up to 2h per day 

– Send some kudos to the random teammate to earn more scores/badges. 

Personal plus subscripting: just 4.99eur 

– Add the ability to send kudos to specific person ones per two weeks on behalf of the Clippy. 

– Ability to send anonymous feedback to the manager every 3 month. 

******************All Stars to amazing Mushrooms!*************

Dear community, 

Our blogposts contain various kinds of information. Some of them are technical like POC, other one business scenarios. But also, some of them joke to highlight the thin fringe between technologies and common sense. 

….

We are humans.  

Unfortunately, there is no way to solve the issues using only a technical approach. 

Let us keep in mind that all our solutions are built for humans first and follow the common principles of development: Privacy focused approach that means to collect personal info as little as possible and save in correctly to prevent any data leaks.  

One Dashboard To Rule Them All

Badges we claim:

  • Dash It Out – for providing great summary of case management

Meet the dashboard of our app. We let the managers keep up with what is happening in the system. They can see case and technician information and see how long it takes to solve cases on average.

We also added Q/A section in case managers want more specific information.

Here we show case solve duration so managers can keep track of sla/kpi.

Another chart showing average rating of cases and which technician completed it to show best employee of the month.

We also show how many cases we recieve by severity and average completion time of cases by severity.

Advancing DevOps Excellence: Unifying Branching Strategy and Resource Template Deployment 

We claim badges:

  • ACDC Craftsman – for practicising development and deployment best-practices

Hello, Developers! We’re thrilled to share an update that marks a significant leap forward in our development workflows. In addition to refining our Git branching strategy, we’ve seamlessly integrated a new Azure Pipeline for Resource Template Deployment. Let’s explore the details of this cohesive development ecosystem: 

Branching Strategy Overview: 

Our branching strategy revolves around creating distinct branches for various stages of development and deployment. Here’s an overview: 

  1. Main Branch: 
  • Represents the production-ready code. 
  • Protected to prevent direct commits. 
  • Only updated through pull requests after rigorous testing.
  1. Development Branch (Dev): 
  • Branches off from Main. 
  • Developers create feature branches based on user stories, bugs, or work items. 
  • Naming conventions: 
  • users/username/description 
  • users/username/workitem 
  • bugfix/description 
  • feature/feature-name 
  • feature/feature-area/feature-name 
  • hotfix/description 

Development Workflow: 

  1. Feature Development: 
  • Developers create branches based on the naming conventions. 
  • Work is isolated in feature branches, promoting parallel development. 
  • Regularly synchronize feature branches with Dev. 
  1. Merge to Dev: 
  • Feature branches are merged into Dev using the “merge squash commit” option in Azure DevOps. 
  • This creates a cleaner and more readable history, grouping related changes. 
  1. Testing on Dev: 
  • Dev serves as the integration branch. 
  • Rigorous testing, including unit tests and integration tests, is performed on Dev. 

Staging Environment: 

  1. Rebase and Fast-Forward: 
  • Once Dev passes all tests, it’s time to merge into the Staging branch. 
  • Use the “rebase and fast-forward” merge type in Azure DevOps. 
  • This keeps the commit history linear and ensures a clean transition to the staging environment. 
  1. Staging Testing: 
  • Staging serves as a mirror of the production environment. 
  • Conduct thorough testing in the staging environment to validate the deployment readiness. 

Azure Functions CI/CD: 

  1. CI/CD pipeline for Azure Functions ensures swift deployment of updates. 
  1. Real-time communication capabilities are maintained at the forefront of efficiency and reliability. 

Unified CI/CD Ecosystem: 

Building upon our recent achievements in Git branching strategy and Azure Functions CI/CD, our focus has expanded to create a unified CI/CD ecosystem that seamlessly incorporates both application and infrastructure deployments. 

Azure Resource Template Deployment: 

Here’s an overview of the latest addition to our arsenal: 

Pipeline Creation: 

  • A dedicated Azure Pipeline has been crafted to handle the deployment of Azure Resource Templates. 

Purpose: 

  • This pipeline is purpose-built to automate the creation and updates of Azure services based on Resource Templates. 

Conclusion: 

The synergy of our refined Git branching strategy with the new Azure Resource Template Deployment Pipeline creates a unified and streamlined development lifecycle. Changes smoothly propagate through testing and into production, ensuring a reliable and efficient deployment process. 

Stay tuned for more updates as we continue to innovate and refine our project, delivering cutting-edge solutions to meet dynamic user needs. 

Happy coding! 

Crashing the Azure AI Studio and Copilot

Badges to claim:

  • Nasty Hacker – for retrieving data from 3rd party services and syncing it to the blob storage to connect to Azure AI Studio
  • Data miner – for retrieving the case information from dataverse and calculating the average score using AI.
  • Embedding numbnut – for embedded copilot in Model-driven app
  • Stairway to heaven – for using Azure AI Studio, Copilot, Blob storage, and in previous articles also Azure Function, WebApp

Our solution includes the latest features of the PowerPlatform and Azure connection the Low and Pro code approaches together, to allows you to boost the performance of resolving the cases by using some insights from the Copilot. 

  • The business use case is about complicated cases when we need external consultancy and assistant, so task is to find the suitable Marios-consultants according to the customer request, by searching the professionals on the Indeed, comparing their background and experience and finding the best matches. (to find the suitable Marios according to the request.) 
  • The business use case is about simplify the KYC(Know Your Customer) process by using unified workspace for all operations.  From Indeed we can understand the company background,do semantic analysis of the comments to have insights on how technicians can approach customer (princess) (simplify the KYC(Know Your Customer) process by using unified workspace for all operations.) 
  • The business use case is about analyzing current princess (customer) and her needs based on the Indeed. The data that we were able to retrieve contains open job postings, company in for, recent news and personal profile info. Based on this information, we can suggest more other services and provide information to sales and marketing departments. (analyze current princess and her needs based on the Indeed profile and suggest more other services.) 

We deployed GPT-4 model to our personal instance using AI Studio, then fine-tuned it with company’s internal data and data from open sources like Indeed, Glassdor or proff.no. 

Than using Retrieval Augmented Generation (RAG) technic to inject generative responses from big LLM into answer of Copilot. 

With RAG, the external data used to augment your prompts can come from multiple data sources, such as a document repositories, databases, or APIs. The first step is to convert your documents and any user queries into a compatible format to perform relevancy search. To make the formats compatible, a document collection, or knowledge library, and user-submitted queries are converted to numerical representations using embedding language models. Embedding is the process by which text is given numerical representation in a vector space.  

AI Studio has seamless integrated feature use Azure Blob Indexer to implement search functionality search for AI. It bring the possibility to simplify the access to the Datalake from LLM side.   

By implementing multiple connectors to the third-party services and data sources, together with Dynamic chaining feature of the Copilot it gives cleaner user experience for the user using only one tool for analyses. 

How it works:

Find the right Mario for you – Updated for Plug N Play!

We claim badges:

  • Plug N’ Play – for Dynamics 365 plugin that updates Mario for each support request based on the context using OpenAI

Sometimes Princesses are confused and don’t know where to start from when they have technical issues. So we are here to help them with AI! Princesses just need to add the description of the problem and the Dynamics Plugin will suggest Marios that are currently available and best match the case.

So the Princess creates a new support request, and that’s were plugin is triggered. The plugin sends the problem to OpenAI’s smart ChatGPT. The prompt:
Given the following case description, rate its severity on a scale of 1 to 4, where 1 is minor and 4 is critical:

I seem to be having a bit of a predicament with our kingdom’s email system, and I’m in dire need of assistance. This morning, when I attempted to send out invitations for the upcoming royal ball, I noticed that none of my emails were being delivered. They seem to be stuck in the outbox, and no matter how many times I try to resend them, they simply won’t go through.

The result of the OpenAI request is the severity level, in our case it is 3. So the plugin is looking for Marios who can cope with this severity and assigns the case to this Mario. Also, plugin updates the details of the case:

Copilot. The Rise of Machines

We claim badges:

  • Existential risk – for risk of existence of software developers

App should collect, list, track or managed the incidents that was assigned to engineers. The table must contains technical info for resolving the incident. Also the app should include the chart with summary of incident statuses. 

Specify prompt for app generation and submit:

Wait until the entities are created

Adjust if needed and proceed with app creation:

Just 10 seconds and you have an app that you are not ashamed to show on a demo to a client or to prove to a manager that you have been actively working and here are the results of your work. Isn’t it?

All in one AI package

Badges:
In this article we want to claim feature bombing badge.

This is version 0 of our mario onboarding app. Here we have following features;

  1. Picture saving
  2. Choosing a character to generate an avatar
  3. Generating avatar
  4. Adding custom prompt for AI generation
  5. Generating background story
  6. Defining skill level by using sentimental analysis
  7. Each AI generated output is saved to the database at every step.

Empowering Seamless Updates: Unveiling Our Project’s Azure Pipelines Integration!

We claim badges:

  • Power of the Shell – for building shell script for Azure DevOps pipeline for Azure Function deployment, Dataverse solutions, Power Pages and PCF control

We’re thrilled to share a major stride in our project’s evolution! Building upon our commitment to seamless communication, we’ve successfully implemented a CI/CD process for deploying updates to Azure Functions through Azure Pipelines.

This enhancement ensures that our real-time communication capabilities remain at the forefront of efficiency and reliability. With the newly established CI/CD pipeline, deploying updates to our Azure Functions is now a smooth and automated process. This means quicker turnaround times for improvements and features, allowing us to adapt swiftly to the dynamic needs of our users.

The Azure Pipelines integration not only amplifies the agility of our development process but also guarantees a consistent and reliable deployment of updates. As we continue to innovate and refine our project, this CI/CD implementation represents a pivotal step towards maintaining a cutting-edge and user-friendly experience.

We also covered the CI/CD for the dataverse solutions, portal and PCF control:

Find the right Mario for you

We claim badges:

  • Plug N’ Play – for Dynamics 365 plugin that updates Mario for each support request based on the context using OpenAI
  • The Existential Risk – for AI decision making and work assignment without human involvment
  • Go With The Flow – for automating of the technician assignment
  • Crawler – for an innovative approach of searching for the right Mario technician

Sometimes Princesses are confused and don’t know where to start from when they have technical issues. So we are here to help them with AI! Princesses just need to add the description of the problem and the Dynamics Plugin will suggest Marios that are currently available and best match the case.

So the Princess creates a new support request, and that’s were plugin is triggered. The plugin sends the problem to OpenAI’s smart ChatGPT. The prompt:
Given the following case description, rate its severity on a scale of 1 to 4, where 1 is minor and 4 is critical:

I seem to be having a bit of a predicament with our kingdom’s email system, and I’m in dire need of assistance. This morning, when I attempted to send out invitations for the upcoming royal ball, I noticed that none of my emails were being delivered. They seem to be stuck in the outbox, and no matter how many times I try to resend them, they simply won’t go through.

The result of the OpenAI request is the severity level, in our case it is 3. So the plugin is looking for Marios who can cope with this severity and assigns the case to this Mario. Also, plugin updates the details of the case:

It is an extraordinary way to search for an engineer, but also a risky for administrators of the support team, as AI is taking away their job! On the other hand – it follows the flow and automate the routine process, which is a major benefit for the business itself….