Quantcast
Channel: Mavention
Viewing all 715 articles
Browse latest View live

Bulk restore items from the SharePoint recycle bin

$
0
0

When writing the blog https://www.mavention.nl/blogs-cat/paging-through-sharepoint-recycle-bin/ we ended with the conclusion that you can restore items in a recycle bin when the item limit threshold is exceeded. The solution provided required that the restore would take place as the user who deleted the items.

Before we executed the script on the customers production tenant, we did multiple successful tests on a development tenant. We did however not hit the threshold limit in there, we only tested the different scenarios with the accounts.

Before running the actual restore, we did test successfully a restore of an item removed by one of our own accounts. The problems occurred when we run the script with the user who had removed all items. Against our expectations we again where hit with threshold errors.

Item count in the recycle bin

I mentioned that the recycle bin did not show a count of items when it was exceeding the threshold. This turned out to not be the case. The counter only shows the items that you yourself removed. The user that removed the files we needed to restore had removed just over 110.000 items.

Working scenario without hitting the threshold

To verify the script, we created a temporary library, added 3 files and directly removed them. After this action the recycle bin had at least 110.003 items. We run the script with the paging from the previous blog article. After the script had finished, we had our 3 files back in the library. A second test had us adding and removing 3 items to the document library where all files were deleted from. This library contained near 120.000 items. Running the script was successful and we had our 3 files back.

Now it was time to contact the user and run the script to restore their approximately 110.000 removed items. Unfortunately, we received threshold errors on restoring the very first item.

Due to our test scenario’s we could conclude that the total amount of items in either the document library and the recycle bin where not the issue. On restoring, the number of items deleted by that specific user has an impact on the thresholds.

Working scenario when hitting the threshold

As we did not want to manually restore over 110.000 items, with 200 items per page if you would use the classic UI, we set out to search for another solution. As mentioned in the previous blog post, restoring items from the recycle bin itself works perfectly. If you have enough permissions, you can also restore items for other users from here.

As with figuring out how paging worked the developer tools came to the rescue here. We opened the developer tools in the modern UI. From here we selected a couple of items and hit the restore button. The network tab showed that the REST endpoint “site/RecycleBin/RestoreByIds” was used. In the body the ids of the items where passed on as an array.

Show me the code

We adapted our existing script that had the code to page through the recycle bin using CSOM and PowerShell. With that as a base we extended the script to use REST to restore the items. With some recursive functions we retrieved batches of 50 items to restore. We changed the code to only retrieve the ids of the items that needed to be restored. This gave us an array of 50 items at a time.
The first step to get it working was retrieving an authentication cookie to call the REST endpoint, we can retrieve that from the CSOM client context that we had to page through the recyle bin

$contextCredentials = $script:clientContext.Credentials
$authenticationCookies = $contextCredentials.GetAuthenticationCookie($script:fullSiteUrl, $true)

To make the requests via PowerShell we created a web request session to hold the cookies:

$webSession = New-Object Microsoft.PowerShell.Commands.WebRequestSession
$webSession.Cookies.SetCookies($script:fullSiteUrl, $authenticationCookies)
$webSession.Headers.Add("Accept", "application/json;odata=verbose")

The next step we needed to have was a digest token, so the first call to make is one to the contextinfo endpoint, retrieve the digest token and add that to the headers of the websession

$response = Invoke-WebRequest -Uri "$($script:fullSiteUrl)/_api/contextinfo" -Method Post -WebSession $webSession
$responseJson = ConvertFrom-Json $response
$formDigest = $responseJson.d.GetContextWebInformation.FormDigestValue
$webSession.Headers.Add("X-RequestDigest", $formDigest);

This gave us all necessary items to perform the restore. We build a websession capable of authenticating the request and we had a collection of 50 items to restore. All we now need to do is call the RestoreByIds endpoint on the sites RecycleBin.

$url = "$($script:fullSiteUrl)/_api/site/RecycleBin/RestoreByIds"
$restoreCollection = ConvertTo-Json $script:itemsToRestore
$restoreCallContent = '{ "ids": ' + $restoreCollection + ' }'
$response = Invoke-WebRequest -Uri $url -Method Post -WebSession $webSession -Body $restoreCallContent -ContentType "application/json"

Conclusion

Restoring an item from the recycle bin in SharePoint can be done in several ways. Restoring items for a user that removed items far beyond the list item thresholds proves to be a challenge. Most documented endpoints will someway present you a threshold exceeded exception. Using a combination of techniques, in this case CSOM, REST and PowerShell, will save you a lot of time clicking through thousands of pages to restore all items.

The post Bulk restore items from the SharePoint recycle bin appeared first on Mavention.


Eternal Flow: How to get around the 30 day runtime limit!

$
0
0

One of the most common gripes of flow is its limited runtime. A Flow may only be active for 30 days. After that the flow will simply stop and register as time-out. There are a few ways to get around this issue. You could for example:

These methods got me out of tight spots before. But alas, this doesn’t always work. If you have a Flow with lots of parallel paths, it’s hard to chop your Flow up.  Isn’t there any way to run the flow indefinitely? YES, yes there is (kinda).

Put your Flow in a Loop with HTTP requests

Eternal Flow

What we see in the example above are 2 separate Flows.

FLOW 1: Starting Flow

  • The 1st trigger goes off when an item is created.
  • It then gets the item ID of the item that is created and sends a http request to our Main Flow

FLOW 2: Main Flow

  • This flow receives the http request and starts the Flow with the Item ID given by the http request
  • On one parallel we put a delay of 29 days. After 29 days re-trigger the Flow via the same sort of http request we used in FLOW 1, and Stop the current Flow.
  • On the other parallel track we put our regular flow

There is one BIG Caveat!!! Everytime we do something, we need to check if this has been done before. If we did It before, we can skip this step. If we didn’t we can perform our action and log that we did so. These are 2 extra actions per action, so your Flow will increase in size considerably.

About HTTP Requests

 

http request

Another thing to consider is that as of 2019 http actions in Flow are not in the standard Licence anymore. The owner of the flow has to have a P1 licence to run http actions.

But, Yes…. Following these steps you too can have your eternal Flow!

The post Eternal Flow: How to get around the 30 day runtime limit! appeared first on Mavention.

Top 10 Flow Best Practices: Samenvatting and Slide-Deck Diwug presentatie

$
0
0

Donderdag 21 februari heb ik gepresenteerd op de Diwug met als onderwerp (you guessed it) Flow. Het was een gave ervaring om kennis die ik de afgelopen maanden heb opgedaan aan deze leergierige groep te vertellen. De Slide-Deck kun je uiteraard downloaden.

Diwug

Hierbij nog wat punten die me tijdens de sessie en in de SharePint daarna opvielen.

Recurrence Flow

Het gebruik van de recurrence Flow in het gebruik voor Document Lifecycle Management was voor veel bezoekers een eye-opener. Deze gebruikte de recurrence Flow wel, maar veelal alleen maar om berichten en notificaties te sturen en niet om hier nog uitgebreide Actions op te doen. Dit was voor veel gebruikers een mooie toevoeging.

Meer over de Recurrence Flow hier.

Gedeelde Flow-Runs

Er kwam vanuit het publiek nog een vraag hoe het zat met Flow-Runs. Flow Runs worden verdeeld onder de gebruikers. Maar geld dit ook als er een paar personen zijn met een uitgebreidere Flow licentie? Zoals het er naar uitziet worden ook deze Flow-Runs gedeeld met de rest van de organisatie.

5000 item Limits bij een Bulk-edit actie

We hebben het gehad over de 5000 loop limiet over de ‘for-each’ actie bij Bulk edits. Naar nu blijkt kun je deze actie gewoon in batches van 5000 doen.

Meer over Flow Bulk-Edits hier.

The post Top 10 Flow Best Practices: Samenvatting and Slide-Deck Diwug presentatie appeared first on Mavention.

Office 365: van hoofdpijndossier naar goed gereedschap

$
0
0

Ik schreef het al in een eerdere blog: door goed naar onze klanten te luisteren kan ik uitstekend verbindingen leggen en ons productteam daarmee voeden. Deze blog wil ik dan ook wijden aan een vraag die ik vaak van klanten krijg namelijk; “wat kunnen wij als organisatie precies met Office 365?”. We zien het vaak terugkomen dat organisaties Office 365 inzetten maar vervolgens vastlopen. Het is een prachtig product dat helaas voor veel hoofdpijn kan zorgen als men niet weet hoe je het als organisatie het best kunt gebruiken. Dat is natuurlijk niet de bedoeling. Van hoofdpijndossier naar goed gereedschap, daar gaat deze blog over.

