Stairway to Heaven for Orange Bandits

Leveraging of Microsoft API’s allows developers to quickly get started witch achieving meaningful results in the development process.

Here is a quick summary of API’s we used, that are delivered by Microsoft:

  • Dataverse REST API:

Used as backbone of our systems integrations, main data ingest and source point. It is used in PowerBI to expose data to report:

  • Microsoft Bot API

It is used in sending notifications to Teams App (more on that in A Pirate Call to Arms! | Arctic Cloud Developer Challenge Submissions (acdc.blog)!).

  • Machine Learning Services API

ML REST API is used in PowerBI report to show the information about potential pirate looting activity outcome, based on information about the potential looting target:

Microsoft Identity platform (Azure Active Directory Authentication)

call from .NET code
and as it’s seen in Fiddler

This vehicleApi is on top of microsoft sql server database which is providing vehicle data based on MachineLearnings recognition of a make of a car. In order for the api to work, it connects to Azure Keyvault – and in order to access it, a call to microsoft Azure Ad Authentication API is made.

🚀 Automagical Fairs and Shouts to Fellow Pirats using Service Slave Workers 📣

When plundering and sailing keeping track of pesky DM’s is no job for the captain or crew. This’ why we summoned the services of Power Automate and Power Apps to do our bidding: Enabling our ship to run smoothly and commands being forwarded at the correct time to the correct people.

It all starts with the Consumer of Data “Power Automate” who collects data from all our different intelligence points. Working in the shadows, this ghost can be attached to any workflow. Currently, since it thrives on human flesh for its operations, we started by attached to our crew log. Whenever Power Automate smells the fear of a new deck hand, laddie or lassie onboard it goes to work!

On a new pirate record Power Automate does two things:

  1. Creates an Adaptive Card in teams and posted it to the ships group chat
  2. Sends a welcome e-mail to the fresh pirate, explaining how they need to obey or walk the plank (all pretty standard pirate stuff).
Current Dataverse Tables the flow can write to and read from.
Power automate flows that creates and updates records, when records for pirates are updated we trigger a Teams Integration.

Making the Captain’s work Screen Agnostic

We further improve the Captain’s life with Power Apps connected to the Power Flows. The Power App sits on the users phone, implemented via Teams or as a standalone app, and enables the Captain to administrate the crew roster, so any stowaway can be added to the crew and receive the required e-mail package with plank rules and NDA’s. This mobile approach lets the captain be in full control even when venturing away from his cabin and the desktop computer therein.

Screen snippet showing Power Automate triggering Teams Adaptive Card on new shipmate record.

The convenience of having the Power Apps in teams means the captain can manipulate his Ship, The Raids and roster from any surface, be it mobile, desktop og even tablet!

Screen snippet showing the Power App integrated into a Teams. Notice the responsive nature of teams adapting to any viewport.

Using Power Apps means we can also simulate raids adding new test data on the fly, without it needing to come from our Power Automate flow.

User generated Raids in the raid table, created directly within Power App.

In Summary, for Sleepy Pirates:

  • The Power App enables our users to directly manipulate our data storage.
  • The Power Automate allow other sources and application to remotely access our data.

Client Side Salsa and Stairway to Heaven

Claiming Client Side Salsa and Stairway to heaven 

The harbour chief is leveraging M365 and Teams to get an overview and staff raids. 

To do this we have made a spfx Teams app. This of course uses React as a frontend framework. 

The app gets data from Dataverse and the harbour chief’s personal digital loot files in an Azure Storage account. The SAS key for accessing the storage account is of course kept in a key vault for the harbour chief’s eyes only. 

The SAS key is kept in key vault. 

The harbour chief has his own personal storage for his digital loot

The digital loot can be accessed by the harbour chief 

The harbour chief has an easy view of browsing pirates that are available for raids. 

The harbour chief has an easily automated way of staffing raids based on availability and scores.

The app suggests the best-suited crew for the raid. 

Stairway to heaven API’s

  1. Dataverse
  2. Keyvault
  3. Storage Account Azure

Microsoft could api <3

Let’s face it first rather than later, we do work with Microsoft technology, and what is better than combine a lot of them together in the same solution? Look at the screenshots under, with the text to every picture, and we’re sure you also think this is a stairway to heaven!

First of all, the canvas app we have created is connected to AD so I get my profile picture from AD when I open the app
And then we have a live sync with my Office account so I can se my calendar and shedule for the days i select.
And, of course we use PowerAutomate to update my personal information directly to the F&O tables so I can be used as it’s needed by the P-level management!

Onboarding flow for new pirate recruits

An important part of Pirates 365 Recruit is the onboarding flow:

The super-popular Pirate Recruitment Terminal (PRT) give a lot of leads, and it is important for the HR team not use too much time onboarding the pirates

We have created a Power Automae flow that automates much of this, with the following features

  • Generate Pirate Names (described in this post)
  • Generate Lead in Dataverse
  • Prompt adaptive card in Teams
  • Generate Azure AD user
  • Add newly generated Azure AD user to Azure AD group
  • Send SMS to recruit with login info and link to learning game

