Category Archives: We Did

Salesforce For Automated Energy Savings Certificate (ESC) Calculations


The lighting company has affiliation with IPART as they need to refer and conform to the required standards. IPART has a specific formula for the Energy Savings Scheme (ESS) to calculate Energy Savings Certificates (ESC). Hence, the lighting company needs to capture the baseline lighting system (current) and compare it with the upgraded lighting system (proposed). The current calculation is done using excel and it poses the following challenges:

  1. the calculation is not accurate because not all scenarios are considered
  2. not extensible
  3. difficult to track the itemised calculations


A new data model design is created to identify the stages of information capturing. Once these stages are identified, subsequent implementations are put into place according to the stages:

  1. Capture current and new lighting system in Salesforce
  2. Calculate saved MWH and ESC
  3. Calculate the estimated ESC money value and prepare a ROI report to end customer in quote
  4. Allow report generation based on the different stages
  5. Extend the data model design to cater for internal/IPART changes (e.g. formula, additional lighting products)


Related Objects Opportunity, Quote, Custom Object
Components Apex Class, Apex Trigger, Visualforce Page, Data Model Design
Complexity Complex

Salesforce: License Key Automation


User have to manually assign license keys to the related software in Opportunity Line Item whenever the opportunities are closed as won.

The process involve users going in to the license keys object and look for the available license key. They have to manually populate the software info into the assigned license key records as well.


Create a trigger that allows users to assign license key to the related software automatically by a button click. The solution covers:

  1. Listing out the software in Opportunity Line Item that will go through the license key assignment process. From the list, users have options to proceed or cancel.
  2. If proceed, the license key assignment process will start.
  3. In the assignment process, the trigger will search for the “Available” license key based on the type and version of the software. Once the list of available license keys have been found, one license key will be selected and assigned to the software. The software details will be populated into the assigned license key and the status of the licensed key will be set as “Not Available”.
Related Objects Opportunity and Custom Object
Components Apex Trigger, Visualforce
Complexity Complex

Salesforce and Labnet Integration


Daily dental cases are created and tracked within Labnet. These cases contain information pertaining to manufactured and delivery dates where the clients are most concerned. However, the cases need to be replicated into Salesforce to facilitate the communication with the clients.
In addition, Salesforce is the opted tool to perform data analysis, hence, all information related to the cases further justify the need to have the information replicated.



Purpose To synchronise account, workcode, case information between Labnet and Salesforce.
Applications Salesforce
Versions Salesforce
Labnet 10.5.11
Tool Talend
Information Labnet Dental Information > Salesforce Person Account
Labnet Product > Salesforce Product
Labnet Cases > Salesforce Opportunity
Data Formats XML/Database
Volumes ~50/day
Process When an account is created or updated in Labnet, it will be synchronised into Salesforce as Person Account.
When workcode is created or updated in Labnet, it will be synchronised into Salesforce as Product.
When a case is created/invoiced in, Salesforce prospecting/closed won opportunity is created.
Schedule Daily
Complexity Medium


Salesforce: Convert All Duplicate Leads


Most Salesforce has more than one channel where Lead can be created. That is why it is common to have duplicate leads. You can use the “Find Duplicate” button but you will need to click on each record one by one.


Determine a common pattern to recognise duplicate lead. For example: Email address. Create a trigger that does the following:

  1. A Lead is converted to an Account and a Contact
  2. The trigger can then search the Lead database for other records that share the same email address
  3. Convert all the duplicate leads and merge them into the Converted Account and Contact
Related Objects Lead
Components Apex Trigger
Complexity Medium

Salesforce Automating Record Sharing Based On Dynamic User Field Value


Case sharing rules is set to private. Customer would like to share it to specific users based on a User Lookup field.


Create a trigger that automatically add the User into CaseShare (Manual Sharing Rules). The solution must also cover the following scenarios:

  1. When the User Lookup field is changed from Fred to John, make sure that you will add John and remove Fred.
  2. If the User Lookup field is the same user as the Case Owner, don’t add him/her into CaseShare. You will get an error.
  3. If the User Lookup field is pointing to an Inactive User, don’t add him/her into CaseShare. You will get an error.
Related Objects Case Objects
Components Apex Trigger
Complexity Medium

Salesforce Partner Community to Manage Resellers


The resellers of the business organisation are currently using the following model to track the inventory and price of the products.

Business organisation <- sends/retrieves inventory spreadsheet -> Reseller 1
Business organisation <- sends/retrieves inventory spreadsheet -> Reseller 2
Business organisation <- sends/retrieves inventory spreadsheet -> Reseller 3

This model is manual and it is difficult to keep track of multiple version of spreadsheet for multiple resellers.


Design a new data model in Salesforce to keep track of:

  • Purchase Order (and keep track of status)
  • Inventory (Alert reseller and principal when stock volume is low)
  • Stock usage

Once the data model is finalised and the correct permission scheme is set, enable the Partner Community function to allow Resellers to login to view/modify their own records.

Related Objects Opportunity, Account, Contact, Custom Objects
  • Partner Community
  • Workflow
  • Custom Object/Fields
  • Validation Rules
Complexity Low

Salesforce Partner Community For Mentoring Program


Mentoring program widely connects the community of people to different organisations including the non-profit organisations. Salesforce is a common tool for many organisations setting up the mentoring program for the purpose of:

  1. the mentors to introduce mentees into a program
  2. creation of job and course placements
  3. search of job and course placements
  4. strengthen the community from different locations
  5. collaboration among the mentors and mentees


  • Partner community has been enabled to allow mentor/mentee to collaborate
  • Mentor shares opportunities via chatter
  • Data model design to track records for: mentor, mentee, course and job placement, pathway
  • Mentors to match track record of the mentees’ pathway to the appropriate placement
  • Configure records for restricted accessibility


Related Objects Account, Contact, Opportunity, Custom Object
  • Partner community
  • Chatter
  • Data model design
Complexity Medium

Salesforce as a Knowledge Base System


Gathering knowledge from different team (i.e. the support team, product management team, etc.) is a hassle especially all the information is stored in separate system. Having one system to keep record of all the Q&A and product information would be a lot easier.

Customer would also like to enable public access of some published articles.


Related Objects Articles
  • Visualforce page
  • Salesforce Knowledge
  • Sites
Complexity Low