Full solution from PowerShredders of Axdata

We came into this Hackaton with the idea that we could make the Onboarding process a lot less manual, a lot more secure and reduce the risk of human errors in the process significantly. And we’ll be honest, we are extreamly happy with the solution we now are traveling home with! The best thing you ask? It works like a sharm, every bit of it! We have tested it several times, and everything flows exactly as described!
You can see the full solution under here, but we’ll start with a summary of why we think we should get a lot of points in the four different main categories:

Excellent User Experience:

Lets start with the help this will give to the employees already working in the company:
– HR now will have a veary streamlined process for Onboarding, where all tasks that can (and should be) automated are just that. They don’ need to spend time sending out agreements, follow up with signature, enter a lot of information regarding the new employee in the system, follow up on other employees that forgets the tasks they have in an Onboarding. They don’t need to notify IT about a new employee coming it and wait for creation of user and access to systems. All of this happens automatically. Nothing is forgotten, no sensitive information is sent in emails or seen by someone who shouldn’t see it.
– IT never needs to think about a new employee coming in anymore. Everything is automated and just happens. Isn’t that the best user experience? When you actually don’t have to do even one click, and the process still works?
– Other employees in the company having tasks regarding a new employee coming in will be reminded of their tasks and make sure nothing is forgotten. Automated and nice. And, if they complete their task, no notifcation will be sent, it really is as easy as it sounds

And then, to the candidate starting. If the company implements this solution, everything will be ready for the new employee when he has his firsgt day of work. He can even get information about the company, his team, his manager and more in the Onboarding Portal before he starts, so we can keep up the good energy people feel when they are about to start working at a new company. The new employee will also feel that this company really takes care of their employees, and that they really are up to date in the digital world we’re living in.

Most Extreme Business Value:

The value for companies here are so high, that it’s almost difficult to know where to start. But, first of all, this saves a lot of time for the HR department. And, we really mean A LOT of time. Not just that everything is automated so they don’t need to do as much as they have to now to register a new employee, but they don’t have to push and follow up everyone else that hasn’t done their part and they don’t have to correct human errors that’s been done during the process. They can spend their time on something that is much more valuable to the company, and that is to make sure that all the employees already working here gets the best environment possible to do their job as best as they can! Lets face it, this is what we want the HR department to do, we don’t want them to spend time on entering data into a system.
The IT department will also save a lot of time witht this solution, that they can spend on other things as well. Not that I work in our IT department, but I assume that creating users and assigning licenses and access aren’t the most fun task they do at work. So I would think this will actually make their workday more fun!
Let’s just do an approxemently calculation of time saved. Create a contract for the new employee, upload it for e-signature, send it for signing, recieve it, ask the employee for more information so that it can manually be put into the system. Let’s say this totally takes 5 hours at best. Then someone needs to tell IT to create user and access and make sure that it have been done, a total of 1 hours. Then someone needs to follow up other employees, to make sure everything is done and ready for the new employee. This is maybe the most time consuxming, and I don’t think it’s wrong to say that this takes at best 8 hours in total during the time between someone signs and their first day of work. This means that time saved for just this one onboarding process is at least 14 hours. One of our customers typically hires between 10 and 20 employees every month, and this means that this solution will save them between 140 and 280 hours. Each month! To have an other example, an other customer of ours plans to hire 1.500 employees by the end of 2023… You do the math here!

Rock Solid Geeknes:

There are so many partws in this solution that works perfectly together, we almost can’t believe that we actually made this work as good as it does now. We seriously din’t think that we would be able to automate that many parts of the process as we have done now.

Killer App:

We have created this as a total solution, so that everything can be uploaded and used by all companies using Dynamics FO og Dynamics HR. With only a little personalization to make the wording, logo etc. fit the different companies, this can be set up quite fast. And, of course, each part can be implemented by it’s self too, if someone don’t want the whole solution. But, we know that this will be an easy solution to sell to our customers, as we know that a lot of them already really wants this!

The solution:

And now, finally, let’s go to the solution. You have been through a recruitment process in your company, and you have picked a really awesome candidate you want to send an offer to. This is what you do:

