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
- If the approver is changed -> Send a notification to the new approver
- If order status is updated - > Send notifications to the orderer and/or acquisition, depending on the updated status
- 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.

*This post is locked for comments