I need to handle a scenario where a Sales Rep will raise a case for service activation for a customer. Such a case will have the following steps -
Team A will validate the details and then pass on to Team B for the actual activation. SLA for Team A = X
Team B will activate the service in an external system, and update an activation ID in SF. SLA for Team B = Y
Team C to call and communicate activation to the customer. SLA for Team C = Z
Now there will be many case types like this, each having a different mix of teams and SLA's and even associated Work Orders in some scenarios. A key requirement is to be able to track the overall request SLA and team wise SLA.
What will be the most scaleable way to handle this in salesforce?
Option 1 :
Have a Parent Case for Service Activation and have team specific sub-cases under the parent case umbrella. This would allow for future flexibility, if any team wants to further expand on their individual processes.
The Parent/Sub Case mapping will be maintained in a custom "Case Rule Engine" that we build using apex and custom objects. The sub cases will also trigger status updates on the parent case via apex and similarly from Parent to Child.
This "Case Rule Engine" may very soon become an apex monstrosity.
Option 2 :
Have a single case represent the request and have different milestones representing the work to be done by different teams. Whenever a team closes their milestone, use apex to update the case owner to the next team.
This seems to me like a more standard way of doing things and might work well when the case needs to flow sequentially across teams but if teams need to work in parallel might pose a challenge, like who should own the case, what if they overwrite any information etc.
Option 3 :
Have a single case with multiple tasks representing the work to be done by different teams. This does not work for us as the task cannot be assigned using Omni-channel to the available team members. Also SLA tracking might be a pain using tasks.
I want to go with option 2 but just feel that at some point it will become tough to scale or extend. I am sure this is a very common scenario in service cloud and would like to how some of you have handled this in salesforce.