Tag Archives: salesforce objects

Salesforce as a Leave Application System

Applying leave and to get approval from the management may be time consuming and a hassle.

Managing the leave records in one place without needing to fill in hard-copy documents and to automate the approval process without having the user to walk to the management desk to seek for approval would save everyone time. This then would help increase the user’s efficiency to concentrate on the business.

Being a CRM system, Salesforce could also be extended to cater for additional useful apps such as the Leave Application. With that, the users can work on the daily business as well as managing internal processes (i.e. apply leave) quickly.

If you are interested on similar implementation, feel free to check out our recent published case here and contact us for more details.

Salesforce: Retrieving Converted Leads Information

When a lead is converted successfully in Salesforce, you would noticed that you could not access the lead information directly even though you recorded its ID. Example:- https://ap1.salesforce.com/00Q9000000DOG9g

Using the ID method to access the converted lead information would redirect you to a different page than the usual lead record page. i.e.

Rest assured that this does not indicate that the information/lead record is forever deleted from Salesforce. One way to retrieve the converted lead information is through Lead reports.

Alternatively, you could retrieve the converted lead information via API such as exporting the information through a dataloader. The following illustrates CSV content exported from dataloader for a lead object:-

Opportunity, Product and Pricebook. How are they related?

In Saleforce.com, the Opportunity, Product and Pricebook are standard objects. How are they related?

In actual fact, an opportunity has one or more products and vice versa, a product can be prospected in one or more opportunities.

This means, a many-to-many relationship between opportunity and product (please refer to Figure 1).

Next, let’s look at the relation between products and pricebooks. A product may have one or more different sets of pricebook and a pricebook can contain one or more products.

Again, it is a many-to-many relationship model (please refer to Figure 1).

Figure 1

In order to set up these 2 relations in Salesforce, 2 more objects have to be created. These 2 objects will be the junction objects (as listed below):

  • OpportunityLineItem (please refer to Figure 2)
  • PricebookEntry (please refer to Figure 2)

Figure 2


  • Opportunity object stores data of potential sales and pending sales.
  • One opportunity can only have one pricebook.
  • One opportunity can contain one or many line items.


  • Product object is a catalogue of items or services for sales.
  • A product may contain one or more different sets of prices (PriceBookEntry).


  • List of products that link with opportunity containing data on types of products and respective prices.
  • One opportunity line item can only be linked to one opportunity.
  • One opportunity line item can only be linked to one price book entry.


  • PricebookEntry object is a product entry in a pricebook.
  • This object allows products to be linked to standard price book or custom price book.
  • One price book entry is linked to only one product.
  • One price book entry can only appear in one pricebook.
  • One price book entry can be used in multiple line items. This also further creates flexibility for users to set their own prices.


  • Pricebook object store a list of products and services for sale.
  • A pricebook can be used in one or more different opportunities.
  • A pricebook has one or more different price entries.

Salesforce : Person Account for Lead Conversion

By default, the Company field is mandatory in the Lead layout.

You can only make it a non-required field if you have Person Account activated. If Person Account is activated, the conversion behavior will work like this:

If Company field is populated, the conversion form will allow you to create a Business Account and a Contact.

If Company field is not populated, the conversion form will allow you to create a Person Account.

When a Person Account is created, it will also create a Contact record using the same information. Some of the Contact fields will also be available in the Person Account object. For example, the Contact Mailing Address and Contact Other Address.

Salesforce: Customized PDF Quote with e-Signature

Salesforce has an out of the box Quote feature which include allowing users to customize the Quote form template. However, there are some restriction when customizing the Quote form appearance.

More flexibility can be achieved using our custom-made Quote form instead. Following are some of the highlights of our custom-made Quote form:

  • Customizable layout appearance (related fields, images and etc. can be displayed in any position)
  • Signature can be signed on the form electronically via computer, smart phone, tablets, and etc.
  • Quote can be saved as PDF with or without the signature

