Power Automate long running Approval flows (beyond 30 days)

Поделиться
HTML-код
  • Опубликовано: 9 ноя 2020
  • In this video on Power Automate long running Approval flows, we will explore building approval flows than span beyond the 30 day flow run duration limit.
    Building long running approval flows in Power Automate ensures your approvers can have their approval action span beyond the 30 day flow limit.
    Approvals Playlist - bit.ly/learnflowapprovals
    30 day flow run duration limit - docs.microsoft.com/en-us/powe...
    Request limits and allocations (number of API calls per 24 hr. period) - docs.microsoft.com/en-us/powe...
    Scenario is a Contracts Management approval workflow wherein the approval flow begins from Department review and then moves to Legal review for final approval.
    We will create both a multi-step and a state machine approval workflow that can run beyond 30 days.
    Topics covered:
    ✔️ Long running approval flows pattern
    ✔️ Multi-step approval workflow pattern
    ✔️ State Machine workflow pattern
    Learn Expressions - aka.ms/learnexpressions
    #StateMachineApprovals #ApprovalsCookbook #Flow #PowerAutomate #Approvals #flowapprovals #PowerPlatform

Комментарии • 398

  • @vpavan007
    @vpavan007 3 года назад +14

    Brilliant Reza I am not sure how long you spent to get this breakthrough but I respect all your time and thank you a ton for sharing this super-advanced topic!

    • @RezaDorrani
      @RezaDorrani  3 года назад +5

      Thank you Krishna. I have been thinking about this pattern for weeks in my head before executing it :)

    • @thanhthule4564
      @thanhthule4564 4 месяца назад

      @@RezaDorrani This is so briliant! Great work and thanks for your sharing.

  • @robofski
    @robofski 3 года назад +5

    What a creative way to use the Timed Out status of an approval action. I use it today to just send an email telling the requestor to resubmit but this is so much better! More rework for me :-) Another excellent video, thanks Reza.

    • @RezaDorrani
      @RezaDorrani  3 года назад

      Thanks for the fantastic feedback as always.

  • @fleurwilliamson5920
    @fleurwilliamson5920 3 года назад +3

    I’m watching this on Christmas Day 2020 and I feel like I just received the best Christmas present. Thank you Reza! So much better than the way I have been handling this. 💛

    • @RezaDorrani
      @RezaDorrani  3 года назад

      Thank you for watching and Merry Christmas 🎁

  • @jherschel
    @jherschel 9 месяцев назад +1

    Awesome Video. And thanks for posting the workflow. just assigning all the approvals to myself and seeing it live in action saved me a lot of time and headaches. Thank you for being a great contributor to Power Automate!

  • @JesterHammer
    @JesterHammer 2 года назад +6

    One of the most valuable tutorials i’ve watched on Power Automate. Must watch for everyone. Reza is so far, my top online instructor on Power Automate. Will add his videos as part of our internal Power Platform practice training. Very valuable, thanks again.

    • @RezaDorrani
      @RezaDorrani  2 года назад

      Thank you much for the appreciation & thanks for sharing the videos.

  • @breadandcheese1880
    @breadandcheese1880 11 месяцев назад +2

    @Reza - Hands down you are enabling others to learn and bring change in their companies. I very much enjoy your videos! Thank you!

    • @RezaDorrani
      @RezaDorrani  11 месяцев назад

      Thank You so much for the appreciation

  • @premsai9908
    @premsai9908 2 года назад +3

    As always,
    Quality Content Delivered (Period) . thanks a ton for your efforts for saving us a weeks of time in scratching our brains. 👏👏👏👏🙂🙂🙂.

  • @radhikamarda9407
    @radhikamarda9407 2 года назад

    Brilliant video Reza. Now I can recreate my complex workflows without breaking my head. I might be little late for comments here, none the less, "#1 Power Teacher!! "

    • @RezaDorrani
      @RezaDorrani  2 года назад +1

      Never too late :)
      Thanks for watching.

  • @PValili
    @PValili 2 года назад +1

    This is a brilliant way of handling multi approval and timeouts in one flow structure

  • @roystandsouza1823
    @roystandsouza1823 2 года назад +1

    You are the GOAT of Power platform. Thanks again.

    • @RezaDorrani
      @RezaDorrani  2 года назад

      Wow! I am no GOAT :) Thank You for the appreciation though.

  • @johnsonjohn1680
    @johnsonjohn1680 3 года назад +1

    This is amazing , you have explained it with great clarity, Hats off!

  • @edwarddejesus1649
    @edwarddejesus1649 Год назад +1

    Thank you so much Reza, it really helps me with my issue regarding the 30days limitation of Power Automate.

  • @thanhthule4564
    @thanhthule4564 4 месяца назад

    Such a great, simple in an advanced way - video!!! I love this and all of your videos :)

  • @rembautimes8808
    @rembautimes8808 11 месяцев назад +1

    Its time to go thru all these cookbooks. Great resource Reza.

  • @benoitappolonus8791
    @benoitappolonus8791 Год назад +1

    Wonderful, Reza, you're amazing !

  • @patelbhargav
    @patelbhargav 2 года назад +1

    I follow your instructions to impress people at work :D. Thank you Reza for making me look genius.

  • @richardclowes6166
    @richardclowes6166 3 года назад +1

    Excellent video Reza.

  • @mjmann2402
    @mjmann2402 Год назад +1

    Reza, you're brilliant.

  • @sv6496
    @sv6496 Год назад +1

    Brilliant, Reza.. thank you!

  • @karukarthi2609
    @karukarthi2609 3 года назад +1

    Very nice and much needed. Thanks a lot man for the superb video and in detailed..

    • @RezaDorrani
      @RezaDorrani  3 года назад

      You are most welcome and thank you for watching

    • @RezaDorrani
      @RezaDorrani  3 года назад

      Thanks for watching

  • @kylelane3504
    @kylelane3504 Год назад +1

    Still very relevant love the content and great tutorial!!

  • @baldaniyahenik
    @baldaniyahenik 3 года назад +1

    Excellent....thanks for sharing...much useful in many scenario....

  • @Kremsi7
    @Kremsi7 3 года назад +1

    Very nice! This i defintly needed ! Mans Thanks för your Great explaination. Br Tobias

    • @RezaDorrani
      @RezaDorrani  3 года назад

      Thank you for watching and happy to know that the video is useful.

  • @amanchd80
    @amanchd80 3 года назад +1

    Excellent. Thank you for sharing.

  • @yanaandsophia
    @yanaandsophia 3 года назад +1

    It's very helpful I have also time out problem in my flow.

    • @RezaDorrani
      @RezaDorrani  3 года назад

      Glad to know this videos is helpful

  • @TheKouv
    @TheKouv 3 года назад +1

    Very helpful video. Thanks :-)

    • @RezaDorrani
      @RezaDorrani  3 года назад

      You're welcome! Thank you for watching.

  • @ronn_zw
    @ronn_zw Год назад

    Awesome Reza. Thanks

  • @wisdomelue
    @wisdomelue Год назад +1

    helpful video. thank you 🙏🏽

  • @thecoreYalex
    @thecoreYalex 2 года назад +1

    Best Video ever

  • @draganrakita9705
    @draganrakita9705 3 года назад

    Great series Reza, your way of explanation is excellent!!! One question... what is your suggestion for dealing with permission for document which is in process of approval? Just complicated SharePoint http request for break inheritances and setting new privilege? Thank you again!!!

    • @RezaDorrani
      @RezaDorrani  3 года назад +1

      Thank you!
      There are a couple of actions in flow "Stop sharing an item or a file" and "grant access to an item or a folder" that do provide some options but for more sophisticated permission setups, the SharePoint http request action is your best bet.

  • @mif1965
    @mif1965 3 года назад +1

    Ditto! Impressive, very well explained and full of business value. I have one simple question: how to indicate the flow a specific email address on the moment it runs? I have a similar need, one document needs to be approved by a process owner and his/her manager. Obviously both emails will change based on the content being approved. Thanks for the impressive contributions

    • @RezaDorrani
      @RezaDorrani  3 года назад +1

      I have multiple videos on flow approvals. One pn dynamically defining approvers. Check my playlist here - ruclips.net/p/PLTyFh-qDKAiFUGTtwSwFT79Y7_jq_Aipe

  • @jondavies2843
    @jondavies2843 3 года назад +2

    Great video :). Regarding production, you suggested setting1st approval to timeout to 29 days. Would the 2nd approval also be set to 29 days ? - I'm asking because I don’t know when the timeout starts, is it when the approval gets executed or are all the approvals timeouts running from a global variable ?

    • @RezaDorrani
      @RezaDorrani  3 года назад +1

      The flow run duration is 30 days. It does not matter how many approval actions are in there. In this technique, I re-trigger the flow after every approval action and when an approval action times out (29 days).

  • @brettgovernanti
    @brettgovernanti 3 года назад +1

    Reza, this is an ingenious method for retriggering a step that has timed out and for logging histories on a multi-step Flow approval. These are important to my business process, kudos to you. I do have two issues, however. #1 Everything works as expected, except for when the timeout is reached; the Flow simply updates StartWF in SharePoint to 'Yes', then stops everything on the Terminate step. The run history reports that the flow has run successfully, however no new email notification appears to indicate that the Flow run on that step has, in fact, retriggered. The Flow run is simply done, full stop. I wonder if the condition on the trigger is actually getting touched?

    • @RezaDorrani
      @RezaDorrani  3 года назад +1

      Thanks for the feedback.
      If your flow is being retriggered you should see the flow run. You can always add a compose action and/or log flow run info in a data source or send an email notif just for testing purpose.
      If your flow is not retriggering, then it has to do with the trigger condition defined.

  • @kevinpham1645
    @kevinpham1645 2 года назад +4

    Hi Rezza, love the video. However, when i tried to implement this flow I noticed this scenario could happen. You stop the flow from retriggering with the field "StartWF" by setting it to "No" in the flow when you updated the item. But what happen while you are running the flow and you haven't hit the part where you update the flag to 'No' and the user in sharepoint updates the item. That would trigger another flow run and weird stuff can happen when the same flow is running multiple times. I also notice that flow doesn't run instantly the moment you create the item. It takes sometimes for flow to kick in and in that time the user can revise the item which can cause multiple flow runs as long as flag has not been set to 'No'.

    • @RezaDorrani
      @RezaDorrani  2 года назад +1

      Flow only triggers when StartWF is set to "Yes". You could always set another flag that gets updated once flow completes. If that flag is not updated by flow, then do not change the StartWF flag to Yes in Power Apps form. That ways it will always wait until flow is complete prior to starting another flow.

  • @NaveenKumar-lm7qj
    @NaveenKumar-lm7qj 3 года назад +1

    Nice One!!!

  • @oscarrichter5300
    @oscarrichter5300 2 года назад +1

    Hey Reza, Thanks for the well thought out video, I just have one question regarding this.
    When logging the approval history, I am unable to grab the output from the first approval and place into the second approval. In your instance it would be taking the approval history output from the Pending Department Review Approved (Update File Property) action, and place it into the Approval history for the Pending Deparment Review (Update File Property) Action. It gives an error not allowing it to continue, im assuming because they are running in different paths. Appreciate any help if you can!
    Specifially speaking, how does the action Approval History shown at 19:42 work if its not in the same path?

    • @RezaDorrani
      @RezaDorrani  2 года назад

      I query the SP list item again to grab the approval history column before updating the item.
      In update item, I used the current history and then add the new approval information.

  • @PA-nm9fc
    @PA-nm9fc 11 месяцев назад

    Reza, thank you very much for your videos they are very good and easy to understand. One quick question: would this flow run for like 6, 7, or more months?
    We have an approval process that would take more than 6 months to be completed.

    • @RezaDorrani
      @RezaDorrani  11 месяцев назад

      The idea is for the flow to keep re-triggering every 29 days and hence it can run as long as you need it to.

  • @rajsingh-lr3nd
    @rajsingh-lr3nd 2 года назад +1

    Brilliant

  • @denisem134500
    @denisem134500 3 года назад +1

    Great process! I like the visual of the green check and red X. Where did you get that from? Thanks!

    • @RezaDorrani
      @RezaDorrani  3 года назад +5

      bing.com searched for emojis and copy pasted :)

    • @fleurwilliamson3968
      @fleurwilliamson3968 3 года назад +2

      I found internet search results a minefield of choice. Another option is to use Windows key + . (windows key plus period or full stop) to bring up the emoji picker.

  • @RubeeshM
    @RubeeshM 3 года назад +1

    Excellent video.
    Can i know what is need of creating varStatus? Why cant the list Status field be directly used in switch case?

    • @RezaDorrani
      @RezaDorrani  3 года назад

      You can. I create a variable so it becomes simple to explain for beginners watching the video.

  • @mikanurgalymova1578
    @mikanurgalymova1578 7 месяцев назад +1

    Thank you so much Reza, it was an awesome tutorial!!!
    i have a question: When approval is timeout and sending again, how can I automatically complete (close) he first approval, it's a little bit confusing when having 2 same approvals.

    • @RezaDorrani
      @RezaDorrani  7 месяцев назад

      There is no option to close that running approval

  • @ankitgarg6976
    @ankitgarg6976 2 года назад +1

    Hello Reza, your videos are so good that I watched this whole playlist in two days. Just one question related to State Machine workflows, is it possible that in case of "need more information" workflow in email only can we provide fields which can be updated by initial submitter and we grab that information in flow, case is don't want to give edit permission on SharePoint list Item as user can change Status themselves even if I hide columns (Security concern) as SharePoint does not give column level edit permission ?

    • @RezaDorrani
      @RezaDorrani  2 года назад

      Thanks Ankit!
      Approval forms currently cannot be customized.
      Column level security is not possible with SharePoint and will always be a concern.

  • @KhurramGohar
    @KhurramGohar 10 месяцев назад +1

    Thank you Reza for the video. just want to ask, what if the flow is triggered based on a MS Form Response ? how to put a trigger condition then ? Thanks

    • @RezaDorrani
      @RezaDorrani  10 месяцев назад

      There is no option for trigger conditions for flows based on ms forms.

  • @HaseenaS-ie6eo
    @HaseenaS-ie6eo Год назад +1

    Hi, Thank you very much for your time.. if we are using wait for approval with duration limit, do we need to use terminate action compulsory?

    • @RezaDorrani
      @RezaDorrani  Год назад

      Not compulsory. I believe I did it to ensure the flow is Successful.

  • @dingersu
    @dingersu 2 года назад +1

    Thank you Reza for this great way to handle the 30D-Problem. So, if I have a Do-Until-Loop I do need to set the variable for the do-until-loop to stop instead of terminating the process, right? I will try this out. This is again a great video from you. Love them all 😍

    • @RezaDorrani
      @RezaDorrani  2 года назад +1

      You are most welcome.
      Do until loop must stop either before 30 days or after user takes approval action.

    • @dingersu
      @dingersu 2 года назад +1

      @@RezaDorrani Thank you so much for your fast reply. I think I'll delete the do until loop and change the process in the way you showed us. This solves the very last issue in my approval workflow. My whole flow is full of content I've learned from your videos. So happy I "found " your account 💯 🥳

    • @RezaDorrani
      @RezaDorrani  2 года назад +1

      @@dingersu Thank You so much for following my videos.

  • @caripe88
    @caripe88 3 года назад

    Hi Reza! I noticed that you did it for a Document Library. Should I consider anything different for a List (instead of a Document Library)?

    • @RezaDorrani
      @RezaDorrani  3 года назад +1

      Same concept will work for a list as well. Just replace the file actions with the list item ones.

  • @meganleecy4658
    @meganleecy4658 2 года назад +1

    The course is amazing! However, the screen is quite blurry. Not sure if it's my computer issue tho.

    • @RezaDorrani
      @RezaDorrani  2 года назад +1

      Video is uploaded in HD Quality. Might have to do with your internet connection.

  • @sundrapillay6668
    @sundrapillay6668 3 года назад +1

    Thanks Reza

    • @RezaDorrani
      @RezaDorrani  3 года назад

      Most welcome and thanks for watching Sundra.

  • @saireddyaug03
    @saireddyaug03 2 года назад +1

    Thank you Raza for your time and simplifying our work with your useful videos. Regarding 30 days duration, hope this is complete workflow duration (not each approval duration). If this is the case, I have one query on this implementation. If each department takes 10 days (for example) for approval, how the Timeout of 29 Days will work for each department approval since the remaining departments has to approve in remaining 20 days else the flow will be terminated in 20 days even if we set the Timeout of 29 days.
    Appreciate if you can clarify.

    • @RezaDorrani
      @RezaDorrani  2 года назад +1

      Entire flow run is 30 days.
      You can always check state of where the approval process was. Which dept had the task when it timed out. When flow re-starts due to timeout, again assign task to that dept.

  • @karenharrington15
    @karenharrington15 3 года назад +1

    Reza - When retriggering does it retrigger at the approval that has timed out or restart for all approvers?

    • @RezaDorrani
      @RezaDorrani  3 года назад +2

      Restart for all approvers unless you are keeping a track of who approved. I have a video on dynamic approvers wherein I showcase how to check who has taken a decision by querying Dataverse.

  • @bhushy282
    @bhushy282 3 года назад

    Thanks Reza. I have different problem as in I don’t need to start the approval process until a particular date is reached . Currently I am using Delay until functionality but getting a message that max days should be 30 days however business have dates that in some cases are 3 year in advance . Thanks in advance.

    • @RezaDorrani
      @RezaDorrani  3 года назад

      Would recommend running a flow on a daily schedule to check items which have the date reached. Then create an approval task for those items using start an approval action.

  • @vatsalshah8750
    @vatsalshah8750 3 года назад +1

    Thanks Reza. Does this trick keep the flow history as well, in case it goes beyond 30 days limit? Thanks.

    • @RezaDorrani
      @RezaDorrani  3 года назад +1

      Hi Vatsal, the flow run history would still be 30 day only.

  • @AliG-gt1bj
    @AliG-gt1bj 2 года назад +2

    Hi Reza, thank you for all valuable information you share with us. I also have a question about the approval time out, not sure it was answered in a different video. When the Approval task is created, the person Assigned to the task can respond from the Power Automate website from the Actions Item menu. But when the Flow times out and re-creates the task after restart, the previous task is not removed from the Actions Item list (resulting in duplicate tasks). The system allows you to respond to the timed out task but there will be no outcome because the flow is already failed. When having multiple tasks like these it could get confusing for users on which task to respond. Do you know if there is a way to remove the timed out tasks from the Action Items menu? Thank you!

    • @RezaDorrani
      @RezaDorrani  2 года назад +1

      Currently, there is no supported way of removing the old task items.

    • @AliG-gt1bj
      @AliG-gt1bj 2 года назад +1

      Thank you 🙂

  • @silviapau9962
    @silviapau9962 2 года назад +1

    Thank you Reza! What if my WF starts with "For a selected file" trigger block and I should automatically restart the same WF in case it time outs?

    • @RezaDorrani
      @RezaDorrani  2 года назад +1

      For a selected file trigger flows only start when user manually starts wf from a selected file.
      You would need to call another flow (create a secondary flow) to handle the 30 day logic.
      I do not have a video reference on this scenario though.

  • @UNIVFranco
    @UNIVFranco 11 месяцев назад +1

    Very useful video thank you!
    By the way, do you know if there is a way to automatically update an excel spreadsheet whenever an Approval is reassigned? Im trying to get the new approver info and update a row but no success, should be possible with Dataverse afaik

    • @RezaDorrani
      @RezaDorrani  11 месяцев назад

      I believe the only option would be to query Dataverse approval tables to get the information. I do not have any video references on this scenario and have not tried it.
      I will recommend checking or posting your query on forums in case someone has done something similar
      powerusers.microsoft.com

  • @mohandar
    @mohandar 2 года назад +1

    Hi Raza, Thanks for sharing this video of extending timeout but my situation is little different. I have multi user concurrent approval sent to committee members (10 or more user in Committee)and everyone must approve. Currently I am facing issue if 9 of 10 has approve and one of the user did not took action timely or missed the timeline for approval, if we retrigger the approval it will send to approval request again to all 10 user .
    I would Appreciate if you can make a video to avoid this situation and send approval to the user who did not took action timely. currently I am sending email to Project leader who reach out member and get email approval but wanted to do this as automated process.

    • @RezaDorrani
      @RezaDorrani  2 года назад +1

      You can query dataverse to check which approvers have not responded and accordingly reassign the task if timed out.
      I have a full playlist of approvals. One of them showcases querying dataverse (requires elevated privileges) to check which users have not responded to send them reminder emails.
      You will have to mix both those concepts to get it working.
      ruclips.net/p/PLTyFh-qDKAiFUGTtwSwFT79Y7_jq_Aipe

  • @shannonp3mo169
    @shannonp3mo169 2 года назад

    Thanks for all your videos. They are very helpful. I have a question though, how can I reorder the cases under the switch? I need to insert 2 additional cases, one at the beginning of the switch and one before another case? Thanks in advance for your help

    • @RezaDorrani
      @RezaDorrani  2 года назад

      The order logic is driven based on the variable set inside the case statements. The variable is what drives which case is selected next.

    • @shannonp3mo169
      @shannonp3mo169 2 года назад +1

      @@RezaDorrani Thankyou, good to know

  • @davidvansickle6610
    @davidvansickle6610 3 года назад +1

    Reza, really helpful. Any chance your example will be available as either a template (in the future) or on GitHub to allow for an import and further customization?

    • @RezaDorrani
      @RezaDorrani  3 года назад

      Hi David,
      The example uses SharePoint as a data source but no reason why I cannot share the template of the list and the flow.
      I like the idea of sharing it on GitHub.
      Once I share this (will do after thanksgiving), I will post about it on twitter at @rezadorrani so follow me for updates :)

    • @davidvansickle6610
      @davidvansickle6610 3 года назад +1

      @@RezaDorrani thank you!

    • @vigneshsubramanianvs
      @vigneshsubramanianvs 3 года назад

      @@RezaDorrani Hello Reza, thank you for the video!
      did you get a chance to upload this as a template in GitHub?

    • @RezaDorrani
      @RezaDorrani  3 года назад +3

      @@vigneshsubramanianvs Here you go github.com/rdorrani/Microsoft-Flow/blob/master/ContractsManagementApprovalFlow_20210407173504.zip

  • @michael498176
    @michael498176 10 месяцев назад +1

    Great tutorial, Reza! I am facing a problem that the previous timed-out request cards on Teams still display their status as “Requested”, which can cause confusion. Is it possible to mark these previous request cards status to “Cancelled” via the flow instead of manual? Thank you in advance!

    • @RezaDorrani
      @RezaDorrani  10 месяцев назад

      The teams card requests cannot be canceled via any out of the box options.
      There would probably be a way of querying underlying dataverse (premium license) tables for approvals in order to cancel those. I have not explored this area though.

    • @michael498176
      @michael498176 10 месяцев назад +1

      @@RezaDorrani Thank you so much for your reply, Reza!

  • @sunithanettem8463
    @sunithanettem8463 2 года назад +1

    Hi Reza... Thank you for the video..... For me the flow was coming till termintae but again it is not retriggeeing the flow... I have added the trigger in the item created... Time out also and configure run after... Is there anything to be done... Please help me with your valuable. Suggestions

    • @RezaDorrani
      @RezaDorrani  2 года назад

      I will have to look at your flow in action to provide any guidance. I would recommend you post your issue/query with screenshots on the forums at powerusers.microsoft.com

  • @vidanaweer1662
    @vidanaweer1662 2 года назад +1

    Hi Reza, Thank you very much for sharing this video. Really helpful and life-saving video. I built this nad perfectly working. But, I m getting an error if a user approves the workflow exactly the same time the first time the flow is finished and about to start the second iteration. Error is "There's an error in your flow preventing the creation of Approvals" on Wait for an approval and I m getting Null value for OutPut body Responses for Approval responses selection. Many thannks if you can help me on this.

    • @RezaDorrani
      @RezaDorrani  2 года назад

      I will have to look at your flow in action to know about the cause of your issue. I would recommend posting your issue/query with screenshots on the forums at powerusers.microsoft.com

  • @ivanzheng8814
    @ivanzheng8814 3 года назад +1

    Very helpful. How about the log history using multiple lines with appended ON?
    Any issue with appended?
    I just don’t understanding when MS retired workflow 2010 and its replacement has the 30 days limit and there is no built in function to make it easy to set it up.

    • @RezaDorrani
      @RezaDorrani  3 года назад

      Yes appended ON works but to see all the data you would need to click on the list item. Also requires versioning to be turned on.
      Another good approach would be to maintain the history in a seperate list. Could be useful for reporting purposes.

    • @ivanzheng8814
      @ivanzheng8814 3 года назад +2

      I think if there are multiple approvers and all must response then if one failed to do so within 30 days limits then everyone must re-approve again.
      Also why The heck MS use markdown for approval email, so many limitations.
      /Rant

    • @RezaDorrani
      @RezaDorrani  3 года назад

      @@ivanzheng8814 Most of these limitations are user voice items and hopefully coming soon in future

  • @ankitgarg6976
    @ankitgarg6976 2 года назад

    Hi Reza, why we need to update the status in SP as first step inside case - "Pending Department View" because "Pending Department Review" is the default value when item is created in SharePoint.

    • @RezaDorrani
      @RezaDorrani  2 года назад

      I do not remember :) If its default then not needed.

  • @pvsrk92
    @pvsrk92 3 года назад +3

    Genius..Thanks for this. A small question...Can we try this for multi approvers in single approver process and using CDS which you have explained earlier. Because I need a similar 2010 approval workflow scenario with multiple approvers(parallel) and it need to run many days. But it shouldn't assign task again to those users who already taken action in 1st 29 days.

    • @RezaDorrani
      @RezaDorrani  3 года назад +3

      Great question. Yes, by checking that same approvals responses entity to get names of approvers not responded and then assign task to them.

    • @pvsrk92
      @pvsrk92 3 года назад

      @@RezaDorrani thank you..I will try that...once again thank you so much for the Approval cook book series..👍👍

    • @RezaDorrani
      @RezaDorrani  3 года назад

      @@pvsrk92 Glad you enjoyed the series.

  • @yanaandsophia
    @yanaandsophia 3 года назад +1

    Hi rezza in one case is feasible create multiple approvers? And transfer the approved file to another library?

    • @RezaDorrani
      @RezaDorrani  3 года назад

      Yes possible.
      I have a full playlist on approvals that you can check out here - ruclips.net/p/PLTyFh-qDKAiFUGTtwSwFT79Y7_jq_Aipe

  • @karenharrington15
    @karenharrington15 3 года назад

    Is there a way to apply this type of design for a manually started flow? What would the expression be in the Trigger condition field?

    • @RezaDorrani
      @RezaDorrani  3 года назад +1

      The design is dependent upon the flow triggering itself which cannot take place for a manually triggered flow.
      You will need to think of a different approach for a manually triggered flow. It may include multiple flows.

  • @3itsivaashwini.g.k555
    @3itsivaashwini.g.k555 8 месяцев назад

    Hello Reza,
    Great solution for the timeout issue in the approval action. I have one doubt: once the approval action times out (30 days), it reruns the flow. After it also times out (60 days), it continues to rerun the flow continuously with each timeout of the approval action. Now, my question is, how can I stop this after 90 days? How do I do this?

    • @RezaDorrani
      @RezaDorrani  8 месяцев назад

      You would need to maintain a timeline in a datasource and track against it. If it hits 90 days then do not retrigger.

  • @srinivaschadalavada1167
    @srinivaschadalavada1167 3 года назад +1

    Excellent solution. By the way is there any way to send a single email to the requestor with all the comments of all the approvers in it?

    • @RezaDorrani
      @RezaDorrani  3 года назад

      Yes. In the flow just use the send an email action and include the approval history column as part of the email body.

  • @seen72
    @seen72 Год назад

    Great explanation as always! I have a quite large branching approval flow that also contains try catches throughout, so I don't really want to have to create a parallel branch to make it that much larger. There is only one approval that needs to occur but in order to get around the 30 day limit and push it out to 60, would I be able to simply add another "wait for an approval" in my "try-approval" scope that triggers only if my first "wait for an approval" times out and then update a column in my list to indicate this is the second approval (e.g. Column says "SecondApproval". Then, assuming it does get approved within the 30 days this time, my outcome condition can be an expression asking if that second approval column equals "SecondApproval", input the second approval outcome dynamic content, otherwise input the first approval outcome dynamic content?

    • @RezaDorrani
      @RezaDorrani  Год назад

      Not sure if that would work without trying it out. Key is to ensure the flow ends within 30 days. If you need to extend, you must re-trigger the flow.

    • @seen72
      @seen72 Год назад +1

      @@RezaDorrani cool ok, thanks. I guess it would be re-triggering it, but I'll try it out in my test flow now and see how it goes 👍

    • @seen72
      @seen72 Год назад +1

      It's worked 👍
      Tested as approval 1 & 2 timing out, approval 1 answered, approval 2 answered.

  • @john91nic
    @john91nic Год назад +1

    Very nice. Thank you for the video. How did you manage to format the Multi Line of Text so that the Date and Modified by do not appear ? I am trying this against a SharePoint list.

    • @RezaDorrani
      @RezaDorrani  Год назад

      I have a full playlist on approvals. In most of them I have used multi line text for approval history. Check the playlist.

    • @john91nic
      @john91nic Год назад +1

      @@RezaDorrani Thank you for the quick asnwer, will do. Eventually I noticed that you store the previous value of History Approval, meaning the "Append changes to existing text" is done via Power Automate, not SharePoint itself. Wishing you pleasant holidays ! Ioan

    • @RezaDorrani
      @RezaDorrani  Год назад

      @@john91nic thats the idea - no append changes

  • @coryschwartz
    @coryschwartz Год назад

    1 scenario not mentioned in the video is the "Everyone must approve" in the Approval. How would this work if we need multiple approvers?

    • @RezaDorrani
      @RezaDorrani  Год назад

      I have done multiple videos with approval flows. Check my approval flows playlist

  • @subodhbaid8619
    @subodhbaid8619 Год назад +1

    Hi Reza, fantastic re-engineering solution - I have implemented this recently in a detailed multi-state approval process using a List. However there is one issue that I am unable to get my head around.
    When entries on the List have attachments, and if you modify the attachments whilst the flow is running (e.g. when the Approval request has been sent and is waiting for a response), the same flow seems to go through the process again. (I'm recording the FlowURL and flow status in multi-line fields in the list, which show many entries every time the attachment is auto-saved). Bit tricky to explain in words. Let me know if I can better explain the problem.
    Can you help?

    • @RezaDorrani
      @RezaDorrani  Год назад

      Video idea (trick) is around the StartWF column. Unless set incorrectly, it should not re-trigger.
      I will recommend posting your issue with screenshots on forums at powerusers.microsoft.com/

    • @subodhbaid8619
      @subodhbaid8619 Год назад

      @@RezaDorrani OK. Will do - but this is not really retriggering a new flow as the FlowURL is still the same. The multi-line record just shows many entries - corresponding to every time the attachment is touched or saved - but still showing the same FlowURL, so part of the same flow.

    • @RezaDorrani
      @RezaDorrani  Год назад

      @@subodhbaid8619 Not sure I am understanding. I would recommend posting your issue with screenshots on forums at powerusers.microsoft.com/

  • @giovannediscacciati4018
    @giovannediscacciati4018 Год назад

    Hello Reza! What would happen if the user goes to the first e-mail and click Approve/Reject? Wouldn't it mess everything up? Is there a way to prevent the first email to do anything after the approval has timed out?

    • @RezaDorrani
      @RezaDorrani  Год назад +1

      It wouldn't mess anything, as the response to that email will have no value. The user would get a second approval action (which would be the latest one). Currently, there is no In-Product supported way to cancel an approval action.

  • @jaydeep85
    @jaydeep85 Год назад

    the 30 day period is for 1 level or all the levels combined together, ie total time for approval for all the levels involved in the flow?

    • @RezaDorrani
      @RezaDorrani  Год назад +1

      Its for the entire flow (all levels).

  • @ioannisbelouris1884
    @ioannisbelouris1884 3 года назад +1

    How do you insert the nice icons in the approval history? I though it was text only.

    • @RezaDorrani
      @RezaDorrani  3 года назад +1

      Literally just copy-pasted emojis from the web.

  • @xmarin79
    @xmarin79 10 месяцев назад

    Great tutorial. But what happens if the approver approves the first request?
    I have a case where after the timeout I change the sharepoint status to canceled and the requester needs to send again, but the approval is still pending in Power Automate and it can cause confusion...
    Thanks!

    • @RezaDorrani
      @RezaDorrani  10 месяцев назад +1

      If approver approves the flow moves on and triggers for the next process.
      I have not come across the issue you are mentioning and hence not sure what the fix for your issue is. I recommend posting your issue with screenshots on the forums at powerusers.microsoft.com

  • @vanisharodrigues988
    @vanisharodrigues988 3 года назад +1

    Hello there, great insightful video as always. Had a doubt tho, my data is coming from forms and so where do I put the trigger option in there as all the data is being saved into SharePoint, with use of create item and hence have no where to put the trigger

    • @RezaDorrani
      @RezaDorrani  3 года назад +1

      This video leverages SharePoint as a data source. In MS Forms, there is currently no option for trigger conditions. You would have to let your flow create item in SharePoint from MS Form and then build another flow which runs when item is created in SharePoint.

    • @vanisharodrigues988
      @vanisharodrigues988 3 года назад +1

      @@RezaDorrani Thank you for the information.

    • @vanisharodrigues988
      @vanisharodrigues988 3 года назад

      @@RezaDorrani After we retrigger the flow what do we do incase of changing the approver to someone else as in forwarding the approval case to higher management along with the same flow run.

    • @RezaDorrani
      @RezaDorrani  3 года назад

      @@vanisharodrigues988 You would need to add that logic in your flow. Check status of the item and accordingly assign the approver.

  • @PsYc87
    @PsYc87 8 месяцев назад +1

    Hi Reza,
    Thanks for this video. Is it possible to get response comments across switch cases? If so, how would I do this?

    • @RezaDorrani
      @RezaDorrani  8 месяцев назад +1

      By storing data in a variable.

    • @PsYc87
      @PsYc87 8 месяцев назад +1

      @@RezaDorrani I appreciate your quick response. I will attempt this. Thank you

  • @umarbutt302
    @umarbutt302 10 месяцев назад +1

    Hi reza,
    I was wondering approval history can be edited by anyone who has edit rights for their step of the approval flow. How can we prevent this? I have stopped quick edit. However I can't remove this from the normal entry area since if the approval history is long we have to open the item to check the history

    • @RezaDorrani
      @RezaDorrani  10 месяцев назад +1

      You could save approval history in a separate list where you can set read permissions for users.

  • @sohananahid5302
    @sohananahid5302 2 месяца назад +1

    Hi Reza- thanks for this great video. I used it to my current use case. I have 5/6 approvers to send notification for approval for a new proposal. 1 ask is now: if there is a way to delete old "timed out" approval notice(s) in Teams and Email to avoid an approver taking action on the old "timed out" notice(s)? Best Regards, Nahid

    • @RezaDorrani
      @RezaDorrani  2 месяца назад

      Most welcome!
      Unfortunately there is no option to do that other than updating approval dataverse tables which would require premium licenses.

  • @ankitpandey7533
    @ankitpandey7533 3 года назад

    Hi Reze,
    Thanks for the video.
    What if i have multiple approvers, in that case out of 3 approver only 2 approvers approve the request and it is timeout for 3 approver.
    How we can identify who have not approved the request ? Any Suggestion.
    I don't want to use CDS connector

    • @RezaDorrani
      @RezaDorrani  3 года назад +1

      You would have to since all approvals information is stored in CDS.

    • @ankitpandey7533
      @ankitpandey7533 3 года назад

      @@RezaDorrani thanks for your reply.

  • @shannonp3mo169
    @shannonp3mo169 2 года назад

    Hi Reza,
    Your videos have been extremely helpful.
    I have been copying the logic from this video for a workflow I need to create. However, I am getting a Trigger error:
    InvalidTemplate. Unable to process template language expressions for trigger 'When_an_item_is_created_or_modified' at line '1' and column '59751': 'The template function 'triggerBod' is not defined or not valid.'.
    I can only think it might be related to the trigger condition @not(equals(triggerBod()?['StartWF'],'No'))
    Do you have any recommendations on how I can resolve this?

    • @RezaDorrani
      @RezaDorrani  2 года назад

      Bod sounds nice but it should be Body :)

    • @shannonp3mo169
      @shannonp3mo169 2 года назад +1

      @@RezaDorrani Thanks Reza, you're a genius!

    • @RezaDorrani
      @RezaDorrani  2 года назад

      @@shannonp3mo169 Your most welcome!

  • @ioannisbelouris1884
    @ioannisbelouris1884 3 года назад +1

    Thank you for your video. I have created a very complicates state machine that frequently timesouts and you have given me a lot of ideas. One question though: Suppose we execute this flow. And the first approval action Department Review takes 28 days to successfully complete. Then the flow will go to the second part, the legal review. If the legal departement takes more than 2 days, then the flow will timeout. not just the approval, but the total flow. So the 30 days limit is for the whole apporval flow not just the individual approval processes

    • @RezaDorrani
      @RezaDorrani  3 года назад +2

      The 30 day limit is for the entire flow run duration. So if I have multiple approval actions in a flow, then all actions for that flow run have to complete within 30 days.
      With the technique showcased in the video, after every approval action the flow run completes and it triggers another flow run. So basically each approval action gets 30 days & there is also logi to check for 30 day timeout and restart the approval action.

    • @ioannisbelouris1884
      @ioannisbelouris1884 3 года назад +1

      @@RezaDorrani Indeed, you are right. For me the breakthrough idea was the when created or modified trigger. Brilliant. I am re-writing my flow now. Only hope that I am under 25 switch cases

    • @RezaDorrani
      @RezaDorrani  3 года назад +1

      @@ioannisbelouris1884 That seems quite a complex flow with 25 cases.

    • @ioannisbelouris1884
      @ioannisbelouris1884 3 года назад +1

      @@RezaDorrani Since I Am rebuilding it, I will re-think it completely

    • @RezaDorrani
      @RezaDorrani  3 года назад

      @@ioannisbelouris1884 Best of luck!

  • @allenreid8267
    @allenreid8267 2 года назад

    how do you create the green ticks and red crosses for approvals and rejection?

    • @RezaDorrani
      @RezaDorrani  2 года назад

      Those are emojis
      Use Windows + . On your keyboard to launch the emoji panel or just copy paste emojis from the web

  • @kumnegerholdings
    @kumnegerholdings Год назад

    Hi Reza, what happens to the approval links previously created (the ones before the approver takes an action)? When I test this, all approval links are active and user can take decisions as many times the the approval branch generated an approval link. Is there any way to make these links expire or time out?

    • @RezaDorrani
      @RezaDorrani  Год назад +1

      Currently, there is no in-product option to cancel approval requests. They will continue to be active (in emails), however any decision taken will have no bearing on the output.

  • @omprasaddehury2109
    @omprasaddehury2109 2 года назад

    Hi ,
    Can I implement this process in case of a list. If so what trigger I should use?

    • @RezaDorrani
      @RezaDorrani  2 года назад

      When an item is created trigger

  • @ankitgarg6976
    @ankitgarg6976 2 года назад

    Hi Reza, what is the best way to track in power automate, if the approval workflow is cancelled by Admin, I am using approval step outcome variable if its empty, then assuming its as cancel (in case of approve/reject it always return value), is my understanding correct ?

    • @RezaDorrani
      @RezaDorrani  2 года назад

      Note sure about that one. I will recommend checking on the forums at powerusers.microsoft.com/ in case someone has done something similar.

  • @sudosaurus
    @sudosaurus 2 года назад

    Hi Reza, is this the reason why one of our users is getting this message when viewing approval items in either Outlook Desktop or Web: "Failed to validate the signature of the actionable message card" - is that because the flow has gone beyond 30 days and has timed out? Thanks.

    • @RezaDorrani
      @RezaDorrani  2 года назад

      Seems to be something related to version of Outlook they are using. I believe somewhere in MSFT documentation, the actionable messaging supported outlook versions is mentioned. You may need to look that up and confirm.

  • @snehabirajdar9432
    @snehabirajdar9432 3 года назад +1

    Excellent video, Please assist me that how can we check whether the 0365 user is a valid user account. if user has left the company.or how to track active and inactive user in the flow using list

    • @RezaDorrani
      @RezaDorrani  3 года назад

      Check powerusers.microsoft.com/t5/Using-Flows/how-can-we-check-whether-the-0365-user-is-a-valid-user-account/td-p/112873

    • @snehabirajdar9432
      @snehabirajdar9432 3 года назад +1

      @@RezaDorrani Yes, did thanks for sharing

  • @taninkisailakshmi7625
    @taninkisailakshmi7625 Год назад

    Hi Reza,
    If we have multiple approvers, then how do we need to trigger the same flow.
    Already approved approvers should not get the notification right...
    Thanks
    Sai

    • @RezaDorrani
      @RezaDorrani  Год назад

      You will need to keep track of users who approved. If using single approval action with multiple approvers, then you would need to run parallel branch to query Dataverse to get that info. It would be complex. I have done 17 approval videos with various patterns. They are all in my Approval playlist.

  • @constantinrusencu3534
    @constantinrusencu3534 3 года назад

    What happens if the departmental review takes 20 days and the legal review 20 days? Will the flow timeout before legal approves?

    • @RezaDorrani
      @RezaDorrani  3 года назад +1

      The flow only times out if any of the approval actions take more than 29 days. If legal or dept review complete before the timeout the flow will complete and re-trigger and move to the next process.

  • @geethanjali.c.gowda1037
    @geethanjali.c.gowda1037 2 года назад

    Hi Reza,
    Can you show custom response approval tutorials,
    Which should have Approve, Reject and Need more info, When need more info is by Approver then it should go to the Creator of the request then he should give the proper info and the same needs to send back to Approver with the info provided by the Creator to the approver with Approval process.

    • @RezaDorrani
      @RezaDorrani  2 года назад

      Kind of covered it here ruclips.net/video/5Mypn4oCJdw/видео.html

  • @karolmalicki7590
    @karolmalicki7590 Год назад

    Hi Reza, great video thank you. I have a question: How to make the flow record all timeouts from case 1 e.g.
    Approval timed out for department reviewer 1
    Approval timed out for department reviewer 2
    Approval timed out for department reviewer 3
    ...
    Because at the moment the Update item action overwrites my text in the multiline text column instead of adding them.

    • @RezaDorrani
      @RezaDorrani  Год назад

      Before updating item, you should read current value in multi line text column, append it to new value and then update.

    • @karolmalicki7590
      @karolmalicki7590 Год назад

      @@RezaDorrani thx but I have another problem. I have a Sharepoint list where I perform similar actions as you. But I'm having some problems because when I start the workflow, it runs for about 30 seconds and then restarts (duplicate?) even though I've set PT2M in the approval action settings. When I add a new item to the list, the "Status" field is populated with the default value "Pending Department Reviewier" and this is my trigger for the first CASE

    • @RezaDorrani
      @RezaDorrani  Год назад +1

      @@karolmalicki7590 I will have to look at your flow in action to know the reason of your issue. I will recommend posting your issue with screenshots on the forums at powerusers.microsoft.com

  • @brettgovernanti
    @brettgovernanti 3 года назад

    Reza, hi hope you are well. I have a question for you. I've got 4 parallel conditions for 4 different departments that each will fire if they are submitted as included from the PowerApp form acting as trigger to my Flow. This works great when all 4 departments are included. However, when only 1 department is included, sometimes Power Automate fails with a save error "Save Conflict... Changes conflict with those made concurrently by another user..." but sometimes it goes through just fine, I think when more than 1 department is included. I am struggling to resolve this issue so I have a stable solution to share. Each of the conditions has an Update SharePoint List item to write to fields for each department, if they are included. If a department is not included the Update SharePoint List item will write "NA" into that department's fields. This is fine for the included department, however, the save error seems to come up because the fields for the other departments that are blank come through in payload as False. When it overwrites the third department's False fields, it causes the save error of conflicting concurrent edits. Do you have any ideas offhand how I might go about getting around this error? Perhaps I can add a delay to each parallel condition so they aren't writing to the list at the same time? Or perhaps there a way to make blank fields in the Update SharePoint List item not come through as false on run? Any help or hints are greatly appreciated. Best, Brett

    • @brettgovernanti
      @brettgovernanti 3 года назад +1

      I think I got it. Added a Delay Until before each not included condition to give each some extra time to write values, rather than risking them writing at the same time. I tested a bunch and it appears to work!

    • @RezaDorrani
      @RezaDorrani  3 года назад +1

      Looks like you got the solution :)

    • @RezaDorrani
      @RezaDorrani  3 года назад +1

      Nice

  • @baldaniyahenik
    @baldaniyahenik 3 года назад

    Is there any way(trick / bypass) to add 2 attachment control in Customize Edit/View Form?. As i have 2 different role, who want to upload multiple files in attachment control in Edit mode form & other are able to view all files attached in both different control in View mode.

    • @RezaDorrani
      @RezaDorrani  3 года назад

      If you have 2 different roles, one to add attachments and one for view only. Then you can set the display mode property of the attachment card to view only or edit based on which role logged in user belongs to

  • @4rpa39
    @4rpa39 3 года назад

    Can we pull API data ?
    Send/Request HTTP ?
    Convert this DATA into Adaptive cards

    • @RezaDorrani
      @RezaDorrani  3 года назад +1

      Can we pull API data ? Yes, using http action. You can also create custom connectors.
      Send/Request HTTP ? Yes, using http action. You can also create custom connectors.
      Convert this DATA into Adaptive cards? Yes, geenrate adaptive cards and post it to Teams.

  • @guycarnegie7411
    @guycarnegie7411 4 месяца назад

    Hi Reza. Great tutorial but how can I prevent the flow running if someone makes a change to ANOTHER field of the list item, after we have set StartWF to YES to restart the flow, while it is waiting for an approval?
    StartWF = Yes
    Modified Column STATUS
    I can no longer use condition HASCOLUMNCHANGED STATUS=TRUE before the SWITCH because if we are repeating the flow then the STATUS column will not have changed, and so we will be pushed into the SWITCH CASE for every user change whether STATUS or any other.
    I wonder if instead of Yes/No for StartWF, we have an incrementing integer, and we rerun only if either that integer has changed and is nonzero, or the STATUS has changed? Then reset the integer to zero instead of setting StartWF to No.
    Any suggestions would be appreciated.

    • @RezaDorrani
      @RezaDorrani  4 месяца назад

      I would have to try it out to provide guidance. I recommend checking or posting your query on the forums at powerusers.microsoft.com/ in case someone has done something similar.

    • @guycarnegie7411
      @guycarnegie7411 4 месяца назад

      @@RezaDorrani Thanks Reza. I think I have it but will need to test.
      StartWF is Integer instead of String
      Trigger Condition only runs when StartWF is not zero.
      > Progressing STATUS does not change StartWF
      > Restarting Flow INCREMENTS StartWF by 1.
      > Terminating on REJECT resets StartWF to zero.
      So if the flow is in "repeat mode" due to timeout, then StartWF will be a number larger than zero - depending how many times it has repeated - but switch will only run if HASCOLUMNCHANGED STATUS or StartWF has changed.

  • @sriharshitha9794
    @sriharshitha9794 3 года назад

    Hey Reza,
    How to do this condition for a "For a selected file" trigger?

    • @RezaDorrani
      @RezaDorrani  3 года назад

      Selected file is a manual trigger. This technique works best with automated triggers.
      In case of selected file, you would probably need to build another flow to handle the re-trigger of the flow when it timesout.

  • @umarbutt302
    @umarbutt302 10 месяцев назад

    Hi raza since you said each step is now a completely different flow if the
    Legal team takes two days to appove then the flow will get retriggered once they approve the next step will be a completely new flow so the next approval should get complete 29 days. Pl correct me if my understanding is correct?

    • @RezaDorrani
      @RezaDorrani  10 месяцев назад

      Its been a while since I did this but from what I remember yes.
      Best to test it out and see if new flow triggers.

  • @karenlacey8049
    @karenlacey8049 Год назад +1

    Hi Reza, thank you for a great video. I have the same scenario, an approval process that takes longer than 30 days. So if the approval task is sent again on day 29, does this mean the ENTIRE flow is kept running beyond 30 days? The legal dept are approving in the middle of the process, once they action it then moves on to another dept. So if legal take 29 days, a new approval task is triggered, if they approve that approval task on day 2 does that mean the rest of my flow has 27 days to complete?

    • @RezaDorrani
      @RezaDorrani  Год назад

      That is right. Rest of flow will have 27 days to complete.

    • @karenlacey8049
      @karenlacey8049 Год назад

      @@RezaDorrani Hi Reza, instead of having 1 flow for the business process can I create a solution then within that have separate flows for each part of the business process? I would have the status written back to a list. E.g. Flow 1 approve within 7 days --> status changes from In Progress to Approved. Flow 2 which is for the legal team. only kicks off when status = Approved. It runs for 30 days, however it times out so the status is Timed Out. Instead of looping to start Flow 2 again, it moves on to Flow 3 which runs if status = Timed out. This way I have given this part of the process 60 days to complete their tasks. Does that make sense?

    • @RezaDorrani
      @RezaDorrani  Год назад

      @@karenlacey8049 Not sure. I would recommend to post your query on the forums at powerusers.microsoft.com/

    • @umarbutt302
      @umarbutt302 10 месяцев назад +1

      Hi raza since you said each step is now a completely different flow if the
      Legal team takes two days to appove then the flow will get retriggered once they approve the next step will be a completely new flow so the next approval should get complete 29 days. Pl correct me if my understanding is correct?