Niet meteen klip-en-klaar

In mijn gesprekken met klanten hoor ik vaak: wij zijn overgestapt op Office 365, maar onze mensen weten niet hoe ze het effectief kunnen gebruiken. Vragen als; wanneer gebruik ik Teams? en wanneer gebruik ik SharePoint? Komen dan ook vaak terug. De stap richting Office 365 is gezet, nu moet men nog de juiste informatie kunnen vinden. Het is geen klip-en-klaar product waarin meteen duidelijk wordt wanneer zij welke tools moeten gebruiken. Daarbij komt er ook vaak nog een ICT-afdeling overheen met zaken als governance, om zo grip te houden op de zaken. Dat helpt ook niet om de gebruiker de vrijheid te geven zijn werk op de best mogelijke manier te doen. Maar hoe komt dit?

De omgekeerde wereld

In een dergelijke situatie is vaak niet aan de gebruiker gevraagd wat hij of zij nodig heeft om prettiger, efficiënter en effectiever te werken. Daar zit precies de crux. Het gaat niet om welke tool je gebruikt, het gaat erom dat je je kun focussen op je werk. Tijd en energie besteden aan welke tools je wanneer moet gebruiken en waar je wat terug kunt vinden, hoort daar niet bij. Het werk moet worden gedaan en de gemiddelde gebruiker maakt het niet uit of hij dat in Office 365, Google Apps, IBM Smart Cloud of een andere tool doet.

Anytime, anyplace, anywhere

Op een paar uitzonderingen na, is het ondenkbaar dat we ons werk nog zonder software kunnen doen. We werken overal, altijd en vanaf elk device met mensen van over de hele wereld. Dat maakt ons dus afhankelijk van ons gereedschap. En dat is dan ook precies wat software moet zijn: ons gereedschap, afgestemd op onze taak. Als dat niet lukt, schakelt men een bedrijf als Mavention in met de noodkreet: wij krijgen hier hoofdpijn van! De oplossing? Mavention Workspace.

Overzicht met Mavention Workspace

Ons productteam is ermee aan de slag gegaan met als resultaat Mavention Workspace. Dit is een product dat in één oogopslag een duidelijk overzicht geeft van al je SharePoint-sites, Office 365-groepen en Teams. Workspace zorgt voor context: je zoekt naar een bepaald kenmerk, een project, een klant, een thema en je wordt gebracht naar de workspace waar die relevante informatie staat. Het maakt niet uit waar de informatie vandaan komt, het staat duidelijk bij elkaar in één overzicht. Een nieuwe klant, een nieuw project? Maak gewoon een nieuwe omgeving aan op basis van een aantal – vooraf vastgestelde karakteristieken – en Workspace maakt de omgeving aan, zonder dat de gebruiker na hoeft te denken of dit een Team, een Group of een site moet zijn. Daarmee wordt Office 365 weer het gereedschap dat het moet zijn. Zonder hoofdpijn.

Meer weten?

Wil je meer weten over Mavention Workspace? Je bent van harte welkom voor een kop koffie of thee bij ons in de Caballero Fabriek in Den Haag. Bel even met 070 – 820 02 31 of neem contact op via het contactformulier en we regelen een afspraak!

Kasia Razniak

The post Office 365: van hoofdpijndossier naar goed gereedschap appeared first on Mavention.

Vijf kleine veranderingen met grote impact

$
0
0

Veel organisaties zijn continu bezig met verbetertrajecten om te kunnen voldoen aan de veranderende klantvraag of gewijzigde wet- en regelgeving. Deze trajecten zijn vaak IT-gedreven en complex, vragen veel inspanning van de organisatie en duren lang. Soms is een dergelijk traject echt nodig. Maar vaak kun je ook met kleine veranderingen een grote impact maken.

Tools binnen Office 365

Binnen Office 365 zijn verschillende tools beschikbaar die je als gebruiker kunt inzetten zonder tussenkomst van ICT. Denk daarbij bijvoorbeeld aan oplossingen binnen SharePoint, PowerApps en Flow. Door deze bouwstenen juist in te zetten, kun je de kwaliteit van je product of dienstverlening verbeteren of zorgen dat je meer tijd overhoudt voor andere zaken. Om je te inspireren, zetten we vijf voorbeelden op een rij.

1. Contractbeheer

Arbeidscontracten, inkoopcontracten, klantovereenkomsten. Bij elke organisatie liggen stapels contracten die gemonitord moeten worden. Door deze contracten, inclusief verloopdatum, in SharePoint te zetten, kun je een melding ontvangen zodra een contract verloopt. Je kunt het contract dan tijdig opzeggen of kunt opnieuw gaan onderhandelen. Ook kun je een overzicht genereren van al je lopende en gesloten contracten vanuit verschillende invalshoeken, zoals per type contract of contracten per leverancier.

2. Inkomende facturenstroom

Bij veel organisaties komen facturen binnen in een gedeelde mailbox, zoals facturen@ of inkoop@. Als er facturen binnenkomen kun je er met Flow voor zorgen dat die automatisch worden opgeslagen in SharePoint, met daaraan een bepaalde status gekoppeld. Vervolgens kun je het hele goedkeuringsproces voor inkomende facturen inrichten. Zo kun je voorkomen dat spookfacturen betaald worden en zorg je ervoor dat de juiste bedragen worden doorbelast.

3. Declaratie-app

Met PowerApps kun je op basis van een sjabloon een declaratie-app maken. Hiermee zorg je dat de medewerkers op een eenvoudige manier onkostendeclaraties kunnen indienen vanaf hun mobiele telefoon. Om ervoor te zorgen dat declaraties tijdig worden ingediend kun je, automatische reminders instellen, of een flow inrichten die een mail verstuurt als declaraties ontbreken.

4. Notificatie bij negatieve communicatie-Flow

In Flow kun je, ook weer gewoon op basis van een standaard sjabloon, bijhouden wanneer er negatief over je bedrijf of merk wordt getweet. De Cognitive Services Text Analytics-API controleert of een bericht negatieve sentimenten bevat. Als dat zo is, krijg je een bericht met een link naar het Twitter-bericht.

5. Indienen van vergaderstukken

Er wordt veel vergaderd in het bedrijfsleven en dat gebeurt niet altijd even efficiënt. In SharePoint kun je de documentbibliotheek zo inrichten dat vergaderstukken automatisch geordend worden per vergadering en in volgorde van de agenda. Je kunt hiervoor een proces inrichten met Flow die ervoor zorgt dat de stukken meteen worden omgezet in pdf-formaat, zodat ze daarna niet meer aangepast kunnen worden.

Continu verbeterproces inrichten

Dit zijn een paar voorbeelden van kleine verbeteringen die ervoor zorgen dat je elke dag een beetje meer tijd overhoudt voor andere zaken. Zo kun je onnodige handelingen elimineren. Maar hoe zorg je nu dat iedereen in je organisatie alert is en blijft op verbetermogelijkheden? Geef het een structurele plek in je team. Zet verbeterideeën in een planbord in Microsoft Planner. Beoordeel deze periodiek op toegevoegde waarde en haalbaarheid. Plaats de items op verschillende lijsten. Het ene idee komt op de lijst ‘backlog’, het ander op de lijst ‘sprint backlog’ en weer een ander op de lijst ‘ooit’. In planner kun je eenvoudig taken toewijzen aan collega’s en kun je de voortgang monitoren. Zo til je beetje bij beetje je teamproductiviteit naar een hoger niveau en krijg je veel meer focus in je werk.

Wil niet te veel

Mijn tip: pak niet te veel punten tegelijk op. Het risico is dat er dan niets gebeurt. Bepaal maandelijks hoeveel verbeteringen je wilt doorvoeren en evalueer steeds de doorgevoerde verbeteringen.

Meer weten?

Kun je wel een beetje hulp gebruiken bij het spotten van verbetermogelijkheden en het realiseren hiervan? Wil je dat key users getraind worden? Je bent van harte welkom voor een kop koffie of thee bij ons in de Caballero Fabriek in Den Haag. Bel even met 070 – 820 02 31 of neem contact op via het contactformulier en we regelen een afspraak!

Erik Rutters

*Definitie begrippen:

