2nd Microsoft Flow Template – Send Push Notification & Slack Message for a WordPress post #MicrsoftFlow #SharePoint #Office365

I was able to get my second Microsoft Template published in Microsoft Flow

Template can be used from here

Send Push Notification & Slack Message for a WordPress post

Functionality in this template is quite simple, when a WordPress post is made a push notification is made and also a Slack Message is posted in a particular group

To learn how to publish a template you can read my below blog about it

How to submit a Flow in template Gallery ?

To learn more about Microsoft Flow you can read below blogs

My tryst with Microsoft Flow!

Microsoft Flow – Create from blank

Microsoft Flow – Advanced mode options #SharePoint #MicrosoftFlow

What is SharePoint WebHooks ? #WebHooks #SharePoint #SharePointWebHooks

Before we describe SharePoint WebHook, first let’s understand what is a WebHook.

I believe you are familiar with concepts of API which has been popular for few years now, in API model / setup you request data from an application and in return you get data from the application.

So let’s consider a scenario that you want to know every time something changes in the application, to deal with that in API is cumbersome you will have to keep on asking for data and find out if there was any change from last time.

What if you can get a notification that something has been changed, means you get a response without asking that something has been changed. Now that is what WebHook is, you get a notification that something has changed.

Before I describe SharePoint WebHook you must know that WebHook is not something which has been created by Office 365 or Microsoft but it’s a concept already used in WordPress etc.

SharePoint WebHook can be created for Lists as of now, so basically any changes in a library or list will send a notification if you have subscribed to WebHook. Based on this notification you should a response and also process it further for implementing changes or activities.

Now if you know about Remote Event Receivers you might find it similar but it is different as you can prevent the action or change happening in SharePoint but only be notified about it. Also like traditional WCF based notifications you don’t have information of what has been changed, you just a get a response that something has been changed in library or list.

So as an Application you need to do certain things to make WebHook work

  • First of all subscribe to a WebHook
  • Once subscribed you will receive POST messages from SharePoint
  • Once you receive POST message you should response in 5 seconds with HTTTP/1.1 200 OK
  • After that your application should store the notification to process it further.

This is basic overview of SharePoint WebHook, in next post we will do more hands on and learn to set up WebHook and how to process it.


SharePoint 2013 Search Error : object reference not set to an instance of an object – Fix #SharePoint #SharePointSearch

This a common error message which you can see if you have search issues “Object reference not to set an instance of an object”. This error message does not tell much and you will have to look SharePoint log and find the correlation ID.

If you search on the internet for this error you will hit numerous reasons and fix for it. Problem is that error message is very generic and can be seen for various kind of issues. I have encountered this in two scenarios which I am gonna list down.

First thing you need to check SharePoint health, if there is an error in that best resolution is to recreate the index

You must have some error message in SharePoint search status like below


Reset search index

If that is the not the case the other reason can be you have orphaned items in your farm / content database. Generally you will get error message in SharePoint Health Analyzer for this but in our case we did not get it strangely. So basically you cannot trust it so best is to look for correlation ID in SharePoint Log.

What I observed is that when you search in SharePoint it will enumerate all site collections and it might fail doing so if you have orphaned items. You should look carefully and find out which content database it was enumerating.

If you have find out you should use below command to Refresh Sites for the content database. This method synchronizes information between content and config databases.

$db = Get-SPDatabase | where {$_.Name -eq “DatabaseName”}


If this also does not work you can use below as well but this needs to be done out of office hours.

Dismount-SPContentDatabase “<ContentdBName>”

Mount-SPContentDatabase “” -DatabaseServer “” -WebApplication http://SiteName

Hopefully this well help someone and I just added one more solution in list of solution available.

In case you need more help on this or other SharePoint issues please contact us via our Contact Us page or via our Facebook page or via Twitter

Like us on Facebook and follow us on Twitter

Microsoft Flow template published #MicrosoftFlow #SharePoint #Office365

So finally my first Microsoft Flow template has been published, I am quite excited about it! It took sometime for Microsoft to add in the list of templates but better late than never.

Template can be used from here

Send email and add item in SharePoint List when WordPress Post is created