1: Create the candidate in Dynamics, and fill name, startdate, email address and phone number, and connect him to the position:

Like magic, the candidate resieves an email to view, update and sign the agreement. The Agreement is automatically filled with data from Dynamics before it’s sent out for signing, done through an API we created with OneFlow right here at this Hackaton:

The candidagte fills in the National ID number, and signs the Agreement using Bank-ID:

3: Agreement is signed by the company as well:

4: You Hire the candidate in Dynamics with two clicks, and assign the onboarding checklist that should be used for this canidate, and ticks the checkbox to create a user in Azure AD for the new employee:

This triggers a PowerAutomate that first create a work email for the new emplyee, sets this new email as the primary email address on the Employee workspace in Dynamics and creates the Azure AD user for the new employee and assigns group and licenses to it, and ends with sending the login detail to the employee with SMS, together with the link to the Onboardig Portal:

And, of course we have created a PowerAutomate that will remind the employees in your company about the tasks they are assigned regarding the onboarding of the new employee if they don’t follow it up by themself:

Now, the employee can log in to the Onboarding Portal (that works on all devices), and enter in more information about himself. When submitted, the data is automatically updated directly in Dataverse, and then becomes visiable in Dynamics within seconds:

And, last, but absolutely not least, the night before the new employee has his firs day of work, a PowerAutomate runs and imports the user to Dynamics, connects the user to the correct employee in Dynamics, and assigns the security role Employee to the user so that the new employee has accsess to the Employee Self-Service workspace in Dynamics:

And, to end it all for now, we have automated the process for email signature, so that is is automatically put on every one of the emails you send out. Now they finally will lokk the same for the whole company:

The signature itself is created with HTML-code, after a rule is created in Exchange

Crawling for those new deals

Since we are using a specific service to get deals, it could occur that our provider doesn’t give us all deals out there. That’s why we created a “Web Search API” in Azure. This allows us to create a flow that runs every day on bing for new deals and then notify us if our provider’s deal isn’t the best deal.

We started off by creating the Web Search API

We then created a scheduled flow to run every day, to get those deals we don’t catch in our providers API. In our query, we go for the keyword “Strømavtaler”.

Parsing the JSON allows us to structure the data and get it out. Now we can add each deal we find into a table inside Dataverse to create tasks to follow up on these.

We think this would be an excellent crawler because we are doing a search to bing each day for electricity deals. Then we are creating a record in dataverse for each deal we find, and follow up on these.

We also extended this flow, with another flow doing a search based on our library of electricity deals to see what the search engines give us if we run a search for each of our stored deals daily.

So based on our contract names, we are doing a search on bing each day, to see for possible better deals. We search based on the data we are capturing on www.elskling.no and then use this data to search on bing daily for updates on these contracts.

Those pesky accountants are at our throats

We have dumped historical events into a blobstorage for simple storage over time. The accountants at TMNT hq want to known what expenses each event incurred.

To facilitate them a simple search for cost by parameter we have built an azure search on top of the blobstorage. The blobs are indexed every hour so that any new events added to the search and the accountants can perform their accounting on the cost facet of the events.

The image below demonstrates how the backend search looks, the query in question returns the cost facet for every event where the triggering factor have been a loud sound (100dB).

If the search had returned two events for 100dB where the cost was equal, the count value would be 2.

Simple searching can also provide quick overviews over how a triggering event relates to the other data our sensors capture. Below we can see that all the events that triggered for 100dB triggered at a distance of 144cm from the sensorrig.

Target crawler

Re-post for SOME blogging from the interwebs targeting the Crawler badge

Using Microsoft Search Graph Connector and Microsoft Graph Search API’s we are indexing/injecting the ACDC blog posts into the TMNT intranet sphere to allow our turtles to stay up to date on what competitors are doing.

Graph Connector Setup
Graph Search in action

The Media dashboard has also been extended with a twitter feed.

SOME blogging from the interwebs

The turtle’s IT department, named Pizza Time, is hard at work showcasing their awesome setup. To make it easy to follow what happens we’ve brought the blog posts back into the intranet.

