Wednesday, 23 November 2011

Creating a unique record on salesforce, duplicate record preventer.

If you were to create a single record in an object on Salesforce, then you can probably use the unique identifier during the creation of the custom field.

But when you have to base uniqueness on more than one field on a record, there is an easy way around this.
For example, you have to base uniqueness on two different custom fields first_name__c and last_name__c

Follow these steps:
1. Try to create a Text field on the object, make it unique.

2. Try to create a work flow every time a record is created or edited in the object

3. Add a field update in your workflow action, 

4. In the field update action you can select the Text field you created and use a formula to concat both the first name and last name. In the formula editor, put in
First_Name__c +Last_Name__c

5. Activate the workflow.

6. Now the system should prevent you from creating a duplicate record based on two fields.

Thursday, 6 October 2011

Multi-Level Master Detail Relationship

A multi-level master-detail relationship can best be explained using this picture below:

In a master detail relationship you can use roll-up summary fields to perform calculations on detail records.
Note: The rollup summary fields work only 1 level deep. (You cannot have roll-up summary fields performing calculation on grand child records)

You can notice the advantages of using a multi-level master-detail relationship when you use reports as well.

What is Data Loader ? And how do I use the command line interface ?

Data loader is a tool which is used to upload records onto Salesforce. If you have to upload less than 50,000 records at a time, you can use the browser to upload records onto 

If you have more than 50,000 records, then you need a tool called Data Loader to upload files onto salesforce.
It is available for both windows and mac. You can download the data loader from here 

Some companies need automation in uploading records onto salesforce. One can achieve that by using the Data Loader using command line interface.

How do I get started on Apex and Visualforce?

Once you have completed DEV 401 (Salesforce Developer) module, you already figured out the limitations of development using the declarative syntax (without writing any code).

Now to extend the functionality of your application, you need write code. The programming language used to code is APEX. It is a proprietary language of Salesforce. The syntax is similar to that of Java.

My suggestion to all the prospective developers out there: " PLEASE DO NOT DIVE INTO THE CODE IMMEDIATELY".

So, to get started on APEX, one needs to understand the following concepts. I strongly advice you to get hands on these concepts first

1. Visualforce: Visualforce is like html. Instead of html tags, you would have visualforce tags. Every visualforce tag starts with a word apex. Visualforce is used to customize the look and feel of an application. In the figure below, you can find couple of visualforce tags. You can find the complete developer guide on visualforce here

2. APEX: Like any programming language, you need to get started with the syntax: Check out the developer guide here

3. SOQL (Salesforce Object Query Language). Like any database backed applications, Salesforce uses its propritory (Salesforce Object Query Language) Click here for the guide.

A basic query would look something like this SELECT fields FROM  object WHERE condition
Example: SELECT Id, Name, BillingCity FROM Account WHERE Revenue > 600000 

4. XML: XML is used to transport content (exchange information) One should spend couple of hours just trying to understand the basic syntax. It is fairly easy. Learn XML

Once you familiarize yourself with these concepts, you can get started on writing your own code. 

Tuesday, 26 July 2011

What is a SalesCloud ? and what is Service Cloud ?

I cannot explain it better than this video. Here is a nice marketing video created by Salesforce targeting their end customers.

Service Cloud

CRM Terminology

Both Salescloud and service cloud are applications for CRM (Customer Relationship Management). One needs to familiarize with this terminology.

CampaignWhen you launch a new product in your company, you would like to like to market it, The marketing can be done in couple of different ways. One is Newspaper, Print Media, Television, Radio, Internet , Google Adwords etc. This is nothing but a campaign   
LeadAfter you have raised a campaign, Many people might be interested in your product or service. All of these people who might be interested in buying your product are called leads
AccountOnce these individuals or companies interested in your product convert to actual customers,  These could be customers, partners or competitors.
ContactYou could have an individual as a customer or a company as your customer. If you have an individual as the customer, then the inviduals contact information becomes the record in the contact. And if your customer is a company, then the representative from that company would become the contact record
OpportunityOnce your customer is interested in your product, He might specify what product is he/she interested in and when does he plan on purchasing it. 
ForecastBased on the information collected in different opportunities, one can do forecasting into the future and plan time and resources accordingly.
ProductProducts which the company is selling
ActivityThese include tasks and calendar events
DocumentAny kind of documents which are required in your business process, are stored in folders. Folders determine access to the documents.
ReportReports can be genereated from the application data. (Data from different standard /custom objects
DashboardGraphical snippets that give a birds eye view (Could be charts, graphs, guage, etc)
CaseDescription of the problem that a customer may have raised
SolutionDescription of an issue and its resolution. Solution knowledge base refers to collection of all solutions in an organization.

Most Popular Application on started by taking CRM on to the cloud, back in 1999. They called it salesforceCRM back in the day. Unlinke SAP or Oracle, Salesforce does not have off the shelve solutions for every industry. It has only two Standard Applications. They call then Sales Cloud and Service Cloud. Ofcourse they also have Jigsaw and chatter, but I don't really consider them applications.

For companies that would like to build their custom applications, they have the platform. Here any developer / company is free to build their own application and run it on the platform.

License fee for platform is cheaper than the Sales cloud or Service Cloud.

Note: Both the Sales cloud and Service Cloud run on the platform.

Apex Exchange is market place for applications. It is like the itunes app store for iphone or ipad. Developers are free to build applications on the platform and sell them on App Exchange.
When a company wants to build out an application, they would rather check the AppExchange for any pre-built application that solves their problem.

AppExchange is also nice because one can quickly find adaptors that can be used to connect to other backend systems on clients location. For example, a company might have a salesforce implementation, would also like to pull their customer data from their backend database and do a validation before new record is created on their SalesCloud. Here in this scenario, one would need a small team of experts to write an adaptor that talks to a backend system.  However, there are many companies that do offer these kind of quick fixes as adaptors on appExchange. They are quite pricey and  free to try.