Have you ever tried to fit a square peg in a round hole? In consulting, this is standard request. I recently worked with a strategic buying organization that had just this type of request regarding an interesting process implementation on Salesforce.com’s Sales Cloud.
The requirements included supporting both a buy side and sell side process for the client’s deals, including tracking all stages in each process with reportable time stamps for the different stages. The solution’s hole edges became slightly pointed when users needed to be able to see all companies associated with a project as well as all the projects associated with a company. Then when viewing an Opportunity within a project, it needed to be connected to the project and the company. Oh, and companies could be part of both processes at the same time.
Our client basically needed a circular reference between three objects that were loosely coupled. The proverbial hole was officially square. We looked further into what could help us create the references needed. For example, in Salesforce.com a direct reference exists between an Opportunity and an Account. You can see Opportunities from Accounts and an Account is a required field in order to have an Opportunity. The issue we faced was the absence of a direct reference to something that could be utilized as a project. A project was in essence a “deal” and the reason for the client’s sales process. Account would be used for company, but an account could only be a one to many reference with the use of Record Type. A company was required to have the ability to partake in both buy and sell side processes. A project however, would only ever be on the buy side or sell side and could be a one to many reference that would dictate what type of deal the account belonged to, therefore Record Type for a project would work. Perhaps we could use the Product object as a Project and create an indirect reference. This client would never be using the standard Product object in the traditional sense based on the nature of its business so it was a viable option.
Use Product as a Project. To simplify everything for our client we changed all “Product” labels and tabs to “Project”. Moving forward I will refer to Products as Projects. A user could create a Project then use Opportunity to link companies through the Account to that Project. Companies could be part of both processes and stages could be reported on with date fields. We created three record types on both Opportunity and Project to maintain standard functionality as well as implement the buy-side and sell-side sales processes. Then using Layout, Record Type, Sales Process and date fields within Opportunity we would capture the stages each process per record type and fulfill the reporting requirement. Custom code would be used to create a related list and in essence create the indirect reference between Opportunity and Project needed.
Here is an overview of the process for complete view post implementation. A user first create a company in Account. The next step would be to create a Project and select the Project Record Type based on process. Once a Project was created, a user clicks the “Add Opportunity” button from the Project record page layout. An Opportunity with the corresponding record label type to the project is created. Project and Opportunity becomes linked through a related list created from custom code. In Opportunity the user adds a company into the required Account field. The Opportunity a label is created as “Project Name : Company Name” manually by the user, allowing for list views to be created based on a project and visibility for both the company and Project within objects, required fields are filled and save is clicked. The user now has a 360 degree view of all three objects in each of the object’s records related.
Wrapping up, we created two separate processes using Record Type and linked them. Standard object functionality within Salesforce.com was maintained and we created a circular reference between Project, Opportunity, and Accounts. The client was happy and the square peg fit in the round hole with a bit of epoxy to fill it out!
For more information, please feel free to contact Meg at MDiGregory@mycervello.com.
(Photo Credit: danstorey14)