Consolidating our enterprise data in the Azure Data Lake to enrich our data-driven solutions

Knowledge is power, and in business knowledge comes from data-driven insights. We are often accustomed to having an onlook into our data in singular applications, separated from each other, even though their data is contextually connected and related: A sales system, a billing system, various production pipelines and a logistics system, just to name a few.

We may have powerful reports on our sales pipelines, and another set on production or logistics, and these reports do provide us with information on how these processes work in vacuum. But the truth is that nothing happens in a vacuum, instead, everything we do is connected.

To give you an example, our sales are driven, among other things, by customer satisfaction. Customer satisfaction can be boosted by providing high quality products and services in time without delays. Problems in our logistics chains can cause delays in both production and delivery, which makes our customers unhappy. Same goes doubly for any issues during production – maybe the devices used in quality assurance were poorly configured and we shipped low quality products as a result?

Customer satisfaction goes further down and landing new sales deals becomes more difficult. But if we looked at the data from our sales processes on its own, we would only end up seeing the result of sales going down – and not the actual, underlying cause of poor customer satisfaction, which was in turn caused by poor performance in production.

In this blog post I will show you how we can use Microsoft’s Azure services to consolidate all of the aforementioned enterprise data, and more, from different sources together to create even more powerful data-driven solutions. For the previous post on my series on Microsoft’s data platform, please see Building a real-time, cloud-based monitoring solution using Power BI and Microsoft’s data offerings.

Case: Combined dashboards on the full sales-to-delivery chain with Azure Data Lake

Consolidating data between systems can often seem like an insurmountable task. There are the technical challenges of managing multiple data sources and formats and combining them together in a meaningful way, and then there are the semantic challenges of finding relationships between different systems: How do we relate a customer in our sales pipeline to the same customer in our logistics system? Or what are the product codes for the items we sold in our production systems? Although this may feel like a lot to do before we can get any meaningful end results implemented, I’ve got some good news for you: With Azure it really isn’t that bad.

At the center of it all lies Azure Data Lake – a service for storing virtually all the data your enterprise ever needs or generates. Data Lake is schema agnostic, meaning that it does not care what format your data is in. It’s preferable that the data is stored in a format which is supported by all of the services involved in your data pipelines.

But other than that storing business data in Data Lake is as simple as extracting it from the source system and saving the extract in Data Lake as-is. And since we are using Data Lake simply as a centralized storage for all of the data coming from our various separated systems, we can implement these data extraction processes independent from each other.

When it comes to implementing a Data Lake solution there is no need for a single massive project where we identify all of the relevant business data at once, perform transformations on it and then copy that one, huge blob to Data Lake. Instead, we will be agile, implementing the data store piece by piece and effortlessly adding new data sources in tiny development projects as they are identified.

In practice the data stored in Azure Data Lake can come from virtually anywhere: Production management databases or documents stored in network file shares in your on-premises networks, Excel files located in Microsoft Teams, data in SharePoint lists, or any non-Microsoft cloud-based systems, provided they have support for extracting data. Just to name a few.

We choose the tools used for integrating these systems into Data Lake on a case-by-case basis as dictated by technical requirements and cost-efficiency. Azure Data Factory is my personal favorite since it can be run in the cloud and optimized for both performance and costs, and with the option of using Databricks it becomes a very powerful product. Other common tools include SQL Server Integration Services (or SSIS) in on-premises, Azure Stream Analytics for real time data or Logic Apps to make use of its Microsoft 365 connectors.

Once our data has been stored in Data Lake, we can get into implementing the actual business solutions. Although it is possible to use Power BI to connect directly into Data Lake, the most common scenario is to implement a database for our solution, ingesting transformed data from Data Lake to this database, and then building the business solutions on top of that.

There are multiple reasons for this: First, we are using Data Lake simply as a storage for our existing data “as-is.” This means that before we can use the data from our various systems – be it sensor data from production management, logistics information or sales data – we likely need to perform transformations on the data to make it all usable together. These transformations are done on this new reporting database.

Second, separating the reporting data source from the initial data storage means we can do changes in the reporting without affecting the data storage layer. Similarly, we can also add new reporting databases for other, separate solutions without affecting our existing databases.

This results in a modular structure where we can have one single Azure Data Lake instance serving multiple separate reporting databases, all of which can be doing their own thing. It is not uncommon to have just one Data Lake in an enterprise and having each business area develop their own reporting databases with their own unique business requirements based on that shared Data Lake.

Since the Data Lake and our reporting databases all are located on the Azure cloud, that is where our transformation logic will reside as well. Copying data from Data Lake to Azure SQL databases is commonly done using Azure Data Factory, which gives us access to a wide array of tools, from Data Flows to Azure SSIS and Databricks, to choose from.

For special cases, such as handling more exotic data formats, we can implement Azure Function Apps to make use of programming code. For the reporting databases we can make use of Azure SQL’s wide array of performance options to find the most suitable solution for our needs: Serverless databases provide excellent price/performance -ratio for reports that are updated once or twice a day, while for more often updated databases provisioned instances can be automatically scaled to meet changing demands.

Now, with our enterprise data combined together in the reporting database we can create the solution layer. For example, we can create a Power BI report with which our production managers can identify delays in our suppliers’ logistics and then use a Power Apps tool to inform our customer service agents that all of the orders affected by this supplier delay might be delayed as well.

They, in turn, can then contact the customers in question and let them know of the potential delay in delivery and possible solutions before it has even occurred, resulting in better customer satisfaction. All of this is possible by being able to match the supplier logistics information with associated production pipelines, production with orders and orders with customers within our reporting database.

The possibilities provided by bringing all of our data together are endless. Do you feel like there might be ways in which your existing business data could be harnessed more effectively? Do get in touch and let’s see what we could do help you!

Writer: Joonas Äijälä

Automated Machine Learning has hit GA – and why it matters

Microsoft’s Ignite conference brought with it a ton of news as usual, and among those all was a long-awaited announcement of Azure’s Automated Machine Learning (ML) finally hitting general availability and leaving behind its over a year long preview state. Not only did the service reach GA, but Microsoft also announced that they will be merging the previously “Enterprise-grade” features of Azure Machine Learning with the cheaper Basic-tier, including Automated ML. This means that not only are these features now officially suitable for production use, but they are also very affordable to the customer: With Automated ML you will only pay for the resources you use, meaning that training new machine learning models can cost less than a cup of coffee does.

So, what is machine learning and why does this matter to me?

Of course, having a service reach GA and it becoming cheap to use is great and all, but with the myriad of different Azure services around we must ask ourselves why this one is something to be excited about? Machine learning itself is a data science discipline interested in finding out best possible answers to problems based on historical data. For example, you may have a list of patient records including details such as age, body-mass-index, blood pressure and whether the person is diabetic or not. Using this data, you could then train a machine learning model that can make predictions on whether someone else has diabetes based on their age, body-mass-index and blood pressure.

Similarly, you could train machine learning models to estimate daily sales, or the likelihood of a mechanical failure in a production machine, and many other things as long as you have the historical training data available. The movies that Netflix recommends you are a result of machine learning, too. While the results of machine learning are only predictions, these predictions can be made at rapid pace, faster than what any human is capable of. As such machine learning can produce valuable insights to large amounts of data that would be near impossible for humans to analyze, be it in real-time IoT systems or quarterly BI reporting. And even in daily decision-making machine learning can provide human decisionmakers with valuable second opinions that are less likely to hold any human biases.

But despite all the benefits that machine learning can bring us it has been rarely utilized, mostly due to the high barrier of entry: Producing accurate machine learning models has required a lot of manual work from highly skilled and sought-after data scientist specialists. Training the models has been an iterative process with lots of trial and error, and as such, the required investments needed for a machine learning project have been very high. Until now, that is.

Enter Automated Machine Learning

This is where Automated Machine Learning, Microsoft’s answer to making machine learning more affordable and available to all, comes in. It simplifies the process of training machine learning models by performing most of the iterative data science work for you, and turning projects that previously were 95 % data science and 5 % data engineering to more like 75 % data engineering and 25 % data science. Models can be trained and deployed to testing in a matter of hours, given good quality training data of course, and implementing proof-of-concept machine learning solutions with high quality models can be done quite handily. So, if you’ve thought that machine learning could be of use to you but were skeptical of the time and monetary investments required, worry no more.

Excited yet? Do get in touch and let us see how machine learning can help you!

Power Virtual Agents & You: Integrating Bots Into Microsoft Teams Without Coding