Example of signing a signature electronically during the Quote creation:

The signature inserted is then included in the PDF sample of our customized Quote:


Integrating to Salesforce

URL www.salesforce.com
Description Cloud CRM
API Yes http://www.salesforce.com/us/developer/docs/api/index.htm
Trial Version with API Access Yes
Protocol SOAP, REST
Data Format XML
Authentication Requires Username, Password and Security Token
API Limits  API requests per 24-hour
Developer Edition:                           5000
Professional and Enterprise Edition: 1,000,000
Unlimited Edition:                            Unlimited
For detailed information: http://ap1.salesforce.com/help/doc/en/integrate_api_rate_limiting.htm
Sample Use Case Salesforce Account > create/update > Netsuite Customer
Salesforce Contact > create/update > Netsuite Contact
Netsuite Product > create/update > Salesforce Product
Salesforce Opportunity > create/update > Netsuite Opportunity
Netsuite Invoice > update > Salesforce Opportunity
 F2I  4.9
 API supported objects   http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_objects_list.htm

Salesforce: Cross Object Page View With Extensible Filters

Salesforce object view allows records to be displayed based on the filter criteria of your choice. And the fields to be filtered are restricted to within its object as such:

There have been requirements that:

  • the filter needs be extended in the manner that it can also filter the fields for other related records
  • records can be mass updated via inline editing
  • records can be sorted

This is mostly implemented between custom objects and occasionally involves records from standard objects. As an illustration of what is required, we will use the Salesforce standard objects as an example.

For a full description, please check out our use case here.

Salesforce: Using Formula to Display Fields from Related Object

Formula can be used to display a field from a related object. Following examples show how it can be done:

1. One level relationship

We have two custom objects with Master-Detail Relationship, Candidate (parent) and Interview (child) and we want to display the Candidate’s Phone value in the Interview record.Here are the steps on how we can do it:
    – In the Interview object, we create a Formula type field called Candidate’s Phone.
      i. In Step 3: Enter Formula section, we choose Advanced Formula.
      ii. Click on the Insert Field button above the Formula Editor box. Select “Interview >”, “Candidate >“, and “Phone“.
Figure 1: Accessing parent field from single level child object
      iii. Click Insert and we will get this expression, ” Candidate__r.Phone__c ” in the editor box.
    – Every time we modify the Phone value in Candidate, the updated value will be reflected in the corresponding interview record as well.


2. Multi-level relationship (two or more related objects)

We will use the same scenario above, with an additional custom object called Session being the child to Interview object. This time, we want to display the Candidate’s Phone value in the Session record as well.
The steps to do this is much similar to the above:
    – In the Session object, we will create a Formula type field called Candidate’s Phone.
      i. In the Step 3: Enter Formula section, we will choose Advanced Formula to write our expression.
      ii. Click on the Insert Field button above the Formula Editor. Select “Session >”, “Interview >”, Candidate >”, and “Phone’.
Figure 2. Accessing parent field from multi-level child object
      iii. Click Insert and we will get this expression, “Interview__r.Candidate__r.Phone__c” in the editor box.
There are some prerequisites to be fulfilled in order to get this working:
  1. This applies only to parent-child relationship object (Lookup Relationship or Master-Detail Relationship).
  2. The formula output data type must be the same as the input type. We will talk more about this in the next section, FAQs.

Some useful FAQs

1. Input and output data type:
We may want to retrieve unique field type like Picklist, Checkbox, etc. We will need to manipulate the output field type.
Here are some suggestion to get the value we want:
– For Picklist field: TEXT(Candidate__r.Location__c)
 – For Checkbox field: IF(Candidate__r.Graduated__c = TRUE, “Yes”, “No”)
2. User profile restriction:
Even the user do not have access to the parent object (ex. Candidate), the field value will still be displayed in the child object.
3. Updating the field in parent object:
The formula field in the child object will be updated automatically whenever there is change to the field in the parent object.