Functionality in this template is quite simple, when a WordPress post is made, you can get an email and same information can be added in SharePoint List.

To learn how to publish a template you can read my below blog about it

How to submit a Flow in template Gallery ?

To learn more about Microsoft Flow you can read below blogs

My tryst with Microsoft Flow!

Microsoft Flow – Create from blank

Microsoft Flow – Advanced mode options #SharePoint #MicrosoftFlow

Basics of Data Science #DataScience #MachineLearning – Machine Learning Day 1

Data Science is all about understanding data, finding patterns and at the same time predict something out of it.

First step in data science is about getting hold of data, data can be available in different formats such as csv, excel, SQL tables, txt files etc.

Once we get data we can start exploring it and refining it as well. Excel is a very good tool to explore data which comes with lot of inbuilt functionalities.

Step two figure out any anomalies of data you have got and remove them such as

  • Duplicate data
  • Incorrect data such as most of the data ranges in 2 digits but suddenly you have a 3 digit or 4 digit data so you need to understand whether this is correct or should be removed
  • Blank data, any blank data can be filled with relevant data like  by taking an average or removing it.

Above list is not exhaustive but relevant, there can be other scenarios as well.

Once you have cleaned your data, third step is to use some methods to understand your data better

Using these methods you might be able to identify some trends or understand it better than before.

Once you have understood it better and you are smart enough you can ask following types of questions which forms basics of data science

  • Descriptive: Questions like how many?, how much ?
  • Associative: Relational data questions, like if temperature is high you sell more ice creams or you sell more ice creams between 2 PM to 4 PM
  • Comparative: Compare of flavor of ice creams being sold and compare them in a day or a month
  • Predictive: You can predict data such as chocolate flavor ice cream is most liked by children

If you can ask above questions it means you understand data quite well. Next step is to plot data in different ways such as Graphs, Charts, Histograms and also visualize data in 2D and 3D (Pivot table and charts)

Some common techniques are listed below

So these are some basics of data science, more in next blog

Data Science is huge subject which cannot be dealt in one blog, I have started a journey of acquiring a new skill “Machine Learning”, I am writing blog as I learn to keep notes for myself and for future learners. First day we learnt about basics of data science.

PowerShell to update an item in SharePoint List #SharePoint #PowerShell

If you are working in support you might get tickets to update a particular item as users are not able to update some columns as it’s locked due to some workflow or checks in forms´customization. The user in workflow is on leave or currently not available so as support you can do it from back via PowerShell.

It can be done via some simple PowerShell commands as below

$web = Get-SPWeb “Put site URL here”

$list = $web.Lists[“ListName”]

$item = $list.GetItemByID(46)

$item[“Status”] = “Approved”


So in above example first we create reference to the web we are going to work upon, then refer to list on which you are going to work upon.

Next step is to get a specific item by using ID and we are using GetItemByID function. As an example we have used item id 46, you need to replace this with your ID.

Next is to update a particular column value, here “Status” is a column name, which is being updated with new value “Approved”.

Last step “update” function is important else value will not be updated.


What is Azure Machine Learning ? #Azure #MachineLearning

Azure Machine Learning is a cloud based predictive analytics service which is easy to use and give fast and reliable results using its predefined algorithms and models.

Using Machine learning in broad / high level manner needs 4 steps described as below

  1. Data collection or generation
    • Collect data from source
    • Store in Azure Storage, SQL etc
    • Refine data if needed
  2. Create Machine Learning models
    • Use Machine Learning Azure Studio
    • Easy to use drag drop interface
  3. Output data as Web Service
    • Run the model to output data as web service
  4. Use output for intelligence or insights
    • Based on output make sites or Apps intelligent
    • Create insights and make predictions

Diagram for Azure Machine Learning

Azure Machine Learning

Checklist for configuring eDiscovery in SharePoint Online #SharePoint #Office365 #eDiscovery

There are multiple steps which needs to be done to configure eDiscovery successfully in SharePoint Online or Office 365. To perform this you need to be Office 365 Tenant Admin.

