I am trying to determine the best approach for supporting long-running (potentially decades, yes decades) cases.
Use case: Consider a Franchisor / Franchisee relationship. The Franchisor would like to periodically create and track cases related to each Franchisee.
I have chosen to support this by creating a case "Franchisee".
That case has three basic stages:
So as a new franchisee comes on board, they would go through the Create stage, and when that is completed they would reside in the Active stage until such time as their franchise license was revoked. At that point they would move to the Inactive stage and ultimately resolve-complete.
What is the best way to have a case sit in a 'wait state' - allowing someone to open & review it and add sub-cases to it, but then at some point choose to initiate the inactivation stage?
Should I simply create a very high likelihood (e.g. default) flow action that connects back to it's assignment shape, and then a second, lower likelihood one that will ask some information to initiate the Inactivation process? I can use a Validation rule to ensure we don't enter the final stage without some confirmation info being provided.
What you suggested seems fine. While the case is in an open state, do you expect to do much with it? I expect you'd want to report on it, so you may want other flow actions, like update (who the owner is, general manager, address, etc.). Otherwise, there is no fundamental difference between a case open one day and one open one decade.
The one danger with a case living that long would be if you do add many assignments in your flow and then decide to remove them, you will either have to leave them as stubs so that items can move off of them, or make sure there are no open items currently at that assignment. Otherwise, you could run into problems when you do go to open the assignment and find it is no longer there.