Portable Case System 🎟️💁

I have worked at a few places now where there was no ideal place for accepting and storing issues submitted by users. As well as how to handle project work, and sometimes of course those cases result in project work.

A lot of the time its handled across a few platforms but often that can be a bit messy especially when those platforms do not communicate with each other.

So...I decided to expand on the email to case (or web to case) tools already in salesforce to make my own all in one product just for this purpose.

a case that has become a project

I decided to keep it simple as that's all it needs to be...so cases enter the system and are closed along a simple path

New > Working > Escalated* > Converted to Project || Closed Resolved

So on closing of a case we can either 'just close it' or 'convert it to a project' which counts as closed as well but also creates and links the case to a 'Project' record - which should then also contain a number of 'Project Tasks' which represent the areas or pieces of work to be delivered. These can then be assigned to separate people to work on.

the main project record

The project follows a pretty standard path again and is kept as simple as possible while retaining as much useful information as possible.

The project also has two record types which allow for the project to have a separate definition and development phase;

Definition - For Review > Awaiting all Requirements > Awaiting all Tasks Added > Awaiting Scheduling > Scheduled  
Development - In Development > Development Paused > QA  > UAT > Passed Testing > Ready to Deploy > Deploying > Deployed

The project tasks can also be sized and total sizing is maintained on the main project. To keep sizing standardised a set amount of time per task is available to select from (picklist). These selections are then converted to hours eg 1h = 1 1d = 8

This number amount is then rolled up to the project but not directly displayed. Instead, a formula field displays the total duration in a friendly format.

To do this, enter your fixed set of sizes for time, and then convert these to minutes using a CASE() formula; roll that up to the project level. Then using this formula and the standard roll-up field you can convert it to the easy read format (text).

IF(
Total_Project_Time_hrs__c = 8, "1 Day 00 Hrs",

IF(
Total_Project_Time_hrs__c > 8, LEFT(TEXT(Total_Project_Time_hrs__c / 8),FIND(".",TEXT(Total_Project_Time_hrs__c / 8))-1) + " Days "+TEXT(MOD(Total_Project_Time_hrs__c,8))+" Hrs",

IF(
Total_Project_Time_hrs__c < 8,"00 Day "+TEXT(Total_Project_Time_hrs__c)+" Hrs",""

)
)
)

And not forgetting the tasks themselves...

I used these progress options in the task itself;

If you would like to use this tool you can get it from my package link here

https://login.salesforce.com/packaging/installPackage.apexp?p0=04t4I000000tFZ6&isdtp=p1

(Please note that this package will also install my time logging tool (which you can manually remove after install if you wish; more about that in my next post) - also ensure your email deliverability is set to 'All Email' and Email-to-Case is turned on before you install this package otherwise it will fail to install!)

👋