Applications built into Microsoft Teams make it the Hub for Work by delivering integrated experiences to users using a unified canvas. Teams apps can empower your business, office, and firstline workers by letting them take advantage of your backend systems all from the palm of their hand.

Teams Application Templates and Power Virtual Agents have the power to extend Teams with bots quickly. You can integrate App Template bots into a production in a matter of hours, and Power Virtual Agents are even faster than that with a simple conversation flow.

When working in a real-world situation, you always do the first tests and proofs in a development or testing environment. It’s here where you can see what value you will get from the app/bot and how well it fits the needs in your organization. The key here is that you can start your bot Proof-Of-Concept (POC) in a matter of hours!

How can you extend Teams with these apps?

First, it’s important to state that bots are apps as well. They’re just more conversational in their nature than, say, sending a message via Teams to every user in your organization.

Apps extend Teams in several ways including:

  • Tab applications (like PowerBI reports or SharePoint pages in a channel tab)
  • Message Extensions (like Praise or Stream)
  • Message Actions (like creating a Polly poll based on a single message)
  • Notifications from various apps. Instead of checking the app every ten minutes, you can act the moment you get the notification.
  • Bringing apps to Teams. PowerApps can be brought into Teams without changes, SharePoint web parts (SPFx) can be added to Teams as apps with minor changes.
  • Having bots you can use in a conversational way (and that can be made richer and more interactive with adaptive cards)