Here is a checklist to confirm the set up for eDiscovery

  1. Have you created a Site Collection with template as eDiscovery Center?
  2. Have you configured Exchange Online as one of the Result Sources in eDiscovery Center?
  3. Have you created a Security group called eDiscovery Managers in Exchange Admin?
  4. Have you given access to security group eDiscovery Managers to Site Collection as Admin?
  5. Have you given Admin access to all Site Collections to security group eDiscovery Managers?
  6. Have you given read permissions to eDiscovery Managers to Crawl Log permissions in Search settings in SharePoint admin?
  7. Have you given access to Role Discovery Management in Exchange Admin to eDiscovery Managers?

If your answer to all above questions yes then you are ready and your eDiscovery Managers can create cases now.


Sideloading of Apps in #SharePoint online #Office365

If you are getting this error ” Error occurred in deployment step ‘Install SharePoint Add-in’: Sideloading of apps is not enabled on this site ” when debugging a SharePoint Add-in it means site you are using is a Production site. Sideloading of Apps is not enabled on any site by default as specially Production sites since it allow developers to load Apps which are still under development and not published.

If you are going to do some tests then enable it using PowerShell for SharePoint Online.

PowerShell code can be downloaded from MSDN code repository from Here

To disable Sideloading you can download code from here



Backup and restore strategy for SharePoint Online#SharePoint #Office365

SharePoint on-premise Backup and Restore is a big topic of its own but in SharePoint online you don’t have such options. On-prem version you could use PowerShell to do perform nightly jobs to take Backup or you can take SQL backups which can be used to restore later.

Nothing like this is possible in SharePoint Online, because you don’t have servers and there are no PowerShell commands to take back up or export a site , list or library.

So question is how we safeguard ourselves with scenarios which can happen and might have happened in on-prem.

  • User claims a file has been deleted as he / she can’t find it
  • User deletes a file and realizes after long time that he / she needs it back
  • Lot of permission settings have been changed and mistakes have been done, so how to see what it was like 1 day before so that same can be replicated again

Well what are the options with us

  1. Enable version history: Although it does not solve your backup and restore concerns but it can be helpful is certain scenarios such as user updated the document wrongly if version history is not enabled you end up losing earlier version. Of course you can ask Microsoft for a restore which they keep for 14 days but note that it is not a granular restore which means whole site collection is restored and you might have duplicates
  2. Use Recycle Bin: To lot of extent this solves a lot of worries of Backup and Restore. Each file, item , list or library, site deleted will be stored in Recycle Bin for 90 days. You can always restore your own files for 90 days and if deleted from own recycle bin it will be stored in site collection recycle bin. Also we have second stage recycle bin which can be accessed by site administrators. If a site collection is deleted then it can be restored within 30 days as it depends your Office 365 storage.
  3. Request Microsoft for a restore: Microsoft keeps 14 days backup and it can be restored by making a request to Microsoft. So if you do the math if a file was deleted 105 days back it can still be restored as you can go 14 days back with backup and considering that deleted file might be in Recycle bin so you can restore it from there. But this is not very ideal as you will have duplication of data and it can be only done on site collection level and both old and new files will be presented to user.

So what are other alternatives, you can go for some third-party tools which are available in market, they allow you to take backups, do granular restores much like you were doing in on-premise SharePoint but of course it drives cost due to licenses and storage costs in Azure or some other services or cheap in house storages.

Another thing I can think of is taking backup on your own and storing it in some cheap storage locally / in-house. I have not built any solution like this but it can be done as below

  • You already have Recycle bin and Microsoft 14 days backup which can save you in most of the scenarios
  • But what if there are some business critical data which you want to safeguard beyond what you are getting and you don’t want to spend more money on third party tools etc.
  • You can write a script using REST API which download data for business critical sites and stores locally. Download list data to excel. REST API supports downloading of data which can easily structured as backup if the script is written that ways. Frequency can be once a week so we have some extra cushion or daily depending on how long it takes to run, you can run parallel or multi threaded scripts to execute parallel.

If you like the idea of REST API let me know I can help you provide a solution based on that. Leave a comment and we can take it from there.

In case you need more help on this or other SharePoint issues please contact us via our Contact Us page or via our Facebook page or via Twitter

Like us on Facebook and follow us on Twitter