Power Automate Cloud Flow Overview

Creating Leads in Dataverse

After the pirate name is generated a lead is created in Dataverse

Usling Leads in Dataverse the recruitment team can collbaorate on the candidates – all integrated in the Recruitment Teams Channel.

Creating Adaptive cards

We are also posting adaptive cards to the team, and is possible directly from the adaptive card to accept the pirate recruit to go further down in the recruitment proccess

Generation of adaptive card. Generated in https://adaptivecards.io/ to get a nice design and actionable buttons

Create users in Azure AD, assignment to security roles and licenses

After the recruit is accepted the newly hired i created in Azure AD and given proper licenses and permissions

We are using Azure AD Security groups to dynamically assign licenses to the newly accepted pirate recruits

Here we see that they get Dynamics 365 Customer Engagement licenses – so they can use our powerapps with a lot of fancy premium features✌️

Last but not least – telling the newly hired pirates how to login by sending a SMS

After all this we need to notity the pirates how to log in

We send a SMS using the Norwegian SMS-provider “Sveve” which have a simple API.

We send the username and the generated password (which the recruit must change on first login)

A link to the pirate training is included, so the pirate can train to be a worthy pirate

Badges

We think this solution may qualifty for

  • Feature Bombing by using five different services in one flow
  • Power User Love by using a nice combination of Power Automate, Microsoft Teams and Dynamics 365
  • Stairway to heaven by using Azure AD API; Dataverse API and Teams API

API

We are using many different endpoints to get data from different sources. Some of them by using the sdks and some of them clean http requests:

-Azure Signal R (Hub):

-Azure Web Application:

https://app-acdc2022.azurewebsites.net/api/telemetry/GetTelemetriesWithTemperature

-Azure Maps Geolocation:

https://atlas.microsoft.com/mapData/{location}/status?api-version=1.0&subscription-key={subscription-key}

-IoT Central:

Internal service from IoT Central to LogicApp and Flow.

-Metamask:

The extension injects the Ethereum web3 API into every website’s javascript context, so that dapps can read from the blockchain. We use it when loggin in onhttps://smartzooapp.webflow.io/ :

Stairway to heaven – because heaven is a nice place

Microsoft with Azure and M365 expose a huge set of API’s for their products. Picking the right ones to ensure the utmost business value is key in any cloud solution today. Here’s three API’s highlighted in from our solutions.

Microsoft Graph API’s

Connector indexing and search for blog rollup in the intranet.

Graph Search API in action against a custom graph connector

Azure Cognitive Services – preview

For each pizza order we capture feedback. Collating the sentiment of the feedback is important in order to improve on pizza quality and delivery service. Each order is ran thru a flow to capture the sentiment score.

Custom connector – calling v3.2-preview

While we could have called the sentiment API with an out of the box connector we opted to use a custom connector definition in order to call the latest and greatest preview end-point – rumored to be 17% more energy efficient!

Sentiment from v3.2-preview

Dataverse

Dataverse is the data hub for Pizza Time where everything pizza data is captured and stored in the most secure way.

  • Showing pizza menu in the ordering apps (PowerApps and Native)
  • Triggering on Dataverse events in PowerAutomate

Microsoft, Microsoft, Microsoft <3

Let’s face it, we all love Microsft (and yes, sometime hates Microsoft, but any type of feeling is a lot better than no feelings!). We use Microsoft technology every day, and of course we use a lot of this in our solution. Let’s go for the one first. Using Power Automate to use data input in Dynamics 365 HR to create a user in Azure AD (I know, you’ve seen this before in a previous post, but it might be easier for you to see everything in one post than for us to reffer to other posts):

Then, why should you leave it up to every employee to create their email signature? Don’t worry, we’ll solve it for you. We’ve created a solution that attach a signature on all outgoing emails that have our company name in Azure AD, configured in the Exchange setup in office365 with data from Azure AD:

Create a disclaimer as a flow rule in Exchange
Applied to senders that are employed in our company, AxShredder Inc
The signature itself is created with HTML-code
And this is how it will be, without data added
And with data added

And then, the night before a new employee starts at our company, have a Power Automate that imports the user in to Dynamics so that the user can log in to the system. Also, connect the user to the correct worker so that it can access the Employee Self-Service to see and edit data regarding himself:

Bombshell Updating recent posts

Her er de postene som vi har oppdatert og kommet med nye. Please review

Tieving Bastards Thieving shellbombs | Arctic Cloud Developer Challenge Submissions (acdc.blog)
Glossy pixels Glossy pixels – Bombshells rebranding | Arctic Cloud Developer Challenge Submissions (acdc.blog)
Sharing is caring Sharing is caring | Arctic Cloud Developer Challenge Submissions (acdc.blog)
Stairway To Heaven Straight up and away! | Arctic Cloud Developer Challenge Submissions (acdc.blog)
Chameleon Dashes and numbers | Arctic Cloud Developer Challenge Submissions (acdc.blog)