Showing results for 
Search instead for 
Did you mean: 

SharePoint item has been modified. But which columns?

When building solutions with Flow and SharePoint I often come across the same problem. The solution should do something every time the user updates item in SharePoint list. But this "something" depends on column user has updated.


Unfortunately, there is no action for this use case. You can call SharePoint Rest API from Flow and find the previous version of the list item. Compare it with the current one and figure out which fields the user has edited. Solved!


Sounds too complicated for me. You can achieve the same functionality way easier. Just store items previous values in another SharePoint list. By using Flow of course.  


Example - Order Processing


Let's build a light order processing solution using PowerApps + Sharepoint + Flow. Orders are stored in a SharePoint list having the following fields:

  • What has been ordered (Title)
  • Order status (Status)
  • The orderer (Created by)
  • Approver (Approver)
  • Comments related to the order (Comments)



When order item is updated we like to do the following

  1. If the approver is changed -> Send a notification to the new approver
  2. If order status is updated - > Send notifications to the orderer and/or acquisition, depending on the updated status
  3. In other cases (for example, someone updates comments) -> Do nothing

First, we create a new list where previous values of each item are stored. For our example we need

  • Order status (Status)
  • Approver (Approver)

And of course, the original item id (OrderID).




Now we create a Flow that is triggered when a new order is placed. It creates a corresponding item in our history list.




Now, whenever a new order is created in the order list.  




The corresponding item is created on our history list.




Next, we create a Flow triggered whenever an order item is modified. The first action gets a matching item from our history list. This can be done by utilizing the OData filter.




Now we can find out whether the order status is changed or not. In other words, whether the modified order line status is different from the status of the corresponding item on the history list.




If the status is changed, we will do different actions depending on what the new status is (approved orrejected).




Next, we find out if approver has changed. If it is an e-mail notification is sent to the new approver. If the approver isn't changed we do nothing.




At the end of Flow, we update new values into the history list.




So straightforward that I almost feel ashamed.


Final Flow looks like this.





In a newbie to Flow, and this has been what I was troubling with for the past month, glad I found your solution, it is so much simpler and I could understand the functions much better! Thank you!!

Meet Our Blog Authors
  • Experienced Consultant with a demonstrated history of working in the information technology and services industry. Skilled in Office 365, Azure, SharePoint Online, PowerShell, Nintex, K2, SharePoint Designer workflow automation, PowerApps, Microsoft Flow, PowerShell, Active Directory, Operating Systems, Networking, and JavaScript. Strong consulting professional with a Bachelor of Engineering (B.E.) focused in Information Technology from Mumbai University.
  • Encodian Owner / Founder - Ex Microsoft Consulting Services - Architect / Developer - 20 years in SharePoint - PowerPlatform Fan
  • Cambridge UK Power Platform User Group Leader, Technical evangelist and speaker. Always says yes to coffee! #LetsGetCoffee
  • Passionate #Programmer #SharePoint #SPFx #Office365 #MSFlow | C-sharpCorner MVP | SharePoint StackOverflow, Github, PnP contributor
  • I am building business processes and applications that are easy for users' to stick to, so they can follow and understand them. In overall I transform processes to be more reliable and effortless. I am a proud co-organizer of SharePoint Saturday Warsaw and active community member, blogger and international speaker.