Setup consists of crawling the ACDC blog, for Pizza Time posts only via Graph Connectors.

Graph Connector Crawl Setup

To show these back on the home site we use the PnP Modern Search web parts (https://microsoft-search.github.io/pnp-modern-search/) with Graph connector support. The display is using a custom handle bars template matching the ACDC blog schema.

The custom template uses HTML5 content tags for proper screen reading and navigation.

How it looks in Teams

Crawl, Mine & Process

We have created a scheduled flow that crawls through www.elskling.no results in my neighborhood electricity prices to get which provides that I could choose in my area.

  1. We created a custom connector, which gets data from www.elskling.no, so we could get this data using a Cloud Flow.
  2. Using this custom connector we were able to get all the providers of the zipCode we sent with the request.

3. After getting these data, we are able to add the Current Rate of each supplier to our Account record in Dataverse. By running this flow hourly, we are able to always get the latest price from each supplier.

Lego City kriseteam har fått en canvas app med Relevance Search!

Claim for Crawler: Når vulkanutbruddet først er et faktum trenger myndighetene en måte å skaffe seg oversikt over tilgjengelige ressurser i samfunnet som kan bidra i gjenoppbyggingen. I Lego City sine myndigheters egen Dataverse har de lagret denne informasjonen på tvers av mange tabeller, som for eksempel Accounts, Contacts, Bookable Resources og Products.

For kjapt å få oversikt er det derfor nyttig å kunne søke enkelt på tvers av tabellene i Dataverse. Dette har vi løst ved å bruke Dynamics 365 sitt Relevance Search API.

Dette API’et tilgjengeliggjør Relevance Search-funksjonaliteten også utenfor Dynamics, slik at søket kan gjøres i den type applikasjon som er riktig for hver enkelt brukertype. Dette kan være i Sharepoint, i Teams, en Canvas app, eller noe helt annet. Man er altså ikke låst til å gjennomføre søket inne i Dynamics 365. Vi har laget en enkel Canvas app som alle på Lego City sitt eget kriseteam har tilgang til.

Et søk i denne appen trigger en Power Automate-flow som gjør søk ved hjelp av Relevance Search-API’et, og returnerer resultater på tvers av tabellene i Dataverse:

Ordføreren i Lego City er stressa etter vulkanutbruddet og søker simpelthen på “Emergency”:

Flow’en kjører, og søker på tvers av tabellene. I Account-tabellen finner de et firma som spesialiserer seg på krisehåndtering, perfekt! Navnet på firmaet er “Emergency Inc”.

Her er firmaet slik det ser ut inne i Dynamics 365:

Flow’en returnerer søkeresultatet tilbake til app’en, som viser søkeresultatene. La gjenoppbyggingen starte!

Search, Crawl and suggest

We have created an automatic daily web search crawler for giving family kids activity suggestions.

First, we have created a Bing Search API in Azure:

This Bing Search API is consumed by a Power Automate Flow which:

  1. Runs onces every day
  2. Search the web for kids activities
  3. Select on random of the returned suggestions
  4. Create an activity suggestion in Dynamics CRM

Data is listed in Dynamics 365 with URL and description from the search:

We will claim the following badges based on this post:

  1. Data Miner – for enhancing our Dynamics CRM database with data from Bing for kids activity suggestions
  2. Crawler – For building a search Bing API and utilizing this for searching for activities

Badge – Crawler

Search has come a long way in Dynamics these last years. Recently the Relevance search was greatly improved in UI making it such a great place to search for information in Dynamics.

This is a function you have to activate in Dynamics for it to work properly. Once you do, you will be warned about data leaving the dynamics org. The reason for the warning is that data will now be indexed via different azure services outside of Dynamics sphere.

This search uses the standard quick find fields.

Quick Find view
Quick Find field selection

The relevance search activates a search box on top of dynamics.

In this search you can use lots of parameters to refine search:

You can also click the Show more to see several entities

From here you can refine the results further to see entities/records across the system. All in all a great experience for Dynamics.