cancel
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)

orders.png

 

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).

 

orders-prevoious.png

 

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

 

orders-create-history-row.png

 

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

 

orders-create-history-row-example-1-e1535038963723.png

 

The corresponding item is created on our history list.

 

orders-create-history-row-example-2.png

 

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.

 

modify-order.png

 

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.

 

order-is-status-changed.png

 

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

 

orders-modify-item-3.png

 

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.

 

orders-modify-item-4.png

 

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

 

orders-modify-item-5.png

 

So straightforward that I almost feel ashamed.

 

Final Flow looks like this.

 

order-history-flow.png

 

Comments

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
  • Working daily with Microsoft Cloud to deliver the needs of my company, my customers and various Microsoft communities and forums. | Office 365 | Flow | PowerShell | PowerApps | SharePoint |
  • Co-founder of https://plumsail.com, Office 365 and SharePoint expert. Passionate about design and development of easy to use, convenient and flexible products.
  • Microsoft Business Apps MVP. Owner of ThriveFast, an Office 365 consulting company.
  • 7x Microsoft Business Solutions MVP (CRM)
  • Solution Architect with Slalom, and organizer of the Boston Office 365 User Group, and long term SharePoint/Office 365 veteren. Find more at http://www.davidlozzi.com. Follow @DavidLozzi
  • I'm keen in MS technologies, SharePoint, Office 365 and development for them
  • Daniel is a Business Productivity Consultant & Microsoft Business Solutions MVP who is very enthusiastic about all things Office 365, Microsoft Flow, PowerApps, Azure & SharePoint (Online). Since the preview, Daniel has been working with Microsoft Flow and later on with Microsoft PowerApps. That led to him being awarded an MVP Award for Business Solutions. He loves to blog, present and evangelize about improving productivity in the modern workspace with these amazing tools!
  • Michelle is an Office 365 solution architect in Twin Cities, MN. She has been delivering business collaboration solutions for years with her focus on SharePoint and Office 365. Michelle is a recent board member of the Minnesota Office 365 User Group and has been a member of the SharePoint community since 2009. She is a frequent speaker at MNSPUG and SharePoint Saturday and co-chaired the Legal SharePoint User Group for 4 years. Her most frequent projects have involved rolling out a large deployment of Office 365, SharePoint Online intranet, build of a "CHAMPS" Office 365 user adoption program and most recently, SharePoint On-Premise to Online Migration. Michelle is very excited about cloud technology as it is shifting her IT Pro focus to collaboration strategy and technical adoption.
  • I'm a Microsoft Office Servers and Services MVP with a special interest in SharePoint, Office 365, Microsoft Flow, Microsoft Teams and PowerApps. I work at Triad Group Plc ( https://triad.co.uk)