Best Practice for Implementing "Rollback to Fulfillment" in Flow Designer After Resolution Rejection

nvrdinesh
Tera Contributor

Hi everyone,

I'm currently migrating a catalog item workflow to Flow Designer and need some guidance on the best way to implement a "rollback to fulfillment" scenario.

Here’s the use case:

  • After task completion, the RITM is marked as resolved.
  • A user acceptance step follows, where the user can either accept or reject the resolution.
  • If the user rejects the resolution, I want to:
    1. Set the RITM stage back to Fulfillment.
    2. Clear fields like close_notes and assigned_to.
    3. Recreate the task to continue fulfillment.

Since Flow Designer doesn’t support traditional looping, I’m considering using a subflow to modularize the task creation logic and call it again after resetting the RITM.

Has anyone implemented a similar rollback pattern in Flow Designer?
Is using a subflow the best approach here, or are there better alternatives for re-entering a previous stage in the process?

Any insights, examples, or best practices would be greatly appreciated!

1 ACCEPTED SOLUTION

This will work the same as already described 2 weeks ago. You just need to lookup the task that is closed within the subflow and reopen it. And then do everything again, including calling the subflow again at the end, in case it gets reopened again. 


Please mark any helpful or correct solutions as such. That helps others find their solutions.
Mark

View solution in original post

4 REPLIES 4

Mark Manders
Mega Patron

The subflow will give you the possibility to use it in other flows as well, so I would definitely go for that option. In fact: you can add your subflow to your subflow to handle a second, third or 20th rejection. Put a wait on your first flow to wait for a reject or something else (accept/fallback of X time to wait before closure). If reject, start your subflow with the input being your RITM, update the fields, create the task do everything you do for fulfillment and have the wait again. In case of rejection, trigger the subflow again.


Please mark any helpful or correct solutions as such. That helps others find their solutions.
Mark

nvrdinesh
Tera Contributor

Hi Mark and everyone,

Thanks so much for the helpful response!

I’d like to clarify one key point in my use case:
I don’t want to create a new task when rolling back to fulfillment.
Instead, I want to reopen the original sc_task that was previously closed (e.g., in the "Closed Successful" state) and reset its state back to something like "Assigned" so that fulfillment can continue from where it left off.

So the updated rollback logic would be:

  • Set the RITM stage back to Fulfillment.
  • Clear fields like close_notes, assigned_to, etc.
  • Reopen the existing task by updating its state and other relevant fields.

Has anyone implemented this kind of rollback where the original task is reused instead of creating a new one?
Would love to hear if there are best practices or caveats around reopening tasks in this way within Flow Designer.

nvrdinesh
Tera Contributor

Hi Mark and everyone,

Thanks so much for the helpful response, Mark

I’d like to clarify one key point in my use case:
I don’t want to create a new task when rolling back to fulfilment.
Instead, I want to reopen the original sc_task that was previously closed (e.g., in the "Closed Successful" state) and reset its state back to something like "Assigned" so that fulfillment can continue from where it left off.

So the updated rollback logic would be:

Set the RITM stage back to Fulfillment.
Clear fields like close_notes, assigned_to, etc.
Reopen the existing task by updating its state and other relevant fields.
Has anyone implemented this kind of rollback where the original task is reused instead of creating a new one?
Would love to hear if there are best practices or caveats around reopening tasks in this way within Flow Designer.

This will work the same as already described 2 weeks ago. You just need to lookup the task that is closed within the subflow and reopen it. And then do everything again, including calling the subflow again at the end, in case it gets reopened again. 


Please mark any helpful or correct solutions as such. That helps others find their solutions.
Mark