Some uses for bots in various organizations include:

  • FAQs. These can save your organization time and help you get answers without involving IT in the process
  • Several forms (IT support/team/travel/day off and various other requests)
  • Inquiring information from the back end (available vacation days/saldo hours, updating personal information, etc.
  • Reporting leads, getting customer or project information, reporting hours, asking for assistance, and so on

As can be seen, bots are very versatile and can be used in many processes. Instead of filling out a plain form, bots let you answer questions interactively. On the one hand, these bots already work with mobile Teams. On the other hand, trying to fit just any form into a bot conversation won’t do; some just don’t work properly. Instead of trying to recreate your current processes 1:1 in Teams, reconsider what’s essential and how the process would be best supported by Teams bots (or other platform capabilities).

What Are Teams Application Template Bots?

These bots are production-ready packages you can deploy and start using in your Teams. They use several Azure resources, so you need to have enough permissions to spin up resources and a suitable subscription when you are doing the deployment.

All application templates are open-source and come with source code that you can download, edit, and utilize even more. This way you can also check the application internals if your organization requires a review process. There’s also information in each apps’ architecture and even cost estimates.

There are several benefits you get from application templates:

  • They make it easy to get started. You don’t have to be a developer to deploy these.
  • You get more understanding of how to utilize Teams as an app platform.
  • If POC/test/pilot proves that these apps match your needs, you can deploy them to your production
  • For developers they serve as a kickstart and example code of what utilizing several different Teams app capabilities can do

Power Virtual Agents

If you thought it was fast to get started with Teams bots using Application Templates then you’ve seen nothing yet!

The new cool player in town is Power Virtual Agents. These agents come in a package that has it all: the platform, AI, machine learning, integrations, and a design canvas. With Power Virtual Agents you can create versatile conversational bots without any code or understanding of machine learning/AI, and you can even connect them to business processes without being a developer with a coding background. Power Automate can be used to extend conversational processes, and with this #lowcode platform you can use resources and do actions both in and out of Office 365.

When you sign up for a new Power Virtual Agent service it only takes about 15 minutes for you to get an example bot in place. Modifying example topics/setup to suit your immediate needs can be done in just minutes. Of course, it often takes a lot longer since the process is iterative and you rarely have the design done in advance. If you just have some simple Q&A questions it doesn’t take a long time, but businesses typically have larger needs.

What is especially great about PVAs is their language understanding (limited to English at this point). You don’t have to define topics for every possible variation—instead, the PVA platform will try to figure out what you meant and pick paths based on that. It has proven to be rather useful in my experiments, and it’s easy to edit these topics later as well. And yes, this is done without any coding in a visual design canvas.

Power Virtual Agents are the new “superpower” answering to quickly changing or rising needs. Combining the conversational AI “magic” with Power Automate allows power users and citizen developers to digitalize conversational processes super quickly.

Do not wait but get started with these #nocode #locode Application Template & Power Virtual Agent bots!

.. they are not scary at all!

If you are interested to learn more on the subject, a longer version of this post can be found here

Vesku on toiminut yli 20 vuoden ajan erilaisissa asiantuntija-, konsultointi- ja valmennustehtävissä. Hän on Microsoft MVP (Most Valuable Professional). Vesku on erikoistunut Office 365:n ja Microsoft Teamsin tarjoamiin modernin työn ratkaisuihin, mutta kokemusta löytyy monista erilaisista toimialoista ja teknologioista.

Paranna Power BI -raporttien saavutettavuutta

Saavutettavuus on yksi tärkeimmistä digitaalisten sisältöjen ominaisuuksista. Se tekee niistä entistä hyödyllisempiä ja helppokäyttöisempiä, jolloin niitä myös käytetään ja kulutetaan enemmän. Samalla digitaalisten sisältöjen luominen saavutettaviksi takaa niiden lainmukaisuuden. Tässä blogikirjoituksessa avaamme saavutettavuutta ja siihen liittyvää lainsäädäntöä, sekä annamme muutamia esimerkkejä, kuinka Power BI -raporttien saavutettavuutta voidaan parantaa.

Saavutettavuus ja siihen liittyvä lainsäädäntö

Saavutettavuudella pyritään tasa-arvoistamaan ihmisiä digitaalisten palveluiden kuluttajina. Saavutettavuusvaatimusten mukaan palvelut tulee suunnitella ja toteuttaa tavalla, joka mahdollistaa sisällön käytettävyyden ja ymmärrettävyyden riippumatta käyttäjän henkilökohtaisista ominaisuuksista. Näillä ominaisuuksilla voidaan viitata mm. näkö-, kuulo- tai kehitysvammoihin, fyysisiin ja motorisiin rajoitteisiin, heikkoon suomen kielen taitoon tai tilapäisiin haasteisiin. Monia näitä haasteita on vaikea havaita päälle päin, ja siksi digitaalista sisältöä ei pitäisi luoda olettaen, että jokainen vastaanottaja on kyvykäs kuluttamaan tietoa kaikkien aistiensa avulla. Aikaisemmin Sulavan blogiin saavutettavuudesta on kirjoittanut Tomi Kontio: Sisällöntuottajan vinkit: EU:n saavutettavuusdirektiivi ja moderni SharePoint-intranet.

Euroopan parlamentin ja -neuvoston antama direktiivi julkisen sektorin elinten verkkosivujen ja mobiilisovellusten saavutettavuudesta astui voimaan vuonna 2016. Direktiivistä on johdettu kansallinen Laki digitaalisten palveluiden saavutettavuudesta, joka astui voimaan huhtikuussa 2019. Laki velvoittaa viranomaisia, julkisoikeudellisia laitoksia ja osaa järjestöistä noudattamaan osaa Web Content Accessibility Guideliness 2.1 (WCAG 2.1) -ohjeistuksesta.

WCAG 2.1 -ohjeistus sisältää 78 onnistumiskriteeriä, jotka on jaettu kolmeen vaativuustasoon helpoimmasta vaativampaan: A, AA ja AAA. Suomen kansallinen laki velvoittaa noudattamaan A- ja AA-tason onnistumiskriteereitä, joita on yhteensä 49 kappaletta. Vaikka lainsäädäntö velvoittaa ensisijaisesti viranomaisia, julkisoikeudellisia laitoksia ja osaa järjestöistä, jokainen organisaatio voi lisätä digipalveluidensa käytettävyyttä ja hallittavuutta noudattamalla onnistumiskriteerejä.

Saavutettavuuden huomioiminen Power BI -raporteissa

Power BI -raporttien avulla voidaan havainnollistaa ja visualisoida dataa mahdollisimman yksiselitteisellä ja tehokkaalla tavalla. Power BI -raportit luovat arvoa jokaiselle toimijalle, joka haluaa seurata ja analysoida oman toimintansa tunnuslukuja tai prosesseja. Parhaassa tapauksessa raporttien avulla pystytään havainnoimaan kehityskohteita ja käyttämään niitä päätöksenteon ja kehitystyön tukena.

Relevantin informaation ja hienojen visualisointien lisäksi raportilta vaaditaan saavutettavuutta. Datasta havaitut monimutkaiset suhteet ja riippuvuudet on pystyttävä muokkaamaan visuaaliseksi kertomukseksi, jonka käyttäjä ymmärtää helposti ja silmäilee jopa mielellään.

Raportit saattavat herättää lukijoissaan kysymyksiä, joihin vastaamalla voidaan löytää ratkaisuja liiketoiminnan merkittävimpiin kysymyksiin. Raporttien avulla voidaan löytää vastauksia esimerkiksi seuraaviin kysymyksiin: miten asiakaskunnan mieltymykset ovat jakautuneet, miten palvella asiakkaita paremmin, miten kohdentaa mainontaa tehokkaammin ja jopa löytää uudenlaisia liiketoimintamahdollisuuksia.

Parhaassa tapauksessa raportti herättää käyttäjissään uusia kysymyksiä, joihin vastaamalla saavutetaan tietoa, jonka avulla voidaan esimerkiksi palvella asiakkaita paremmin, kohdentaa mainontaa tehokkaammin, valmistaa entistä hienompia tuotteita tai löytää jopa aivan uudenlaisia liiketoimintamahdollisuuksia.

Microsoft Power BI sisältää ominaisuuksia, jotka tukevat saavutettavampien raporttien luomista ja kuluttamista. Raportin saavutettavuutta voidaan parantaa seuraavien toiminnallisuuksien avulla:

  • Vaihtoehtoinen teksti (Alt Text)
  • Sarkainjärjestys (Tab order)
  • Otsikoinnit ja tunnisteet (Titles and labels)
  • Merkinnät (Markers)
  • Värit ja Teemat

Toiminallisuudet on esitelty seuraavaksi.

Vaihtoehtoinen teksti (Alt Text)

Vaihtoehtoinen teksti tulee aktivoida ja lisätä jokaiselle visuaaliselle objektille erikseen. Vaihtoehtoinen teksti eroaa työkaluvihjeestä (Tooltip) siinä, että vaihtoehtoinen teksti on luettavissa näytönlukijalla ja näppäimistöhallinnalla.

Vaihtoehtoiseen tekstiin voidaan lisätä ehdollinen muotoilu DAX-mittareiden avulla. Mittareiden avulla vaihtoehtoinen teksti muuttuu dynaamiseksi, jolloin mittari muotoilee tekstiä aina riippuen lukijan tekemistä valinnoista raportilla. Ehdollisen muotoilun löydät fx-painikkeen takaa.

Sarkainjärjestys (Tab order)

Sarkainjärjestys on tärkeimpiä Power BI -raporttien saavutettavuuteen vaikuttavia tekijöitä, sillä se määrittää missä järjestyksessä visualisointiobjektit ovat luettavissa näppäimistöhallinnalla ja näytönlukuohjelmalla. Yleinen sääntö sarkainjärjestyksessä on vasemmalta oikealle, ylhäältä alas.

Sarkainjärjestys toimii tabulaattorilla, valitun objektin ympärille ilmestyy värillinen reunus. Sarkainjärjestystä voi muuttaa vetämällä objekteja haluttuun järjestykseen. Jos raportilla on ikoneja tai muita koristeita, jotka eivät ole merkittäviä ymmärtää raportin kannalta, ne kannattaa piilottaa sarkainjärjestyksestä.

Otsikoinnit ja tunnisteet (Titles and labels)

Mahdollisimman kuvaavien otsikoiden ja tunnisteiden käyttäminen on tärkeää, sillä vain näin ne voivat auttaa lukijaa ymmärtämään visualisointiobjektien sisältöä. Sen sijaan lyhenteitä ja ammatti- ja alakohtaista jargonia on hyvä välttää. Otsikoita ja tunnisteita suunnitellessa kannattaa huomioida, että vaikka jokin termi on sinulle aiheen asiantuntijana itsestäänselvyys, ei se välttämättä ole sitä raportin lukijoille.

Merkinnät (Markers)

Värit ovat tärkeitä saavutettavuuden kannalta, mutta vältä niiden käyttämistä ainoana tapana ilmaista informaatiota. Esimerkiksi visualisoidessasi aikasarjadataa voit huomioida saavutettavuuden viiva-, alue-, kupla- ja hajontakuvioiden tapauksessa asettamalla Merkinnät (Markers) päälle.

Alla olevat kaaviot havainnollistavat, kuinka kolmion ja ympyrän muotoiset merkinnät auttavat erottamaan viivadiagrammin viivat toisistaan. Merkintöjen avulla viivat olisi mahdollista tunnistaa toisistaan, vaikka viivat olisivat saman värisiäkin.

Värit ja Teemat

Riittävän kontrastin varmistaminen ja sopivien väriyhdistelmien käyttäminen raporteissa on erityisen tärkeää näkörajoitteisten käyttäjien kannalta, mutta samalla ne tekevät raporteista helppokäyttöisempiä kaikille. WCAG 2.1 -ohjeistuksen AA-tason onnistumiskriteerin 1.4.3 mukaan tekstin ja taustan välisen kontrastin suhde tulee olla vähintään 4,5:1. Raporttien värimaailmaa suunnitellessa on hyvä huomioida myös useat värisokeudet.

Värimaailman suunnittelussa voi hyödyntää esimerkiksi erilaisia selaimeen asennettavia lisäosia (esim. Colorblindly), web-palveluita (esim. WebAIM:n tarjoama Contrast Checker) ja ohjelmistoja (esim. Colour Contrast Analyzer). Aikaa suunnittelulle kannattaa varata riittävästi. Erinomainen tapa säästää aikaa ja resursseja on luoda oma riittävän kontrastin takaava ja sopiviin väriyhdistelmiin pohjautuva kustomoitu teema, jota organisaatio voi uudelleenkäyttää kaikissa uusissa raporteissa. Kustomoidun tyylin voi luoda alusta asti itse määrittelemällä ensin JSON-tiedostoon haluamansa värit ja muut mahdolliset tyylit ja tuomalla tämän tiedoston Power BI:n käyttöön.

Nykyistä teemaa pääsee muokkaamaan klikkaamalla Näytä (View) -> Teemat (Themes) -> Kustomoi nykyistä teemaa (Customize current theme).

Power BI tukee ja mahdollistaa raporttien ja koontinäyttöjen saavutettavuuden parantamista eri ominaisuuksien ja toimintojen kautta, joista osaa käsittelimme tässä blogissa. Kyseisten ominaisuuksien avulla pääset hyvin alkuun raporttien saavutettavuuden kehittämistyössä. Kannattaa lisäksi seurata säännöllisesti, mitä uusia saavutettavuuteen liittyviä ominaisuuksia Power BI:hin julkaistaan. Uudet ominaisuudet voit tarkistaa Power BI:n Roadmapista. Mikäli saavutettavuus kiinnostaa aiheena enemmän, suosittelemme tutustumaan ainakin seuraaviin lähteisiin:

Microsoft – Design Power BI reports for accessibility 

Laki digitaalisten palvelujen tarjoamisesta


Vilma HakanenVilma Hakanen
Yrityksen kyky reagoida toimintaympäristön muutoksiin ja sekä tietoon perustuva päätöksenteko ovat Vilman mielenkiinnon kohteita. Vilma haluaa ymmärtää yritysten tarpeita, prosesseja ja toimintatapoja. Sulavalla Vilma keskittyy liiketoiminnan tuottavuuden kehittämiseen Microsoftin teknologioiden avulla.

Kukkamäki MattiMatti Kukkamäki
Matti lähestyy liiketoiminnan kehittämistä tiedolla johtamisen näkökulmasta. Asiakkaiden tarpeiden tunnistamisessa hän hyödyntää taitoaan kommunikoida sujuvasti niin liiketoiminnan loppukäyttäjien kuin it:n kieltä. Matti keskittyy auttamaan asiakkaita liiketoiminnan kehittämisessä digitaalisen ajan tarjoamien mahdollisuuksien ja vaatimusten verkossa.

Building a real-time, cloud-based monitoring solution using Power BI and Microsoft’s data offerings

You may have heard the saying ”Data is the new oil”, which has been spreading around the last few years. This word “data” in this statement has usually referenced to the data that you and I leave behind when using technology, to be then made use of by advertisers, influencers, and other parties.

But just as well the data that your business generates is the new oil, which, if refined properly, will allow you to gain new and powerful insights into your business practices. This allows you to enhance, streamline and improve your business processes from research, development and manufacturing to sales, logistics and customer support. In this blog series I will go through a number of topics on how we can leverage Microsoft’s cloud-based business intelligence and data offerings to bring you new insights to your data.

Topics of this series:
1. Building a real-time, cloud-based monitoring solution using Power BI and Microsoft’s data offerings (this post)
2. Consolidating our enterprise data in the Azure Data Lake to enrich our data-driven solutions

Power BI is a powerful tool for building reports that allows you to gain new insights from your data. Often these reports are refreshed daily or even weekly, which can be enough for performing historical analysis on concerns such as sales performance, customer satisfaction or expenses.

However, Power BI can also be used to build reports that give you a clear look into what is going on in your organization right now, so that you can act on the information immediately. Such reports can display information from live manufacturing processes, logistics chains or even sales negotiations, all in real time.

By default, Power BI offers support for streaming and pushing real-time data. Both of these mechanisms allow us to easily build reports with live data, but they also come with some limitations: Streamed data is fast and powerful to use, but it can be stored at most for an hour, which limits its use only to monitoring live data. No historical analysis will be possible with streamed data.

Pushed data, on the other hand, will be stored by Power BI and it will support historical analysis. This makes it ideal for reporting scenarios where we can identify a set of real-time data that we need to make easily available for a single Power BI application. However, the downside to pushed data is that we cannot reuse the same dataset anywhere else. If we would like to create multiple reports using the same data, we would need to build separate pushed datasets for each of them – or come up with an alternate solution.

Case: Live industrial monitoring whiteboards with Power BI

Being aware of the technical options and limitations our tools give us is definitely important, but with data everything begins with identifying the data we have, where it comes from and what we want to do with it. In this case example we will be building industrial monitoring whiteboards, which are used to display lots of different kinds of data detailing the goings in our factory:

  • Production speeds and targets
  • State of the machinery: Temperatures, cleanliness, jams or any other issues
  • Free storage space, inventory of parts and materials
  • Environmental data: Outside temperatures, wind speed and direction
  • Safety information: Number of accidents, latest notifications

Our production data is also timestamped, which allows us to attach it to the shifts working in the factory. This way we can not only see what is currently going on, but also see which teams have been performing beyond expectations. Next, we will classify our data based on how we need to use it on our reports:

As you recall from before, with live data in Power BI our choices are to go with streaming or pushing data. We want to avoid pushing, because we have identified that there can multiple future use cases for data, and as such we want to store it in a more reusable place than a Power BI dataset. Streaming data is stored for an hour in Power BI, so we can use it to display immediate sensor information such as production speeds and temperatures, but we also need to capture them separately for historical analysis. This leads us to adopt a hybrid model with our data and reports.

In our hybrid model we will stream live data directly from our data sources to Power BI, where our BI developers create meters and real-time visuals for the data. The same data will also be captured into a SQL database, from where we will supply the reports with near real-time historic data.

To achieve this, we will use Power BI’s Direct Query method to fetch recent data (the last few factory shifts, perhaps) frequently. Power BI’s Import data method will then be used to fetch any data needed for longer historical analysis, such as analyzing factory teams’ performance over the year. A Power BI data gateway will be installed between the cloud-based Power BI service and our on-premises factory servers to facilitate data transfer.

Finally, once our data is in place and the reports have been developed, we still need to figure out how to display the reports to our end-users: Both the analysts viewing our historic data and the factory workers themselves.
Our analysts are likely to be happy to use the Power BI dashboard, and for their purposes it will work perfectly. For the factory workers, who are more reliant on the live data, out-of-the-box Power BI interface can be found lacking: It contains lots of visual clutter and controls that are on the way when the report is viewed from a factory hall monitor.

In addition, while the live streaming data is automatically refreshed in Power BI reports, our near real-time Direct Query data is only refreshed when the report updates – and by default Power BI reports update only every fifteen minutes. To circumvent this issue, we create a custom Power BI Embedded app, which allows us to minimize visual clutter and enforce report refresh times. In our factory we settle to have the report refresh the near real-time data once every minute.

With these high-level steps we have identified the data in our possession, developed use-case driven ways to capture and deliver it to Power BI and then created reports and ways to display them catered to our different users’ needs.

Do you feel like there might be ways in which your existing business data could be harnessed more effectively? Do get in touch and let’s see what we could do help you!


How to transfer your customer meetings online and create easy-to-buy services with Microsoft Bookings

Microsoft Bookings is an online and mobile app for small businesses who provide services to internal or external customers on an appointment basis. With Bookings, you can easily create online services for your customers to buy.

For example, let´s say you have a business that sells social media contents for customers. Before, you would have your staff phone numbers on your webpage and maybe a “contact us” form for the customers. When a customer calls or sends a message, you would spend some time to sell the product and then maybe to find time for a meeting in both of your calendars. After that, you would go to the meeting, maybe spend a lot of time in traffic etc. Not to mention the restrictions that the situation with corona creates, making it perhaps impossible to even meet customers face-to-face.

Did you know that there is a more effective way to sell, book and deliver services? That is to say, you can use Microsoft Bookings and Teams.

Microsoft Bookings

In Bookings, your customer can book a time online from your available hours. The appointment can be held online using Microsoft Teams. Photos by Microsoft.

What will be different when you have Bookings + Teams?

Let´s say your customer browses through your website, finds interesting content and is assured of your expertise. From there, it´s a low threshold for the customer to click on your “Book a 30-minute sparring session for social media marketing online” -button. The customer can now book a time there and then, as they can see your available times and choose the one best suited for them. Once they do that, a notification is send to you and you can confirm the appointment.

The appointment can be held online using Microsoft Teams (even if the customer doesn´t have Teams). So there! You have just sold and delivered your services without spending any time on the phone or in a car, and you can focus on the key things, things you love to do.

Microsoft Bookings

When a new booking is made, you and your customer both get notifications from it. You can also set up an alarm to remind your customer when the appointment is getting closer. Photo by Microsoft

See all this in practice, join our webinar! You’ll learn:

  • What is Bookings
  • How to make a ”reservation line” available online without having to have a person waiting by the phone. Customers can find free times and schedule appointments at any time of the day.
  • How you can implement Bookings quickly in your organization.
  • About the possibilities how to digitalize your business for example in finance & insurance, healthcare, consultative work, helpdesk and small business.

See the webinar

Note: Microsoft Bookings is available as part of an Office 365 Business Premium and Enterprise E3 & E5 subscriptions.

Microsoft Bookings

You can view and manage your booked hours in Bookings. Photo by Microsoft

Senior Consultant. Tuulia has a strong background as a communications specialist, and she thinks that effective internal communication is the key to shine out to customers as well. She helps clients with developing internal communications and modern information work, communicating and implementing change and how to utilize Office 365, SharePoint and Teams. Tuulia on asiakkaiden tukena modernin tietotyön konseptoinnissa ja suunnittelussa, muutoksen viestimisessä ja läpiviennissä sekä modernien työkalujen käyttöönotoissa. Hän auttaa asiakkaita kehittämään sisäistä viestintää, ryhmätyöskentelyä ja toimintaprosesseja Office 365:n, SharePointin ja Teamsin avulla.

Medialukua Power BI:llä – kuinka data virusinfektiosta saadaan helposti käytettävään muotoon?

Kiinassa on valloillaan koronavirus, joka leviää vauhdilla. Eri uutistoimistot tuottavat tiheään tahtiin uutisia, ja usein uutisoidaan ”500 uutta tapausta Kiinassa” -tyylisesti. Uutta verrattuna mihin?
Paljonko tapauksia on nyt siis yhteensä todettu, paljonko oli toissa päivänä? Paljonko on lisäys ja lisääntyykö vai väheneekö tapauksien löytymisten suhteellinen kasvu päivässä? Onko kasvu eksponentiaalista vai lineaarista? Miltä tulevaisuus näyttää?

Uutisia lukiessa nousee mieleen monta erilaista kysymystä, joihin ei ihan heti löydy vastausta lehdistä tai Wikipediasta.
Onneksi on helppo mennä julkisen tiedon lähteille, katsomaan World Health Organisationin (WHO)  tilanneraportteja, jotka julkaistaan kerran päivässä. Raporteista löytyy virallinen tieto löydetyistä tapauksista kultakin päivältä omassa raportissaan maittain eriteltynä.

Olisi monta mahdollisuutta hakea tiedot tuolta WHO:n sivuilta. Power BI nykyään lukee PDF-tiedostojakin ja näytti ihan hienosti kaivavan raportista tuon taulukon, jossa tapausmäärät maittain luetellaan. Jonkinlaista Power Query -akrobatiaa kuitenkin vaatisi hakea sivulta kaikki PDF:t ja hurauttaa niistä tiedot yhteen. Nähdäkseni kuitenkin ihan tehtävissä ja tällaiseen Power BI:n Dataflows onkin ihan tarkoitettu.
Toinen mielenkiintoinen juttu olisi hyödyntää Azure Data Factorya, Azure Databricksiä ja Azure Data Lakea. Azure Data Factorilla haetaan tiedostot sellaisenaan Azure Data Lakeen talteen ja ohjelmoidaan Pythonilla Databricks lukemaan tiedostojen sisältä tiedot ja palauttamaan ne Power BI:lle.

Tässä olisi myös erinomainen esimerkkitapaus Ignitessa julkaistulle Azure Synapse Analyticsille, jolla saataisiin koko putki tuolta tiedon hakemisesta lopulliseen visualisointiin yhteiseen työtilaan ja kunkin osan tekijät voisivat sitä yhdessä läpinäkyvästi työstää. Palvelu on vielä private preview -vaiheessa, ja tälle käyttötapaukselle tuskin saa haettua omaa preview-ympäristöä Microsoftilta. Jos Azure Synapse Analytics kiinnostaa enemmän, katso webinaaritallenteemme viime vuodelta.

Vein kuitenkin tiedot nyt tylsästi ja nopeasti tietokantaan ATK:lla (= Antti Tapani Kontiainen copypastettaa) koska tietoa on vähän, se on helposti käsiteltävässä muodossa ja päivittyy vain kerran päivässä. Tässä kohtaa siis kustannustehokkain ratkaisu.
Tein pikaisen visualisoinnin ja lisäsin Power BI:n automaattisen ennustuksen. Tällä tavalla minun on helpompi saada kokonaiskuva siitä, mitä tapahtuu ja arvioida tilanne itse. Raportin voi myös jakaa muille kiinnostuneille, tai vaikka upottaa sen nettilehden sivuille.

Power BI:n ennustus toimii käyttäen Exponential Smoothing -algoritmiä. Kiinassa tapauksien määrä juuri nyt (28.1.2020) kasvaa eksponentiaalisesti, joten tuntuu, ettei algoritmi ihan usko kasvun jatkuvan samaan eksponentiaaliseen tahtiin. Mutta arvatenkin ennustus paranee sitä mukaa kun saadaan uutta dataa tulevilta päiviltä.

Helppoa, nopeaa ja ilmaista. Tässäpä sama raportti sinullekin katseltavaksi.

Koronavirus levinneisyys Power BI -raportti tilanne 28.1.2020

Koronavirus levinneisyys Power BI -raportti tilanne 28.1.2020

Lue lisää: Kuinka Power BI auttaa käsittelemään suuria datamassoja?

Kuinka Power BI auttaa esimerkiksi toimittajaa suurten datamassojen käsittelyssä? Visualisointi tekee aiheista helpommin lähestyttäviä ja tuo personoinnin mahdollisuuksia. Power BI:n ansiosta uusien juttuaiheiden löytäminen ja taustatyön tekeminen on helpompaa, lue blogi!

Antti Kontiainen

Microsoft Project for Web – Uusia tuulia projektien aikataulun hallintaan O365-ympäristössä

Microsoft on julkaissut uuden Project For Web-nimisen O365-tuotteen, jota voisi kuvailla vanhan Microsoft Projectin moderniksi versioksi. Uuden modernin käyttöliittymän myötä projektien aikataulutus on tehty mahdollisimman helposti saavutettavaksi ja visuaalisesti houkuttelevaksi. Käyttö tapahtuu selaimella tai ehkä vielä mielenkiintoisemmin Teamsin avulla. Uusi työkalu on rakennettu Microsoftin Power Platformin päälle hyödyntäen sen tarjoamia palveluita. Tämä mahdollistaa käytännössä modernien työtapojen helpon integroitumisen projektin aikatauluihin esimerkiksi Flow:n, PowerAppsin ja Logic Appsin kautta hyödyntäen tiedonvarastointia Common Data Service (CDS) -palveluun.

Project For Web

Ensimmäinen julkaistu versio tuntuu kovin karsitulta ominaisuuksien osalta, jos on tottunut käyttämään Project Onlinea tai Project -työasemasovellusta, mutta nyt julkaistut ominaisuudet ovat hyvinkin riittävät projektin aikataulun suunnitteluun ja seurantaan. Mielenkiintoista on seurata mitä uusia ominaisuuksia Microsoft päättää sovellukseen tuoda. Uudet käyttöönotettavat ominaisuudet tulevat Microsoftin mukaan perustumaan käyttäjiltä saataviin palautteisiin ja toiveisiin. Samassa yhteydessä Microsoft on myös kertonut että Project for Web tulee korvaamaan Project Onlinen jollain aikavälillä. Se, että koska tämä tapahtuu, on hyvä kysymys. Luulen, että kenelläkään ei ole vielä vastausta siihen, mutta käytännössä Project Onlinen kehitystyö on lopetettu ja uudet ominaisuudet tullaan toteuttamaan Project for Webin päälle.

Project For Web_04-01

Uuden Power Platform -alustaratkaisun myötä Microsoft tarjoaa entistäkin paremman mahdollisuuden kumppaneille rakentaa asiakaskohtaisia ratkaisuja projektien-, resurssien- ja projektisalkunhallintaan. Tosin tämä myös tulee tarkoittamaan lukuisia erilaisia toteutuksia, joissa kaikissa yhteinen tekijä on O365, Project for Web ja muut palvelut. Onkin siis entistä tärkeämpää valita itselleen sopiva kumppani toteuttamaan organisaation tarpeet projektinhallinnan työkalun kehittämiseen.

Kenelle tämä ensimmäinen julkaistu versio sitten soveltuu? Sellaisenaan se soveltuu hyvin yksinkertaisten (esim. alle 200 tehtävää sisältävien) projektien aikataulutukseen, joissa ei ole tarvetta luoda projektien välisiä riippuvuuksia, projektisalkkutietoja tai tarkempaa resurssien aikataulutusta. Tosin, nämä kaikki tarpeet on myös mahdollista luoda sovelluksen ympärille tehtävään ratkaisuun. Ensimmäinen versio ei myöskään tue projektin aikataulun avaamista Project -työasemasovellukseen. Tämäkin on hyvin todennäköisesti mahdollista tulevissa päivityksissä, jolloin haastavammatkin suunnitelmat voidaan toteuttaa keskitetysti.

Uuden Project for Webin saa käyttöönsä hankkimalla Project Online P3 tai P5 -lisenssin. Käytännössä, jos sinulla on jo käytössä Project Online, saat Project for Webin samalla lisenssillä käyttöösi.

Project For Web_05-01

Mihin Project for Web asettuu muiden O365:n alta löytyvien tehtävän- ja projektinhallinnansovellusten joukossa? Ominaisuuksia vertaillessa asettaisin sovellukset seuraavaan järjestykseen yksinkertaisimmasta monipuolisimpaan:

1. To-Do
2. Planner
3. Project for Web
4. Project Online

Project for Web tarjoaa enemmän aikataulutusominaisuuksia kuin Planner, mutta ei niin kattavasti kuin Project Online. Mitä me Sulavalla ollaan saatu aikaiseksi? Tästä lisää aivan lähitulevaisuudessa, joten pysy kuulolla.

Project For Web_06-01

Voiko AI-palvelulla rakentaa suomea ymmärtävän botin – Kuinka toimii QnA Maker?


Tekoälystä (AI, Artificial Intelligence) on puhuttu jo pitkään, mutta viime aikoina AI-palvelut ovat kehittyneet yhä helpommin hyödynnettäviksi. Yksi tällainen helppokäyttöinen AI-palvelu on Microsoftin QnA Maker, joka mahdollistaa ns. tietämystietokannan hyödyntämisen esim. Teams-keskustelussa botin kanssa. Tässä artikkelissa kerrotaan kokemuksia QnA Makerin käytöstä suomenkielisissä ympäristöissä.


Mikä QnA Maker on ja miten se toimii?

QnA Maker on Microsoftin Cognitive Services -alustaan kuuluva palvelu, jonka ideana on muuttaa tieto botiksi muutamassa minuutissa.

QnA Makerin toimintaperiaate on seuraava:

  • Otetaan johonkin asiaan liittyvät ohjeet (esim. PDF-tiedosto tai julkinen www-sivu) sekä usein kysytyt kysymykset -tyyppiset sisältölähteet lähtökohdaksi, ja syötetään nämä QnA Maker -palveluun. Mitä lähempänä lähtömateriaali on kysymys/vastaus -tyyppistä tietoa, sen parempi lopputulos.
  • Laajennetaan varsinaista tietämyskantaa chitchat -osiolla, jolloin botti osaa vastata myös aiheen vierestä, esim. sellaisiin kysymyksiin kuten ”mitä kuuluu?” tai ” kuinka monta insinööriä tarvitaan vaihtamaan lamppu?”.
  • Julkaistaan QnA Maker -tietämystietokanta Azure Bot Servicen avulla bot web-sovellukseksi.
  • Upotetaan Bot-sovellus organisaation intraan webosana tai vaikka jonkin Teams-tiimin kanavalle.
  • Aloitetaan botin käyttö joko pienellä tai isommalla porukalla ja aletaan samalla säätää tietämystietokantaa paremmaksi.

No, onko se hyvä?

On monta eri tekijää, jotka vaikuttavat käyttökokemukseen. Kaikki lähtee kuitenkin liikkeelle tietämystietokannan tasosta. Siihen tarvitaan hyviä kysymyksiä ja vielä parempia vastauksia. Lähtökohtaisesti bottihan ei tiedä mitään, kaikki tieto pitää antaa sille, ja mielellään siinä muodossa, että se toimii hyvin vastauksena kysymykseen.

Jos tietämystietokannan sisältö on huono tai riittämätön, niin on bottikin. Jos taas tietämystietokannan vastaukset ovat hyvällä mallilla, niin botin hyvyys/huonous riippuu siitä mitä kysymyksiä sille on opetettu ja miten hyvin botin tekoäly pystyy soveltamaan sille syötettyä tietoa.


Osaako se suomea?

Kyllä se osaa suomea varsin hyvin, mutta toki se voisi olla vielä parempi. Ja toivottavasti se myös kehittyy. AI-palvelut on Microsoftille vahva painopistealue, mutta toki suomen kieli ei ole kovin merkityksellinen globaalista näkökulmasta tarkasteltuna.

Käytännössä olemme huomanneet, että QnA Makerin suomen kielen ymmärrys on ihan hyvällä tasolla, mutta myös, että sillä on kompastuskiviä kuten kuinka vs. miten. Näitä kahta sanaa voi nimittäin käyttää suomen kielessä kysymyslauseissa melko helposti vaihtaen ”kuinka teen matkavarauksen?” tai ”miten teen matkavarauksen?” ilman, että merkitys muuttuu. Nykyiselle QnA Maker -versiolle ”kuinka” ja ”miten” ovat selvästi eri sanoja. Jonkunlainen pelastus löytyy siitä, että yhtä vastausta kohti voi antaa useita kysymyksiä, mutta tämä puolestaan vaatii manuaalista työtä, mitä pyrimme välttämään.

Eli täydellinen se ei ole, mutta varsin hyvä.


Kuulostaa hyvältä, miten pääsen eteenpäin?

Helposti! Käy tutustumassa QnA Maker -palveluun tai pyydä esittelyä Sulavalta. Olemme rakentaneet asiakaspalvelutilanteisiin sopivia botteja, jotka voidaan upottaa asiakkaan intranettiin tai lisätä keskustelukumppaneiksi Microsoft Teamsiin. Vaikkapa Office 365 käyttöä voidaankin oheistaa tavallisten ohjeiden ja videoiden lisäksi botin avulla.

Olen puhumassa Hyvät, Pahat ja Rumat -seminaarissa 28.11. otsikolla Botti asiakaspalvelussa – mitä voimme automatisoida ja voiko tekoäly auttaa meitä siinä? Esityksessä perehdytään Microsoftin QnA Makeriin käytännönläheisellä näkökulmalla. Tutustu ohjelmaan

Olli on Microsoft MVP (Most Valuable Professional), MCM (Microsoft Certified Master) ja MCT (Microsoft Certified Trainer). Hän on Office 365- ja SharePoint-syväosaaja, joka organisoi Office 365 ja SharePoint User Group Finland-tapahtumia.

Kuinka monta automatisoitujen prosessien osaajaa tarvitaan vaihtamaan lamppu?

Ei yhtään, M365 Power Platform vaihtaa sen heidän puolestaan.

Liiketoimintaprosessit ovat yhtä vanha asia kuin liiketoiminta itse. Vielä eilen se tarkoitti pitkälti papereiden pyörittämistä tai sähköpostien lentelyä, toissapäivänä ihan fyysistä kävelyä huoneesta toiseen paperinivaska kourassa. ”Lue tämä, allekirjoita ja palauta pöydälleni huomiseen mennessä.” Tuttu juttu, eikö?

Vaikka käveleminen on terveellistä myös työpäivän aikana, säästetään se mieltä ylentävämpään toimintaan kuin papereiden kärräämiseen. Jätetään tiedon siirtely henkilöltä toiselle ja paikasta toiseen automatisoitujen prosessien huoleksi.

Automatisoitu prosessi ei tarkoita, ettei minun enää tarvitse tehdä mitään, vaan, että työaikaani vapautuu epäolennaisesta olennaiseen. Voin keskittyä itse asiaan ja jättää prosessista huolehtimisen automatisoidulle järjestelmälle, joka tietää, minne tiedon kuuluu seuraavaksi kulkea, sillä se itsessään on prosessikaavio.

”Kuka meillä huolehtii näistä [lisää aihe tähän] -asioista?”
”Kenen kuuluu hyväksyä tällainen artikkeli/dokumentti/anomus?”
”Missä täällä intrassa kerrotaan, kuka tästäkin vastaa?”

Kuinka paljon meillä tietotyöläisillä kuluukaan aikaa, kun etsimme tietoa sellaisesta, minkä automatisoitu prosessi voisi tietää puolestamme! Kuinka paljon energiaa menee siihen, että selvitämme, minne tieto tulee tallentaa, minne pyyntö pitää ohjata tai miten prosessin tulee edetä! Miten paljon tietoa jää matkan varrelle, kun ei ole sopivaa kanavaa!

Tiedon kerääminen ja käsitteleminen vaivattomaksi

Lähdetään kierrokselle kuvitteelliseen sateenvarjoja myyvään yritykseen. Aloitetaan myymälästä, missä myyjä keskustelee asiakkaan kanssa sopivasta varjosta.

  • Myyjä ottaa varjon ja esittelee sen ominaisuuksia asiakkaalle, kun avausnuppi jää jumiin. ”Hmm, ei sen noin pitäisi tehdä”, mumisee myyjä ja ottaa toisen. Siinäkin jää nuppi jumiin, jolloin myyjä toteaa asiakkaalle, että taitaa tässä erässä olla jotakin vikaa, katsotaanpa toista mallia.
  • Asiakkaan lähdettyä myyjä noukkii yhden viallisista varjoista ja ottaa siitä kännykällä kuvan. Hetken mietittyään hän lähettää kuvan WhatsApp-ryhmään kysyen: ”Oletteko muut huomanneet tässä varjossa ongelmaa? Nuppi jää jumiin. Mihin tämä pitäisi ilmoittaa?” Hetken päästä myymäläpäällikkö vastaa: ”Hoidan tuon eteenpäin.”
  • Seuraavalla viikolla myymäläpäälliköllä on viimein aikaa täytellä Exceliin tietoja viallisista varjoista. Hän selaa WhatsApp-viestejä etsien kuvaa nähdäkseen, mikä varjomalli oli. Kuvasta ei saa selvää, joten hän laittaa viestiä myyjälle. Myyjä on kuitenkin vapaapäivällä, joten homma jää kesken.
  • Kun lopulta viallinen varjoerä on kirjattu Exceliin, myymäläpäällikkö lähettää Excelin myyntijohtajalle, joka toteaa, ettei homma oikeastaan ole hänen ollenkaan. Myyntijohtaja lähettää Excelin eteenpäin tuotevastaavalle. Tuotevastaava alkaa selvittää asiaa ja vetää lopulta viallisen sarjan myymälöistä. Excel-lomake hautautuu hänen tiedostoihinsa.
  • Eräänä päivänä yrityksen talous- ja toimitusjohtaja haluavat tietää, kuinka usein yrityksessä tapahtuu takaisinvetoja ja reklamaatioita. He lähettävät pyynnön tuotepäällikölle, joka alkaa kysellä tuotevastaavilta tietoja. Tuotevastaavat kaivavat arkistojaan ja saavat aikaan jonkinlaisen Excel-raportin, ”tästä saattaa puuttua jotain”, ja tuotepäällikkö tekee siitä pivot-raportin, jonka esittää johtoryhmälle. Johtoryhmä pyytää saada raportin, joten tuotepäällikkö lähettää sen jokaiselle.
  • Seuraavalla viikolla raporttiin tulee korjaus, jonkun tuotevastaavan löydettyä vielä pari reklamaatiota. Tuotepäällikkö lähettää kaikille uuden raportin, joka hukkuu sähköpostimereen. Vain kolmannes ryhmästä näkee uuden raportin.

Kuinka monessa kohti irvistit?

Kutsutaanpa paikalle liiketoimintaprosessien automatisointiin erikoistunut asiantuntija. Kysytään, miten tuon voisi hoitaa siten, että tieto lähtee ajallaan ja helposti, ei huku matkalle ja niin, että raportitkin ovat aina ajantasaiset ja löydettävissä. Asiantuntija ehdottaa seuraavaa:


  • Myyjä huomaa viallisen tuotteen tai asiakas tekee reklamaation. Myyjä kirjaa tämän saman tien tuotteen tuotenumeron kera Micorosoft Forms -lomakkeelle ja painaa Lähetä-nappia.
  • Myymäläpäällikkö saa Flown lähettämän viestin, että hänen vastuualueellaan on tehty reklamaatio, käy tarkistamassa lomakkeen tiedot ja vahvistaa tai peruuttaa reklamaation painamalla sähköpostiviestin Hyväksy tai Hylkää -nappia.


  • Tuoteryhmä saa Teamsiinsa ilmoituksen sekä Planner-tehtävän uudesta reklamaatiosta, joka on kirjattu myös tiimisivustolla olevaan SharePoint-luetteloon. Tuoteryhmä tarkistaa reklamaation, tekee tarvittavat toimet ja kirjaa listalomakkeelle tehdyt toimenpiteet sekä mahdolliset kustannukset, joita aiheutui.
  • Listalle kertyvät tiedot ajetaan säännöllisesti Flow-työnkulun avulla Power BI -raportiksi, joka on katsottavissa intranet-sivulla.

Työ helpottuu niin myymälässä kuin tuoteryhmässäkin, ja johto saa tarvitsemansa tiedon aina lähes reaaliaikaisena ellei peräti reaaliaikaisena – ratkaisusta riippuen – avaamalla intran raporttisivun. Maailma pelastuu, ilmastonmuutos loppuu ja pingviinit oppivat lentämään!

No ei aivan, mutta aikaa vapautuu siihen, mihin sitä kuuluu käyttää. Tieto on saatavilla ja relevanttia. Epätietoisuus toimintatavoista vaihtuu tietoisuuteen. Kahvihuoneessa ei kuulu ihan niin monta sarkastista huokausta, että ”tee työtä jolla on tarkoitus”, kun oikeasti voi keskittyä siihen, millä on tarkoitus.

Microsoft 365 tarjoilee kattavan valikoiman moderneja työkaluja, joilla työelämää voi helpottaa automatisoimalla prosesseja. On SharePoint listoineen ja listalomakkeineen ja dokumenttikirjastoineen. On PowerApps, jolla voi muokata edellä mainittuja lomakkeita tai rakentaa kokonaan uusia sovelluksia tiedon keräämiseen ja miksei vaikka työn joidenkin osien pelillistämiseen. On Forms, jolla on helppo kerätä tietoa tarvitsematta osata muuta kuin luoda lomake ja kysymykset. On Flow, jolla voi rakentaa työnkulkuja viemään edellä mainituilla keinoilla kerättyä tietoa tarvittaviin suuntiin – hyväksyttäväksi, säilöttäväksi, tehtäviksi, raportoitavaksi. Ja viimein, muttei vähäisimmin suinkaan, on Power BI, jolla tiedon raportoinnin voi viedä sille ”nextille levelille”.

Jos kiinnostuit ja haluat tietää lisää, tule kurssillemme oppimaan liiketoimintaprosessien automatisointia Microsoft 365 -työkalujen avulla!

Sanna on pitkän linjan Microsoft-osaaja ja taustaltaan kouluttaja. Viime vuosina hän on ollut mukana lukuisissa asiakasprojekteissa konsulttina ja kouluttajana osaamisalueinaan SharePoint, Office 365 ja Dynamics 365.

What you need to know about Microsoft Teams Shifts

Shifts is a fairly new feature within Microsoft Teams; although it must feel very familiar to those who have previously used Microsoft StaffHub which is retiring this October. Shifts replaces StaffHub, and just like its predecessor, Shifts is targeted for first-line workers and their managers. In practice, Shifts can be used by, for example, hospital staff, factory workers, truck drivers, IT support or any kind of customer service personnel; basically whenever scheduling work shifts is required:

  • There are long opening hours → several shifts per day are required, or
  • The employees have a flexible work description → not every day consists of the same tasks.

Even though the feature has been a part of Teams for a while now, not that many have actually used it or know much about it. And that is exactly why I decided to write this blog post! Hopefully you’ll learn a lot, and do leave a comment if any questions arise which currently don’t get answered.

Get your Shifts together!

First things first: How do we get to Shifts? First-line workers will see Shifts immediately in Teams among the pinned apps on the left-hand side. Others will find it under the three dots by default.

Teams Shifts location

To make Shifts visible to users immediately, a Teams admin can add them to the FirstLineWorker app policy either via PowerShell or by going to the Microsoft Teams admin center, expanding Teams apps, selecting Setup policies, and adding members to the app policy. Alternatively, the admin can pin the Shifts app for other types of employees as well by adding Shifts to the Global (Org-wide default) app setup policy.

Shifts is also available through the Teams mobile app. There you can find it under More apps. The GUI is simple to use by the workers, which is great. Managers, however, require the desktop view when planning future schedules.

Only one schedule per team

The Shifts feature is always tied to a team in Teams. Every team in Teams can have one schedule in Shifts. The team owners are the managers in Shifts, and they can create schedules to be shared with the members of the team. Note that guests can’t use Shifts at least for the time being.

When you click on the Shifts icon, three things can happen:

  • If you are an owner of at least one team, but none of those yet have a Shifts schedule, you are presented with an option to create a schedule for one of the teams you own.
  • If you are not an owner in any team, and none of the teams you are a member of have a Shifts schedule yet, you’ll see a message “It looks like there aren’t any team schedules for you yet”.
  • If there exists a Shifts schedule for at least one of the teams you are an owner or a member of, you’ll get directed to that schedule. If there are multiple schedules available, the most recent one you viewed is displayed. If you’ve never been to Shifts before, you’ll see a list where you can choose which team schedule you want to view as your very first Shifts schedule ever.

When you have access to at least one schedule, you can open a list of all of your schedules and switch between them via the “hamburger” menu in the top left corner of Shifts. In the same view, you can also find the New schedule link for adding Shifts schedules for your other teams. Now you’ll hopefully find your way around.

There is currently no way to delete a schedule once it has been created, so your decision will be final for the time being. According to UserVoice, the feature is planned to be implemented sometime in the future.

Get organized with scheduling groups

Even though a team can only have one schedule, a schedule can have a seemingly infinite number of groups. A simple schedule can have only one group, but if there is a need for several categories or sections, e.g., stores, groups can support that need.

When you create shifts, you always need create them for one group in the schedule. You can’t move shifts between the groups. You can copy the basic shift if you make a mistake, or want to create similar shifts for several groups in the schedule, but if you have added activities on the shift, those will not be included. However, if you copy entire schedules, then activities are also copied. More about this later.

Teams Shifts overview


Creating shifts: aim for a lot of information at a glance though colors and codes

You have the following options when creating shifts:

  • Start and end date and time of the shift
  • Is the shift open or assigned to someone?
  • If you are creating an open shift, you can choose the number of slots. This means multiple copies of the same shift are created for the same time slot, and those can be assigned to different people who are working at the same time, doing the same kind of a shift.
  • A custom label/title to be shown in the schedule view (if left empty, the shift time is shown)
  • The length of an optional unpaid break
  • A note field for any information you might want to include on the shift.
  • A list of sub-activities during the shift
  • The shift color! Decide a color for each different type of shift and you get a nice color-coded schedule for easy viewing.

Teams Shifts shift overview

For (sub)activities, you can specify:

  • A descriptive activity name
  • Start and end time of the activity
  • A two character code shown on the parent shift → helps checking when to do each subtask
  • You can also color code the different types of activities to make viewing shift contents and schedule easier.
  • Whether the activity is paid or not. For example, lunch could be added as an activity and then set as not paid.

Teams Shifts shift activities

Assigning shifts – not as straight forward as you may think

As mentioned, you can create a shift to be an open shift (to be assigned later), or create it directly for a person (this is currently the only option in the mobile app). Before you can assign a shift to a user, you need to add them to the same group where you have or are planning to create the shift.

Adding members to schedule groups is not limited to just the members of the team. If you add someone else than a team member to a schedule group, they automatically become a team member with no extra warning. Members can see all groups and published shifts in the schedule; they are not limited to only the groups they’ve been added to. If you want to reassign a shift from one person to another, you first need to move the shift to Open shifts and then reassign it.

Small nuggets you might easily miss(understand)

Just like you can add shifts, you can also allocate time off for the employees. There are several out-of-the-box reasons for time off, and you can also add your own. You only need to assign time off once per employee: the time will be blocked out for the user in all groups within the schedule. However, if the employee is a member of several teams, the booked time off will not be visible in those other teams. This makes it possible to book “time off” for an employee in one team if they temporarily move to work in another.

Managers can first work with draft versions of the shifts and then publish them for everyone to see when they are finished. This draft → publish process happens every time changes are made to the shifts. While working with a draft, managers can switch to the view that contains the most recently published versions of the shifts via the three dots next to the Share with team button, if needed. The important thing to understand here is that the whole schedule is not a draft, the individual shifts are.

The currently visible schedule view can be printed and exported as an excel file. The view can be a day, a week or a month.

I already mentioned earlier that you can copy shifts. Better than that, you can also copy entire schedules. In practice this means that you copy all shifts between certain dates to another time span within the same team schedule. You can choose to copy as many consecutive days as you want, whether it is a day, a week, a month, a year, even more or in between. The time spans can also overlap. In addition, you can specify what information you want to include and leave out. Unlike when copying individual shifts, copying schedules retains the activities, if the option is checked. I’m hoping activities will be included when copying individual shifts in the future, as it is always easier to delete activities you don’t need than recreate the ones you do.

Teams Shifts copy schedule


Other features: requests & time clocking

In addition to creating and viewing schedules, there are also a few other features you should be aware of:

  • Team members can request time-off, and team owners can either approve or deny those requests. Approved time-off is blocked for the user in the schedule automatically.
  • A team member can suggest to swap one of their shifts with one of another employee’s shifts within the same schedule. The co-worker then either denies or approves the request. The other shift doesn’t need to be in the same group, and the people involved don’t need to be members in both groups. If the swap is approved by the other employee, a manager is asked to approve the swap as the final step. If the users were not yet members in the other scheduling groups, they are now automatically added. This is not a security concern as team members can see all the scheduling groups and shifts anyway even if they are not members in the groups.
  • Team members can also simply offer one of their shifts to another team member without getting a shift in return. The approval process works the same way as for shift swaps.
    All of these features can be enabled or disabled.

There is also a new time clocking feature in Shifts that allows members to track their hours. The feature is not enabled by default, and you need to set it up for the team via schedule settings. In addition to tracking the time, you can also enable location detection, which requires the user to be at certain coordinates when starting and stopping their timer.

This feature can be used only via the mobile app. In addition to just starting and stopping the work timer, they can also start additional break timers, and manually edit the logged hours after stopping the main timer. If a person, e.g., always forgets to stop the work timer, they might prefer to track their hours completely manually which is also possible.

What’s next

If you managed to read this far, you should be aware of all the capabilities in Shifts; congratulations! Now you may be wondering: Hmm, we could definitely benefit from using shifts, but we have these business processes that would need to be integrated to it. Is that possible? Microsoft Graph offers us programmatic access to the data within Shifts, which means that we are able to create and manage schedules, groups, shifts etc. automatically. If you are interested in reading more, check out another one of my blog posts in my personal tech blog for more information!

I hope you enjoyed reading this article and learned something new! If you have any questions or comments about this topic, please let me know. Thank you for reading and until next time!

Microsoft MVP. Laura työskentelee Sulavalla sovelluskehittäjänä. Laura on työskennellyt SharePoint-ympäristöjen parissa vuodesta 2011 lähtien, keskittyen räätälöintien ja integraatioiden toteutukseen sekä ympäristöjen ylläpitoon. Nykyään Laura toteuttaa ratkaisuja myös O365- ja Azure-ympäristöihin, rakentaen monipuolisesti niin erilaisia räätälöintejä, integraatioita kuin kokonaisia web applikaatioita.

Data puhtaaksi ja hyödyllisiksi raporteiksi itsepalveluna – kuka siihen pystyy ja miten?

Jotta datasta saa esille liiketoiminnan kannalta oleellisen ja löytää hyödynnettäviä trendejä, tulee data järjestää puhtaiksi ja hyödyllisiksi raporteiksi. Data ja sen hyödyntäminen on nykyään yhä tärkeämpää kaiken kokoisessa liiketoiminnassa. Kerätystä datasta etsitään trendejä ja suhteita, jotka eivät ole vielä näkyvissä muuta kautta. Tiedon hyödyntäminen ei kuitenkaan ole aivan mutkatonta. Tyypillisiä välineitä tiedon hyödyntämiseen ovat sen jalostaminen erilaisiksi raporteiksi ja visualisoinneiksi.

Tiedon jalostaminen on usein raskasta ja aikaavievää. Perinteisessä data-analyysissä noin 80 % ajasta käytetään tiedon käsittelyyn ja vain noin 20 % sen analysointiin. Käsittelyn automatisointiin on siis selkeästi tarvetta, mutta kuitenkaan aina ei ole mahdollisuutta ostaa sitä palveluna tai ammattilaiselta. Tällöin tarvitaan avuksi itsepalvelu ETL:ää.

Lyhenne ETL tulee sanoista extract, transform ja load eli hae, muokkaa ja lataa. Itsepalvelu (engl. self service) puolestaan viittaa siihen, ettei tiedon käsittelyyn tarvita ulkopuolista palveluntarjoajaa, eikä välttämättä edes omaa IT-osastoa, vaan se voidaan suorittaa itse. Tähän tarpeeseen tarjoaa Microsoft myös työkalun.

Microsoftin Power BI ja Excel sisältävät molemmat ilmaisen Power Query -editorin, jonka avulla voidaan toteuttaa yksinkertaisesti tiedon noutoa, muokkausta ja sen latausta erilaisiin kyselyihin. Kerran tehtyä kyselyä voidaan hyödyntää myös jatkossa, kunhan tiedon rakenne tai sen sijainti eivät muutu. Tekemällä kerralla kunnollinen kysely voidaan sitä hyödyntää pitkään. Ja säästynyt aika voidaan käyttää tiedon analysointiin.

power query

Kerran tehtyjä Power Query -kyselyjä voidaan hyödyntää sekä Excelissä että Power BI:ssa, sillä ne muokkaavat lähtötiedon paremmin jäsenneltyyn ja hyödynnettävämpään muotoon. Kyse on siitä, että kyselyssä ladataan data valikoidusta lähteestä, kuten verkosta, tietokannasta tai koneen kansiosta, puhdistetaan data loogisesti järkeväksi kokonaisuudeksi ja lopulta ladataan sovellukseen jatkotyöskentelyä ja esittämistä varten.

Lopputuloksena on parhaimmillaan kerran tehty kysely, jota voidaan hyödyntää useita vuosia ilman, että siihen tulevaa dataa tarvitsee käsitellä uudelleen. Ihan näin helppoa ja automaattista se ei tietenkään ole, vaan lähtödatojen muokkaaminen haluttuun muotoon vaatii jonkin verran harjaannusta. Tule siis mukaan webinaariimme 22.8 klo 14-14.30 tutustumaan datan käsittelemiseen hyödynnettäväksi kyselyksi!

Samasta aiheesta järjestetään lisäksi Heidi Enhon upea yhden päivän koulutus Power Query -kyselyt. Kurssin tiedot ja järjestämisajankohdat löytyvät Sulavan koulutuskalenterista.

Juha-Pekka Finnilä
Junior Consultant. Sulavalla tulen erikoistumaan erityisesti O365-koulutuksiin loppukäyttäjän näkökulmasta sekä siihen liittyvään työympäristön ja -kulttuurin muutoksiin. Sähköposti: