Hi all,
I'm a newbie. I learn from examples and discussion posted here.
I have a list of event details and I need to know the columns that have been changed by the user whenever they've modified their item.
I found this action called - Get Changes of an Item or a File (properties only). Which is great because it returns true when any column changes from its previous version (item has been modified).
This is my flow
And this is my test result. In actual, I have like 25 columns.
My goal is to send an email notification about the updated/modified columns and I only need to know the item and the columns that have been changed.
How do I continue from here? Which control should I use?
I can't find any example of usage in google or in this forum about Get changes on an item or a file (property only) action. Or is there any other workaround?
Please help 😞
Hi @Rethdayat ,
If you want to rely on this action to determine which column is changed, it seems that you need to determine whether Has Column Changed is true one by one.
Or you can directly use SharePoint alerts to monitor whether the item has been changed.
Create an alert to get notified when a file or folder changes in SharePoint - SharePoint
Best Regards,
I tried that but the only problem is it does not show which column has been changed. It just list down every column to me.
Hi @Rethdayat ,
Which method are you trying? Using the action you mentioned is currently unable to achieve your needs, as you can see, it will only prompt whether the field has been changed with true/false.
Best Regards,
I found the solution.
- Have versioning turned on in the list.
- Get changes for an item or file (properties only)
--Enter list information and ID
--Since is Trigger Window Start Token
--Until is Trigger Window End Token
-Initialize Variable
--Name it
--Type is Array
-Add a Condition
--From Get changes Step - "Has a Column Changed..." chosen columns you want to see changes from is equal to "True"
-Append to Array Variable
--Name of initialized variable in above step
--Value is your text you want to see in email and the dynamic content of the changed field.
Repeat this step for all fields wanting to capture changes from.
-Add a Compose Step
--Enter Expression - join(variables('Changes Summary'),'-')
-Add another Compose Step
--Enter Expression - concat('-',replace(outputs('Compose'),'-','</br>-'))
-Create a Send an Email Step
--Enter the Outputs from the second "concat" Compose step
Succeeds
This worked great for me with one exception. I have a dropdown that allows multiple selections. When I run this I get the end result and the fact that it was changed. Is there a way to capture what was removed from the list and display that as well. I'm hoping to get to a point where upon changing items in the dropdown selecting or de-selecting multiple items all changes are displayed in the e-mail as shown here.
items added: selection1, selection 2, selection 3
items deleted: selection 4, selection 9
no change: selection 5, selection 6, selection 7, selection 8
I used SharePoint Designer for that on a different list that I have yet to update in Automate.
I would try something like using variables and comparing with a duplicate string column that would host the old selections.
You would create a variable and Apply to Each to combine the selections in the string using Concat and ", ".
That Variable would update the duplicate column on new and update. You could then compare the new value (existing DD Variable) against the old value (duplicate DD variable).
You would have to add some control steps to prevent infinite looping.
I'm sure there is a better way to accomplish it but that's where I would start. Here is an example of what I have in Designer.
User | Count |
---|---|
99 | |
39 | |
27 | |
23 | |
16 |
User | Count |
---|---|
130 | |
52 | |
48 | |
36 | |
24 |