Backlog:

De backlog is een term die gebruikt wordt in Scrum. Het bestaat uit een lijst met items (User Stories) die uitgevoerd moeten worden door je team.

Sprint backlog:

De sprint backlog is een takenlijst die door het team uitgevoerd moet worden tijdens de sprint. Hier is dus al een specifieke deadline aangegeven._

The post Vijf kleine veranderingen met grote impact appeared first on Mavention.

Introduction to Azure’s Cognitive Services

$
0
0

Almost a year ago I graduated on a topic that involved Artificial Intelligence. To be more specific I created a chatbot that was able to interact with one of our products and used Microsoft’s Language Understanding Intelligent Service implemented in the Microsoft Bot Framework along with other AI-API’s provided by Azure. I noticed Azure Cognitive Services were a perfect playground to get started if you’re not experienced with AI. And obviously; if you are an AI expert these services will allow you to build some amazing AI-powered projects.

After last year’s personal AI peak I did one other project that involved an expert system. But now that I’m reading Max Tegmark’s “Life 3.0” I’m really getting exciting to use even more cognitive services.

That’s why I have decided to start a journey across the universe of Azure’s Cognitive Services and take you along with it. I will be describing the process and include practical information on how you can use the instructions/examples for your own processes.

Azure’s Cognitive Services

These resource groups within Azure keep on expanding. One of the resources I’m getting really excited about is the Custom Vision that is now in preview. However, there are so many resources. So I have made a shortened list of services I will be going to blog about. Azure categorizes all Cognitive Service resources in the following 5 groups.

The journey to Tosti Robotics

We at Mavention really like “tosti’s” which is a Dutch word for… Grilled cheese sandwich. That’s why I have decided to use this as a theme throughout the upcoming blogs about the selected Cognitive Services. My fictional company “Tosti Intelligence & Co” will be a web app that is going to include the services. The idea is that this web app will grow over time and at the end contain most of the Cognitive Services for demo purposes.

My goal is to implement the following services which will allow “Tosti Intelligence & Co” give you the tosti information you need :-).

  • Language Understanding
  • QnA Maker
  • Text Analytics
  • Bing Entity Search
  • Bing Spell Check
  • Computer Vision
  • Speech

Are you ready for some AI adventure? Join my journey, I will publish the first chapter of this series soon.

Stay informed about new blog entries by following @Mavention on Twitter.

The post Introduction to Azure’s Cognitive Services appeared first on Mavention.

Azure Cognitives Services – How to build a simple contextual Bot

$
0
0

As announced in my previous blog post I will be writing a series on some of the Azure Cognitive Services. Today I will start off with a topic that will be the foundation for the upcoming services that will be connected to it. “NLP”, natural language processing, is the technique of understanding context and can be used with one of Azure’s services. Of course, we’ll also need something to interact with this service, hence the introduction of the Microsoft Bot Framework.

In this blog I will demonstrate:

  • How to create a LUIS app via Azure
  • How to create a simple Bot using the Microsoft Bot Framework (MBF)

Source code: https://github.com/RutgerKnijnenburg/TostiBot

Demo: http://tostibot.azurewebsites.net/

What and why is a tosti?

A quick introduction to LUIS

Microsoft offers a service called LUIS (Language Understanding Intelligent Service) that can not only comprehend what you are trying to say (with trained models) but it can also extract parameters from your context. LUIS works with a few key elements that together create a pretty advanced NLP-service. This service is available at www.luis.ai. Here you can create new apps and maintain your current ones. However, we’re going to initiate a new LUIS APP using Azure in this blog.

The key elements are utterances, entities, and intents. This is easily explained in an example sentence:

“I would like to order a pepperoni pizza (Entity -> Pizza.Type)” Intent: OrderPizza

“Where can I find a tosti company?” Intent: FindTostiCompany

“Can you tell me the route to the National Museum(Entity -> Location)?” Intent: GetRoute

An “intent” is the context of what someone is trying to say/do.

An “utterance” is an example of input that LUIS can categorize in a specific intent.

An “entity” is a parameter in the context that specifies something.

With phrase lists it is possible to add synonyms to commonly used keywords in your utterances. This can help you train a model quicker and reduces the amount of repetitive utterances.

An example of a filled in phrase list in LUIS.ai

Create a simple Bot

One of many ways NLP can be used is via a Bot. Microsoft really improved their Microsoft Bot Framework last year. Version 4 has been published and I must say, it’s better than ever.

Create a new Bot App in Azure by: “Create a resource” -> “AI + Machine Learning” -> “Web App Bot”.

Again fill in all input fields. Be sure to set the pricing tier to F0 for development purposes. 10.000 messages are more than enough to get going. Azure Storage is necessary for logging. Insights can be really (really!!!) useful when debugging the production code.

Navigating to the selected resource group four new resources have been added (Web App Bot, App Service, Insights and Storage). Selecting the Web App Bot will show the Web App dashboard at which the Web Bot is configured. It is possible to already talk to the bot, as it just created a LUIS App for you.

 

Create a LUIS App

Creating a LUIS service in Azure

NOTE: This step is optional. A LUIS Service resource is only necessary if you use all of the free quotas of the LUIS starters key that is enabled on creation.

Create a resource -> AI + Machine Learning -> Language understanding.

In the Azure environment navigate to “Create a Resource” -> “AI + Machine Learning” -> “Language Understanding”.

In the newly opened window choose F0 (you will get 10K calls free per month), location and select a location and resource group.

Once the form has been submitted it may take a moment for Azure to complete the request. Once it’s done head on down to the selected resource group. Here you will find a new resource of type “Cognitive Services”.

Maintain and develop the LUIS model

Navigate to www.luis.ai.

Now it’s time to add some content to the LUIS service. Create some intents, add some utterances and set some entities. Don’t forget to train your model once you’re happy with the content. It’s good practice not to add that many utterances to each intent. And an intent should always be demarcated. An intent should never do two things, neither should the same utterance be in more than 1 intent. Entities can be used in any intent of course. When LUIS is initiated after creation it already defines four intents. These can be used as fallback intents and to get started.

Now it’s time to train the LUIS service by pressing test. Entering different ways of saying the same thing can really help the LUIS app categorize unique utterances. Utterances of which the service is not sure of can be found in “Review endpoint utterances” once the app has been published and used. This is a good way to maintain the service and see how users are using the NLP service.

In the TostiBot LUIS App I’m using a hierarchy entity. A tosti has some key elements like topping, bread type, duration and so forth. It’s a good idea to break down these entities in smaller dimensions. This allows me, for example, to extract entities like Ingredients. Meat or Ingredients.Bread.

An example of a hierarchy entity in LUIS.ai

Develop the Bot

Alright. It’s time to get devving. Testing the bot in the web chat option already kind of gave it away. There is a fully functioning code behind this newly created bot. Browsing to the Build page it’s possible to download the source code of the bot. This includes a publish profile for easy publish access.

To download the source code head to the bot's dashboard an select Download bot source code.

It’s possible to emulate conversations using the Bot Framework Emulator (V4). See the documentation for more details. A quick scan through the code tells us a few things.

  • Each intent is basically a “dialog” in code
  • Each dialog that needs to be used should be added to a stack (Dialogs.Add(new GreetingDialog(_greetingStateAccessor, loggerFactory));
  • Each dialog that requires data transfer (parameters, info etc) should have a StateAccessor (Sounds like the React way to do it)
  • OnTurnAsync in the BasicBot.cs is used for switching to the right dialogs

I believe it’s good practice to use an UpdateStateAccessor for each StateAccessor to extract LUIS Entities and store it in a state. In terms of High Cohesion Low Coupling, it’s better to do this in a controller than pass all LUIS objects to a dialog.

Take a look at the source code of Tosti Bot. This source code includes the default greeting dialog which prompts user input. It also shows an example of how to use Adaptive Cards and carousel images.

I hope you enjoyed this first blog of the Tostibot adventure. Next up: QnA Maker.

Be sure to follow @Mavention on Twitter to get updates on more interesting Blogs.

The post Azure Cognitives Services – How to build a simple contextual Bot appeared first on Mavention.

Triggered: About Flows and Migration Woes (It’s not a bug, it’s a feature)

$
0
0

I am currently migrating a Document Management business-app from on-prem with Nintex to O365 with Flow. The way i went about it is I first made the Business app in online with some dummy-data. After the  business-app was done, I could migrate all the content to SharePoint online.

So what i did was:

  1. Turned the Flow off, so the on create trigger doesn’t go off
  2. migrated the content
  3. Turned the Flow on

No what will happen (GRRRR) is that the flow will still trigger on all those create events. Luckily i just tested a small batch and all mails and notifications were addressed to me. But yeah, this could have gone terribly wrong.

Microsofts opinion about this? It’s not a bug, it’s a feature!

This is not a bug but an important feature to avoid data loss — this allows you to temporarily disable a flow, make corrections, and then enable the flow, running it over all of the events that happened in the interim. Without this functionality all of those business critical events would be lost. https://powerusers.microsoft.com/t5/Flow-Ideas/Turning-off-Flow-and-turning-back-on-still-create-new-instances/idi-p/71672

So how would you prevent this from happening? you could do this by:

  1. Export the Flow with the on-create trigger
  2. Delete the Flow with the on-create trigger
  3. Migrate the content
  4. Import the Flow

This is far from ideal, but really something you should do when migrating. You can tell Microsoft to implement a solution for this here: https://powerusers.microsoft.com/t5/Flow-Ideas/Turning-off-Flow-and-turning-back-on-still-create-new-instances/idi-p/71672

The post Triggered: About Flows and Migration Woes (It’s not a bug, it’s a feature) appeared first on Mavention.


Webinar: ‘Verhoog de productiviteit van je organisatie met behulp van Office 365 door de inzet van gamification‘

$
0
0

Sluit beter aan op de belevingswereld van de gebruiker om slimmer samen te werken mét (meer & beter) gebruik van Office 365. Dat kan door het gebruik van businessscenario’s en schaalbaar met gamification 

Jouw organisatie gebruikt al Microsoft Office 365, maar je weet ook dat het nog veel meer voor jullie kan betekenen… Het is tijd om er maximaal gebruik van te maken!


Wat is de inhoud van deze webinar?

In deze webinar geven we praktische tips die direct toepasbaar zijn. Door businessscenario´s te definiëren, brengen we in kaart hoe je uitdagingen aanpakt en hoe teams hun doelen kunnen bereiken met de inzet van Office 365.

Met businessscenario’s bieden we die richting en tegelijkertijd de concrete handvatten voor medewerkers om met Office 365 aan de slag te gaan. Met gamification zorg je ervoor dan medewerkers op een leuke en laagdrempelige wijze dit kunnen doen. 


Na deze webinar kun je:

  • Identificeren welke ‘Standaard’ businessscenario’s jij kunt verbeteren met Office 365
  • Business scenario’s prioriteren en succes criteria opstellen.
  • De toegevoegde waarde inzien van gamification in een adoptieproces

Aanmelden kan tot 1 dag voor aanvang.

09

 

 

The post Webinar: ‘Verhoog de productiviteit van je organisatie met behulp van Office 365 door de inzet van gamification‘ appeared first on Mavention.

Webinar: Overzicht met Mavention Workspace

$
0
0

Webinar Mavention Workspace

Office 365 is een zegen met talloze mogelijkheden. Helaas roept het hierdoor ook ontzettend veel vragen op.

Een van die vragen is: ‘hoe weet ik of ik een Team of een Group heb aangemaakt?‘ Moet je hier als gebruiker echt over nadenken? Je wilt toch gewoon je werk doen en je tijd in taken investeren in plaats van het begrijpen van het gereedschap waar je mee werkt?

Erik Rutters en Robert Jaakke koppelen een aantal uitdagingen uit de markt terug en bieden jullie inspiratie voor een mogelijke oplossing in een demo.

Onderwerp webinar:
Overzicht met Mavention Workspace

Datum & tijd:
16 april 12:00 uur tot 12:30 uur

09

The post Webinar: Overzicht met Mavention Workspace appeared first on Mavention.

Verhoog de adoptiegraad met gamification

$
0
0

Mijn collega Erik Rutters vertelde het al eerder in een van zijn blogs: wij mensen zijn gewoontedieren. Verandering kost tijd, moeite en energie. Dat geldt ook als we te maken krijgen met een nieuwe technologie of een andere manier van werken. Hoe groter de impact op het werkproces, hoe moeilijker we het vinden ons daaraan aan te passen. Pas als duidelijk is wat de verandering precies is en hoe het je gaat helpen, dan gaan we de verandering omarmen.

Goede training is essentieel

Dat proces van omarmen kun je versnellen door te zorgen voor goede training. Dat betekent niet slechts een handleiding schrijven. Een goede training kan bestaan uit een-op-een-coaching, een live of virtuele groepstraining, een webinar of een virtuele tour. Maar soms is de impact van een verandering zo groot dat er zwaarder geschut nodig is. Dan kan gamification uitkomst bieden.

Mogelijke scenario’s van verandering

Laten we eerst eens kijken welke businessscenario’s in aanmerking komen voor verbetering. Wij helpen onze klanten om mogelijke scenario’s in kaart te brengen met een eenvoudig model. Op de x-as zetten we de complexiteit, op de y-as de impact. Zo komen we tot de volgende vier scenario’s.

1 Lage impact en een lage complexiteit

Dit zijn de veranderingen die eenvoudig zijn door te voeren en waar mensen niet veel van zullen merken. Denk aan de overstap van Office op je computer naar Office Online. Het is een wijziging die niemand echt spannend zal vinden. Het levert je wat handige voordelen op, maar je wordt niet direct gigantisch veel efficiënter. Een eenvoudige (online) training, een virtuele tour of een webinar is vaak voldoende om je medewerkers deze verandering te laten omarmen.

2 Hoge impact en een lage complexiteit

Dit is het zogenaamde low hanging fruit. Deze verandering is niet moeilijk om door te voeren maar de impact is heel hoog. Iedereen zal profijt ondervinden van deze verandering. Een voorbeeld van een dergelijke verandering is het aanzetten van multifactor authenticatie. Technisch gezien is dit betrekkelijk eenvoudig, de mogelijkheid zit al standaard in Office 365. De impact op je security is echter heel hoog; de kans dat je accounts worden misbruikt neemt drastisch af. Voor deze verandering is een simpele how-to of een kort filmpje afdoende.

3 Lage impact en een hoge complexiteit

Deze veranderingen zullen niet vaak plaatsvinden. Denk aan specifiek maatwerk waar misschien 2% van de organisatie profijt van gaat hebben. Wellicht de moeite waard, maar het zal niet bovenaan de lijst staan. Wordt de verandering wel doorgevoerd, dan zullen die paar collega’s die er profijt van hebben een groepstraining of een-op-een-sessie nodig hebben. Daarnaast moet men steeds kunnen teruggrijpen op een virtuele tour of een – online – naslagwerk.

4 Hoge impact en een hoge complexiteit

Deze veranderingen vereisen een projectmatige aanpak om ze goed te organiseren. Een mooi voorbeeld hiervan hebben we onlangs meegemaakt bij een grote projectontwikkelaar. Deze klant heeft vestigingen over de hele wereld. Alle vestigingen werken met Office 365 en SharePoint, maar elk land heeft te maken met eigen werkprocessen, taalinstellingen, wetten en dergelijke. Als ergens een project afgerond wordt, moet dat netjes en consistent gedocumenteerd worden om dat op een later tijdstip te kunnen gebruiken bij het maken van nieuwe offertes. Dat was een leuke uitdaging.

Naar een uniforme manier van werken

Wij hebben voor deze projectontwikkelaar een toepassing ontwikkeld in Office 365 die dit mogelijk maakt. Door iedereen op dezelfde manier te laten werken is het nu eenvoudig om informatie klaar te zetten voor een nieuwe offerte. Door een aantal velden aan te vinken en een bepaald sjabloon te selecteren wordt nu een groot deel van de offerte met een druk op de knop gegenereerd.

Gamification als doeltreffend trainingsmiddel

Klinkt simpel maar heeft heel wat voeten in aarde gehad om dat te realiseren. In alle landen moest men anders gaan werken om uiteindelijk voor de projectontwikkelaar als geheel veel meer efficiency op te leveren. Daar was een stevige training voor nodig. Maar hoe train je 10.000 mensen? Een live training geef je aan een groep van zo’n twintig mensen. Digitaal kun je misschien 100 mensen trainen, maar de interactiviteit wordt dan wel zeer beperkt. Hier is gamification een goede strategie.

Digitaal gameplatform

The Cue heeft een Office 365 gameplatform ontwikkeld. Door diverse games leren gebruikers de echte potentie van Office 365 ervaren. Hierdoor stijgt niet alleen de effectiviteit en het plezier in het werk, maar wordt ook de adoptiegraad naar een hoger niveau getild.

Punten verzamelen en badges verdienen

Aan de hand van verschillende games worden gebruikers uitgedaagd om met elkaar missies te bereiken en om zichzelf en hun team te verbeteren. Een opdracht kan zijn: Maak een mooi nieuwsbericht, deel dat via het intranet en zorg dat het het best gelezen nieuwsbericht ever wordt. Of: Ontwerp een mooi en bruikbaar format voor meetingnotities die de hele afdeling kan gebruiken. Elke opdracht levert punten op en bij een bepaald aantal punten kunnen medewerkers badges verdienen. Dit is een heel andere manier van mensen benaderen, betrekken en activeren. Gamification triggert zoveel meer dan een handleiding alleen. Voor projecten met een hoge complexiteit en grote impact een waardevolle toevoeging.

Meer weten?

Wil je ook meer halen uit Office 365? Benieuwd of gamification een goed hulpmiddel is? Je bent van harte welkom voor een kop koffie of thee bij ons in de Caballero Fabriek in Den Haag. Bel even met 070 – 820 02 31 of neem contact op via het contactformulier en we regelen een afspraak!

 

The post Verhoog de adoptiegraad met gamification appeared first on Mavention.

Webhooks and Mavention Make

$
0
0

Introduction

In the new History overview in Mavention Make an overview of all Sites is presented. It is possible to navigate to the desired sites by clicking on the URL. By clicking on the title more information about the provisioning of the site is presented. This overview is kept up-to-date with the use of a webhook subscription. In this blog an overview of implementation of the webhook is presented. The reference implementation from Microsoft (figure 1.) has been used as a blueprint for our implementation.

Diagram describing the complete end-to-end webhook flow, including The database, the application, the SharePoint Service, the web job, the notification endpoint and the strorage queue.
Figure 1: end-to-end webhook flow.

The Webhook

Webhooks can be used to subscribe on SharePoint online lists. In our case a subscription is made (request: “_api/web/lists(‘{listId}’)/subscriptions”) on the hidden SharePoint list “DO_NOT_DELETE_SPLIST_TENANTADMIN_AGGREGATED_SITECOLLECTIONS”, which contains all SharePoint sites. When a site is altered, for instance the Hubsite association has changed or the site is deleted, an event is triggered, and SharePoint sends an HTTP POST payload to our API. Once the payload is received the API adds an item to the Azure Queue storage. To protect the webhook endpoint a custom ClientState property can be used in the body of the subscription Post request.

The web job

To sync the SharePoint list with our own overview a web job is added. The web job is scheduled to check if notifications are present in the queue and processes these notifications. Once notifications are found in the queue, the worker checks the changes made to the list since the last time the web job has been active (request: “_api/web/lists(‘{listId}’)/getchanges”), this results in a list with list ids that are changed. With this list of list ids we can retrieve these corresponding list items (request: “_api/web/lists(‘{listId}’)/items(‘{itemId}’)”), in our case representations of SharePoint sites, from the list and update our own sites list, which is present in Table storage, accordingly.

The changeToken

To make sure the web job is not processing all notifications since the subscription has been made to the SharePoint list a changetoken has been used. Once a webhook subscription is active on a SharePoint list each retrieved item from that list contains a change token property, this change token is saved in azure table storage. The next time the web job is running it collects the last change token and retrieves changes since, the changetoken in table storage is updated afterwards.

Creating your own webhook subscription

From version 5.5 onwards, webhook subscriptions are supported with Mavention Make (figure 2.). This way webhook subscriptions can be created on SharePoint lists during site provisioning. The webhook can only be placed on a list when an API with a webhook endpoint is running. Click here for more information about SharePoint webhooks. If you want to put several webhooks on a single list, each webhook must have a unique NotificationUrl. The subscription is valid for a maximum of 6 months. An update is required to extend the subscription.

<Lists>
    <List Description="Description of the list" Title="Title of the list" TemplateType="100" GetObjectBy="Default" Url="Lists/WebhookList">
        <Webhooks>
            <Webhook NotificationUrl="https://0fe2d846.ngrok.io/api/spwebhook/handlerequest" ExpirationDateTime="2019-06-27T16:17:57+00:00" ClientState="TestWebhook"></Webhook>
            <Webhook NotificationUrl="https://506c83e5.ngrok.io/api/spwebhook/handlerequest" ExpirationDateTime="2019-07-27T16:17:57+00:00" ClientState="TestWebhookTwo"></Webhook>
        </Webhooks>
    </List>
</Lists>

Figure 2: example snippit from template.

The post Webhooks and Mavention Make appeared first on Mavention.

Azure Cognitive Services – Adding knowledge to your bot with QnAMaker

$
0
0

In my previous blogpost, I created a simple chatbot using LUIS and the Microsoft Bot Framework. This demonstrates the concept of using a Natural Language Processor for a natural flow of conversation. The input from the user gets translated into an intent that can be used to perform various defined actions or responses. However, this lacks ‘intelligence’. It would take a significant amount of time to develop lots of custom answers and commands that can be triggered. Especially if their only goal is to make the chatbot seem more… human.

That’s why I’ll be adding some knowledge into this TostiBot. The main goal is to make the bot respond to common answers or remarks without the necessity to code every single mapped input and output. You can follow this guide to get started with the QnA Maker and connect its service to an existing MBF bot.

Source code 

Demo

Time for a QnA

Mapping input and output for the sole purpose of adding common phrases in a chatbot is easily done with the QnAMaker service in the Azure Cognitive Services domain. The QnAMaker service is basically a knowledge base filled with mapped entries. It even comes with lots of dummy data to make your bot look intelligent with just a few clicks. Which is exactly what I’ll be doing in this blog.
Besides the ‘dummy’-data there are more advantages of the QnAMaker Service:

  •  Ability to add documents (PDF/Excel/Docs etc) which will be auto mapped into questions and answers if it can find any
  • Choose between four kinds of chitchat data, according to the formality of your chatbot
  • Easily integrate it within an existing MBF chatbot
  • QnaMaker portal just like LUIS.ai

Creating a QnAMaker service

To create the QnA service go to the Azure portal and Create a Resource -> Search for ‘QnA Maker’ and hit Create.
As we’re used from Azure it’s possible to select a Free tier to get started with development. The Azure Search is required for the Knowledgebase that is used as storage. Again, a free tier is available.

Once you have created the resource, 5 resources have been added to the selected resource group.

Exploring the QnA Maker

When navigating to www.qnamaker.ai and logging in using the same credentials as for the Azure portal, you will be able to skip the first step of adding a knowledge base. Step 2 will require some input to connect the Knowledgebase to the existing Service. Choose a name for your knowledge base that implies its usage. It’s possible to connect multiple knowledgebases so using a naming convention could eventually be very helpful.

For the TostiBot I have added chitchat. This is a predefined mapped QnA set of commonly used entries. The TostiBot is a funny guy, so I’ve chosen the Comic set. If you don’t have access to a mapped file of your own, or an online FAQ, it’s possible to add mapped entries later on.

Adding the QnAMaker to the TostiBot

After the knowledge base is created it’s time to add the knowledge to the bot to make it look more real. If you’ve chosen a chitchat set in the previous step you can publish the service right away. The settings on the screen can be used to connect the service to the TostiBot.

So how do we do that? We head back to the TostiBot solution, enter a line of code and tadaa? Well… Almost!

First, we add the service to the .bot file. Unfortunately, we cannot do this by simply adding code. The .bot file is basically encrypted. Therefore we have to work around the encryption of the .bot file by using command line. To do this, install msbot (NPM Package).  The following command can be used in a terminal to do so (Make sure you have NodeJS installed):

npm I -g msbot

Then navigate in a terminal to the directory of the .bot file. Here enter the following command. Make sure to use the right parameters.

msbot connect qna --secret [ENDPOINT SECRET]  --name [NAME OF YOUR SERVICE ]--kbId [KNOWLEDGE BASE ID] --subscriptionKey [SUBSCRIPTION KEY] --endpointKey [ENDPOINT KEY] --hostname [HOSTNAME OF THE BOT SERVICE] --bo [.BOT FILE]

Knowledgebase ID can be found by navigating to the knowledge base in the QnAMaker portal and then inspecting the URL. Hostname is the URL of the service (typically https://yourbot-qna.azurewebsites.net). Subscription key can be found in the Keys tab of the QnAMaker service in Azure. Endpoint key and hostname are located in the Http examples of the QnAMaker Knowledgebase after publishing, or on the settings page.

One last thing, before we can do some fun stuff with the code, is adding the service programmatically. Copy paste the following code in the switch located in BotServices.cs. Also, install the Microsoft.Bot.Builder.Ai.QNA Nuget package to use the QNA SDK.

case ServiceTypes.QnA:
{
    var qna = service as QnAMakerService;
    var qnaEndpoint = new QnAMakerEndpoint()
    {
        KnowledgeBaseId = qna.KbId,
        EndpointKey = qna.EndpointKey,
        Host = qna.Hostname,
    };
    var qnaMaker = new 
QnAMaker(qnaEndpoint);
    QnAServices.Add(qna.Name, qnaMaker);
    break;
}

Something the Microsoft docs don’t tell you is to also add the following dictionary in order to add multiple QnAMaker services if you want.

public Dictionary<string, QnAMaker> QnAServices { get; } = new Dictionary<string, QnAMaker>();

When that is done the service is connected to the bot. Now it’s time to add some ‘consciousness’ if you please :D.

In the BasicBot.cs add the following line:

 public static readonly string QnAMakerKey = "QnABot";

This is purely to identify the QnA Service settings in the .bot file. By making it a read-only property we won’t make any spelling mistakes later on.
Now… The only thing I have done programmatically to add the knowledge to the bot is to catch all NoneIntents and GetTostiBotInfoIntents and send the user’s input to the QnA Service. The GetTostiBotInfoIntent is created to identify calls that could, later on, require more detailed answers. These calls will get stored in the LUIS endpoints review tab in luis.ai.

case GetTostiBotInfoIntent:
case NoneIntent:
default:
     // No intent was found, or the user requests some basic chit chat response.
     await GetQnAResult(turnContext, cancellationToken);
     break;

The code that performs the call to the QnAMaker is a simple rest function. Knowledge-based implementations of AI are pretty common and not very ‘intelligent’. But they do give quick access to mapped entries for a covered conversation.

private async Task GetQnAResult(ITurnContext turnContext, CancellationToken cancellationToken)
{
    // Get the response from the QnA Maker
    var response = await _services.QnAServices[QnAMakerKey].GetAnswersAsync(turnContext);
    if (response != null && response.Length > 0)
    {
	await turnContext.SendActivityAsync(response[0].Answer, cancellationToken: cancellationToken);
    }
    else
    {
	// No response/ Q-A combination found. Return some default text to the user.
	var msg = @"I don't know what to say... I'm just a simple Tosti Bot.";
	await turnContext.SendActivityAsync(msg, cancellationToken: cancellationToken);
    }
}

A human-like TostiBot

It took me less than an hour to get this up and running. Adding chitchat using the predefined sets of mapped entries provided by the QnAMaker is a very easy way to add a natural flow of conversation to your bot. It makes sure the bot won’t reply with ‘I don’t know what to do with that’ every time it encounters an undefined intent or utterance.
In this blog, I’ve only used the chitchat set. But of course, it’s also possible to add business intelligence. Online FAQ’s are a good way to start as they tend to know the commonly asked questions.

If you got any questions or suggestions please feel free to contact me. I’ve tried to keep this as simple as possible, but obviously, the possibilities are endless.

I hope you’ve had a good read and make sure to follow @Mavention on Twitter to keep up to date with our blogs.

The post Azure Cognitive Services – Adding knowledge to your bot with QnAMaker appeared first on Mavention.

Soepele dossiervorming dankzij Dossier Hub

$
0
0

Kasia - Mavention products

Een van de onderwerpen die vaak ter sprake komt als ik klanten spreek is dossiervorming. Het blijkt nog niet zo eenvoudig te zijn een proces rondom dossiervorming effectief in te richten met standaard SharePoint-functionaliteiten. Toch is die behoefte groot. Denk maar eens aan klachtenprocedures, onderzoeken die worden gedaan, meldingen die binnenkomen via de website of gemeentelijke aangelegenheden zoals een bezwaar tegen huurverhoging.

Snel en effectief aan de slag

Luisteren, dat kunnen wij heel goed. Dus met deze input zijn we aan de slag gegaan. Samen met een klant hebben we ons helemaal ondergedompeld in het onderwerp. Met Dossier Hub hebben zij een basis neergezet waar meerdere klanten snel en effectief mee aan de slag kunnen.

Met de kracht van Make

Dossiervorming vindt bijvoorbeeld plaats rondom een cliënt, onderwerp of case. Het gaat om het opslaan van informatie en documenten volgens een bepaald proces. Dat is tegelijkertijd ook het complexe stuk om in SharePoint Online of in een ander standaardproduct in te regelen. Elke organisatie heeft namelijk een eigen proces. Dossier Hub maakt het mogelijk om elk proces met een aantal configuratiestappen in te richten en later uit te breiden. Ook onze functionele consultants hebben zich in het onderwerp verdiept om de klant beter te kunnen begrijpen. Zo kan de vertaling van het proces naar SharePoint Online efficiënt plaatsvinden.

Alles op een centrale plek

Hoe verschillend bedrijven en processen ook zijn, een aantal dingen zien we altijd terugkomen bij dossiervorming. Het dossier kan geïnitieerd worden via verschillende kanalen. Dat kan een melding via de website zijn, maar ook een telefoontje of persoonlijk contact. Wat we regelmatig zien dat er een integratie is met LOB-applicaties zoals Dynamics 365 Business Central, AFAS of SAP. Vervolgens moeten processtappen worden doorlopen. Per stap horen er verschillende acties en gegevensuitwisseling plaats te vinden. Elke stap genereert een taak voor een of meerdere personen. Bij elke stap kunnen standaard e-mails of documenten horen. Dossier Hub bevat daarom een eenvoudige manier om documenten of e-mails te genereren. Zo borgen we dat de juiste informatie tijdig verstuurd wordt.

Persoonsonafhankelijke behandeling van dossiers

Omdat de informatie centraal beschikbaar wordt gesteld, kunnen de dossiers door de bevoegde medewerkers behandeld worden. Hierdoor hebben alle behandelaren van een dossier altijd toegang tot actuele informatie, de dossierstatus en een gepersonaliseerd dossieroverzicht. Om aan regel- en wetgeving te kunnen voldoen, wordt er ook een log bijgehouden en kunnen bewaartermijnen voor o.a. documenten worden ingesteld. Zo kan altijd teruggezocht worden wie wat wanneer heeft gedaan.

Meer weten?

Wij blijven luisteren naar de wensen van onze klanten. Wil je nu al meer weten over Dossier Hub? Dan ben je natuurlijk van harte welkom voor een kop koffie of thee bij ons in de Caballero Fabriek in Den Haag. Bel even met 070 – 820 02 31 of neem contact op via het contactformulier en we regelen een afspraak!

The post Soepele dossiervorming dankzij Dossier Hub appeared first on Mavention.

Adding links to teams in your SharePoint site

$
0
0
Creating new teams based on templates has never been easier. You can easily use existing teams as a template. One of the things I encounter often is that it makes sense to add some additional information to the SharePoint site. Luckily you can also use Site Designs and Site Scripts to enrich the provisioned SharePoint site. However, if you navigate to SharePoint you lose the Teams context. Currently, the navigation in SharePoint does not provide an option to easily switch context. So whenever you are using search for content or navigate to SharePoint itself there is no easy way to navigate back to Teams.

Site Designs and Site Scripts

If you are provisioning Teams you might already be using Site Designs and Site scripts. So you might have noticed you can use provisioning options like PnP Provisioning or Mavention Make. This helps you to enrich your SharePoint sites. When using that approach you can also enrich your navigation option with custom links. You can use these custom links to make it easier to navigate back to Teams. When you check the navigation for a out of the box Office 365 group you would see that there is a link back to the conversion part. The link looks something like the following:
https://tenant.sharepoint.com/sites/groupsite/_layouts/15/groupstatus.aspx?Target=CONVERSATIONS&Source=QuickLaunch

Adding links

You can use a similar link to navigate to other parts. For instance the calendar, notebook and files links look like this:
https://tenant.sharepoint.com/sites/groupsite/_layouts/15/groupstatus.aspx?Target=CALENDAR https://tenant.sharepoint.com/sites/groupsite/_layouts/15/groupstatus.aspx?Target=NOTEBOOK https://tenant.sharepoint.com/sites/groupsite/_layouts/15/groupstatus.aspx?Target=DOCUMENTS
And now you can also use that same link to navigate to the corresponding team:
https://tenant.sharepoint.com/sites/groupsite/_layouts/15/groupstatus.aspx?Target=TEAM
If you are using PnP Provisioning you can use Provisioning Engine Tokens for the URL:
{site}/_layouts/15/groupstatus.aspx?Target=NOTEBOOK
Adding this navigation option will help your users to find their way back to Teams with less hassle!

SharePoint Conference

If you want to learn more about provisioning options with Site Designs and Site Scripts make sure to checkout the SharePoint Conference! I will be presenting on site templates and site lifecycle management in Modern SharePoint. By applying site designs to both sites, teams and groups you will help your users find their way around. You can register using my discount code: SCHOT or go to https://www.cloudappie.nl/go/SPC/ to save $50. Originally posted at: https://www.cloudappie.nl/adding-teams-link-sharepoint-site

The post Adding links to teams in your SharePoint site appeared first on Mavention.


Grote stappen maken bij CJG Rijnmond dankzij een Designweek

$
0
0

Het Centrum voor Jeugd en Gezin (CJG) Rijnmond biedt preventieve jeugdgezondheidszorg in de regio Rijnmond. Het CJG wil er zijn voor ieder kind en zet daarom in op het vroegtijdig signaleren om eventuele problemen in een later stadium te voorkomen. Hun missie: ‘Op tijd voor ieder kind’.

Naar een flexibel basispakket

Ieder kind en iedere ouder/verzorger heeft andere behoeften aan ondersteuning en informatie. Als het goed gaat met een kind, is er minder behoefte aan je diensten, gaat het slecht, dan hebben kinderen wat meer ondersteuning nodig. Het CJG wil daarom toewerken naar een flexibel basispakket. Dit betekent dat de dienstverlening niet voor iedereen gelijk is, maar passend is bij ieders behoefte.

Ondersteuning bij CJG NEXT

De afgelopen maanden was ik gedetacheerd bij CJG Rijnmond om ze bij dit programma – genaamd CJG NEXT – te ondersteunen. Binnen dit programma werken de 51 verschillende vestigingen van CJG Rijnmond samen. Dat betekent dat collega’s van Hoek van Holland tot Ridderkerk en van Rockanje tot Nieuwerkerk aan den IJssel regelmatig samen moesten komen in Rotterdam om over bepaalde zaken aangaande dit programma na te denken. Dat kost natuurlijk heel veel tijd en dat gaat ten koste van het project.

Designweek

Dat was een van de vraagstukken: hoe kunnen we heel effectief met deze groep mensen aan de slag gaan? Zo is het idee voor een Designweek ontstaan: in een sprint van een week van ideeën naar concrete plannen. Met drie multidisciplinaire adviesteams – bestaand uit bijvoorbeeld uit een jeugdverpleegkundige, een jeugdarts, een assistent en iemand van de staf en gericht op de doelgroepen 0-12 maanden, 1-4 jaar en 4-18 jaar – zijn we aan de slag gegaan.

Van breed naar smal

Eerst zijn we heel breed gaan denken, om los te komen van ‘wat doen we nu’. Daarna zijn we stap voor stap steeds dichterbij de kernvraag gekomen: ‘wat willen we onze klanten in de toekomst gaan bieden?’ Het mooie van zo’n Designweek is dat je heel erg gefocust met elkaar bezig bent. Dat is tegelijkertijd heel pittig; zo’n groepsproces kost veel energie. Steeds moet je weer keuzes maken, steeds moet je weer nadenken over wat nu echt het belangrijkst is.

Vijftien ‘love baby’s’ pitchen

Per adviesteam hebben we vijf ‘love baby’s’ bedacht; vijf ideeën die we sowieso uit wilden werken. Aan de hand van een soort productposter zijn we de belangrijkste zaken gaan noteren: wat zijn de voordelen, wat zijn de nadelen, wat heb je intern nodig om dit te realiseren en wat extern, wat zijn kortetermijn- en wat langetermijnacties? Het doel was om aan het einde van deze week onze ideeën te pitchen aan de stuurgroep van het programma, om ons advies uit te brengen en te laten zien hoe we dit in de praktijk denken te gaan brengen.

Heel CJG Rijnmond betrekken met Yammer

Dit deden we met een groepje van zo’n 25 mannen en vrouwen. We wilden natuurlijk ook de overige 700 CJG-professionals betrekken bij het project. CJG heeft weliswaar een intranet waarop het nieuws gedeeld wordt. Maar om op een laagdrempeliger manier voortdurend in contact te staan met collega’s hebben we Yammer ingezet. Via het zogenaamde ‘All Company’-pagina van Yammer hebben we mensen opgeroepen de pagina ‘CJG Next’ te volgen. Op dat kanaal hebben we elke dag filmpjes, foto’s en berichten gedeeld van wat we aan het doen waren. Daar werd door andere collega’s leuk op gereageerd.

Een makkelijker groepsproces dankzij SharePoint

Om het groepsproces onderling te vergemakkelijken heb ik een SharePoint-site aangemaakt. Alle deelnemers kregen toegang tot die site, en iedereen had de beschikking over dezelfde templates zodat alle adviezen uiteindelijk eenzelfde format hebben. Dan merk ik ook wel dat wat ik supernormaal vind, nog niet voor iedereen dagelijkse praktijk is: online samenwerken, versiebeheer, offline werken en dat zaken later automatisch gesynchroniseerd worden. Allemaal dingen die helpen het proces makkelijker en soepeler te laten verlopen.

Best trots

Inmiddels zijn de concrete plannen gepitcht aan de stuurgroep. Hoe we de plannen in de praktijk gaan uitvoeren, dat is een volgende stap. Deze manier van werken was echt nieuw, voor CJG maar ook voor andere jeugdzorgorganisaties. Vooraf vond ik het dan ook best spannend; hoe gaat dat in de praktijk uitpakken, komen er wel ideeën uit, wat is de groepsdynamiek? Achteraf gezien ben ik meer dan tevreden. Sterker nog, ik ben best trots dat ik mijn steentje heb mogen bijdragen aan dit mooie resultaat.

Meer weten?

Wil je ook meer halen uit Office 365? Benieuwd of een Designweek voor jouw project goed zal werken? Je bent van harte welkom voor een kop koffie of thee bij ons in de Caballero Fabriek in Den Haag. Bel even met 070 – 820 02 31 of neem contact op via het contactformulier en we regelen een afspraak!

The post Grote stappen maken bij CJG Rijnmond dankzij een Designweek appeared first on Mavention.

Op zoek naar de vraag achter de vraag

$
0
0

Afbeelding blog Kasia

Als bedrijven ons bellen, hebben ze vaak een hele specifieke vraag: ‘we hebben een intranet nodig’ of ‘we zoeken een narrowcasting-oplossing’. Ik begrijp wel waar dat vandaan komt: een communicatieteam ziet een probleem – de medewerkers zijn bijvoorbeeld onvoldoende geïnformeerd over wat er in een bedrijf speelt – en bedenken een oplossing – in dit geval een intranet. Maar een intranet is een middel, een gereedschap.

Hoe kunnen we je écht helpen?

Het gaat erom dat we de ambitie van de vraagsteller centraal stellen. Hij of zij wil geen intranet, hij of zij wil communiceren. Dat zou ook met een app kunnen, of een combinatie van een app en een narrowcasting-oplossing, of misschien wel met alleen een intranet. Het is onze job om op zoek te gaan naar de vraag achter de vraag. Hoe kunnen we je écht helpen? Je zou kunnen denken dat het niet direct binnen de dienstverlening van Mavention past, als expert op het gebied van Office 365-implementaties. Maar ik ben daar inmiddels anders over gaan denken. Bedrijven zoeken een adviseur en sparringpartner die mee kan denken over hoe Office 365 optimaal benut kan worden. Office 365 kan een middel zijn voor interne en externe communicatie, het mag nooit een doel op zich zijn.

Start with why

Het gaat er dus allereerst om waarom je iets wilt doen. Om bij het vorige voorbeeld te blijven: je wilt beter communiceren met je medewerkers zodat ze beter op de hoogte zijn van wat er in het bedrijf speelt, en wellicht meer betrokken raken bij het bedrijf. Als het niet in het systeem van je medewerkers zit om regelmatig naar het intranet te gaan, moet je misschien denken aan tv-schermen bij de koffieautomaat; als je medewerkers staan te wachten op hun cappuccino, kijken ze vanzelf even op het scherm. En anno 2019 loopt iedereen met een telefoon op zak. Ik zie het aan mezelf; ik werk thuis, ik loop naar de keuken om even water te koken voor de thee en wat doe ik als ik wacht? Ik scan even mijn zakelijke news-app. Het is onze verantwoordelijkheid de klant te challengen in zijn vraagstelling. Wat is het doel dat je voor ogen hebt? Dan gaan wij vervolgens nadenken over de middelen die daarbij passen.

Office 365 als ‘contentopslagplaats’

Office 365 zal daar vrijwel altijd een rol inspelen. Zie het als een ‘contentopslagplaats’; je maakt een bericht één keer aan in Office 365 en vervolgens kies je hoe je het wilt verspreiden. Alleen op intranet? Ook op het scherm in de kantine? Op de app die je kan bekijken als je wacht tot de waterkoker klaar is, in de trein naar huis zit of ’s avonds op de bank voor de buis? Zo zet je Office 365 in om aan je ambitie te voldoen. Denk eerst na over het waarom, dan denken wij graag na over het hoe.

Meer weten?

Ook op zoek naar een adviseur en sparringpartner die mee kan denken over hoe Office 365 optimaal benut kan worden? Dan ben je natuurlijk van harte welkom voor een kop koffie of thee bij ons in de Caballero Fabriek in Den Haag. Bel even met 070 820 02 31 of neem contact op via het contactformulier en we regelen een afspraak!

The post Op zoek naar de vraag achter de vraag appeared first on Mavention.

Mavention silver sponsor op SharePoint Saturday

$
0
0

SharePoint Saturday

Mavention is dit jaar silver sponsor op SharePoint Saturday; Met zowel onze eigen MVP Albert-Jan Schot, als met een mooie stand zijn wij aanwezig in Vianen. Het event vindt plaats op zaterdag 29 juni 2019.

Wat is SharePoint Saturday?
SharePoint Saturday is een educatieve, informatieve en levendige dag vol sessies van gerespecteerde SharePoint-professionals en MVP’s. Er wordt een breed scala aan SharePoint-, Office 365- en Azure-onderwerpen behandeld met sessies voor IT-professionals en ontwikkelaars. SharePoint Saturday is de kans om jezelf onder te dompelen in SharePoint en de cloud-technologieën van Microsoft!

Wil jij naar dit event?
Registreer je op deze pagina

Meer weten?
Bekijk hier de website van SharePoint Saturday

The post Mavention silver sponsor op SharePoint Saturday appeared first on Mavention.

List all failed site designs in your tenant

$
0
0

At the SPC19 in Las Vegas, I had the chance to present on site designs. During the final discussion on the options for administrators, a nice question arose. How can I get an overview of all sites where site designs have failed.

PowerShell to the rescue

While the admin center does not show you the failed site designs, or sites that have failed designs. You can use PowerShell as there are some commands available for you. You can use the Get-SPOSiteDesignRun and Get-SPOSiteDesignRunStatus as described in a blog: How to find which site designs have been applied on a SharePoint site by Beau Cameron. So that and the discussion got me thinking: it shouldn’t be too hard to list all sites with ‘problems’. To achieve that you will have to do a few things:

  1. List all sites in your tenant
  2. List the site design for each sites
  3. Then list status information for each site design applied

Once you have done that you can apply easy filtering to select the info you need. Either you write all sites that have site designs that did not succeed. Or all site designs that have actual failures. Keep in mind that listing anything that is not ‘success’ will also list items that are not applied because they already were.

Get-SPOSite -Limit All | ForEach-Object {  
  $failedRuns = Get-SPOSiteDesignRun $_.Url | Get-SPOSiteDesignRunStatus | Where-Object {$_.OutcomeCode -ne "Success"};

  if($failedRuns) {
    Write-Output $_.Url
    $failedRuns
  }
}

The sample above will return you a list of all sites, and their non successful runs. The sample below will list all sites with an ‘actual’ error. This will filter out instances where no action was taken (NoOp).

Get-SPOSite -Limit All | ForEach-Object {  
  $failedRuns = Get-SPOSiteDesignRun $_.Url | Get-SPOSiteDesignRunStatus | Where-Object {$_.OutcomeCode -eq "Faulure"};

  if($failedRuns) {
    Write-Output $_.Url
    $failedRuns
  }
}

You can then use this information for further action. So I hope this will help you in getting some insights into Site designs and their actions that might cause trouble on your tenant. Or that it provides insights that you can pass on to Site Owners.

Originally posted at: https://www.cloudappie.nl/list-failed-site-designs-tenantwide/

The post List all failed site designs in your tenant appeared first on Mavention.

Op zoek naar de vraag achter de vraag

$
0
0

Als bedrijven ons bellen, hebben ze vaak een hele specifieke vraag: ‘we hebben een intranet nodig’ of ‘we zoeken een narrowcasting-oplossing’. Ik begrijp wel waar dat vandaan komt: een communicatieteam ziet een probleem – de medewerkers zijn bijvoorbeeld onvoldoende geïnformeerd over wat er in een bedrijf speelt – en bedenken een oplossing – in dit geval een intranet. Maar een intranet is een middel, een gereedschap.

Hoe kunnen we je écht helpen?

Het gaat erom dat we de ambitie van de vraagsteller centraal stellen. Hij of zij wil geen intranet, hij of zij wil communiceren. Dat zou ook met een app kunnen, of een combinatie van een app en een narrowcasting-oplossing, of misschien wel met alleen een intranet. Het is onze job om op zoek te gaan naar de vraag achter de vraag. Hoe kunnen we je écht helpen? Je zou kunnen denken dat het niet direct binnen de dienstverlening van Mavention past, als expert op het gebied van Office 365-implementaties. Maar ik ben daar inmiddels anders over gaan denken. Bedrijven zoeken een adviseur en sparringpartner die mee kan denken over hoe Office 365 optimaal benut kan worden. Office 365 kan een middel zijn voor interne en externe communicatie, het mag nooit een doel op zich zijn.

Start with why

Het gaat er dus allereerst om waarom je iets wilt doen. Om bij het vorige voorbeeld te blijven: je wilt beter communiceren met je medewerkers zodat ze beter op de hoogte zijn van wat er in het bedrijf speelt, en wellicht meer betrokken raken bij het bedrijf. Als het niet in het systeem van je medewerkers zit om regelmatig naar het intranet te gaan, moet je misschien denken aan tv-schermen bij de koffieautomaat; als je medewerkers staan te wachten op hun cappuccino, kijken ze vanzelf even op het scherm. En anno 2019 loopt iedereen met een telefoon op zak. Ik zie het aan mezelf; ik werk thuis, ik loop naar de keuken om even water te koken voor de thee en wat doe ik als ik wacht? Ik scan even mijn zakelijke news-app. Het is onze verantwoordelijkheid de klant te challengen in zijn vraagstelling. Wat is het doel dat je voor ogen hebt? Dan gaan wij vervolgens nadenken over de middelen die daarbij passen.

Office 365 als ‘contentopslagplaats’

Office 365 zal daar vrijwel altijd een rol inspelen. Zie het als een ‘contentopslagplaats’; je maakt een bericht één keer aan in Office 365 en vervolgens kies je hoe je het wilt verspreiden. Alleen op intranet? Ook op het scherm in de kantine? Op de app die je kan bekijken als je wacht tot de waterkoker klaar is, in de trein naar huis zit of ’s avonds op de bank voor de buis? Zo zet je Office 365 in om aan je ambitie te voldoen. Denk eerst na over het waarom, dan denken wij graag na over het hoe.

Meer weten?

Ook op zoek naar een adviseur en sparringpartner die mee kan denken over hoe Office 365 optimaal benut kan worden? Dan ben je natuurlijk van harte welkom voor een kop koffie of thee bij ons in de Caballero Fabriek in Den Haag. Bel even met 070 – 820 02 31 of neem contact op via het contactformulier en we regelen een afspraak!

The post Op zoek naar de vraag achter de vraag appeared first on Mavention.

Viewing all 715 articles
Browse latest View live