Wednesday, 21 June 2017

Test Salesforce API by Postman Rest Client | Postman and Salesforce | Calling APEX Rest service using Postman| OAuth 2.0 platform support powerful web services API for interaction with external app and . For secured interaction with third party app, Salesforce enforces authentication process.

Above image is picked from here.

Step 1) Connected App for OAuth

To perform OAuth in salesforce, you must create Connected App in salesforce

Follow below step to create connected App.

1) Click on Setup->Create->App

2) Then from above screen click on Connect Apps then New button. Then add all required information like below

 3) Now After creating connected App we have consumer key and consumer secret

Step 2) Create a REST API in salesforce.

Please check below post for REST API
1) Learn Rest API in salesforce | How to learn Rest API | Rest API in salesforce
2) Rest API in Salesforce | Execute Rest API on workbench | Test class for Rest API

Sample code to Start

global with sharing class MyFirstRestAPIClass
global static Account doGet()
RestRequest req = RestContext.request;
RestResponse res = RestContext.response;
String AccNumber = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
Account result = [SELECT Id, Name, Phone, Website FROM Account WHERE AccountNumber = :AccNumber ];
return result;

global static void doDelete()
RestRequest req = RestContext.request;
RestResponse res = RestContext.response;
String AccNumber = req.requestURI.substring(req.requestURI.lastIndexOf('/')+1);
Account result = [SELECT Id, Name, Phone, Website FROM Account WHERE AccountNumber = :AccNumber ];
delete result;

global static String doPost(String name,String phone,String AccountNumber )
Account acc = new Account(); name;;
acc.AccountNumber =AccountNumber ;
insert acc;



Step 3) Get Access Token by POSTMAN

  3.1) Install the postman from here.

  Download URL :-

  3.2) Generate URL

  OAuth Endpoints in Salesforce
  Token Request:

  There are two way to get Access token
  1) By Post Callout (Direct URL)
  2) By OAuth Setting in POSTMAN (Wizard one)

  3.2.1:- By Post Callout (Direct URL)

  Use below link to Generate the Token for accessing SFDC***Consumer Key_Here***&client_secret=***Consumer Secret_Here***&username=*********&password=*****password+securityToken******

NOTE:-   May be After try to login you will get below error "Failed: Not approved for access"

     Please check below post to resolve this issue

  Finally We have Access Token

  3.2.2:- By OAuth Setting in POSTMAN (Wizard one)

  •   Select Type OAuth 2.0

  • Then click on  "Get Access Token". Then provide all below detail.

  • Then click on Request Token button. Then it will ask you to enter userName and password.

  • Here we have Access Token

Step 4) Test APEX REST API. 

Now Copy the Access Token from above Screen. Add below detail to make get call

a.       End point URL:
b.      Select method as ‘GET
c.       Put the details in header as below:
Authorization: OAuth + Access Token

Or you can try like below as well.

Now Copy the Access Token from above Screen. Add below detail to make get call

a.       Click Add Token to "Header"
b.      Then select "Use Token"
c.       Then select Get Method and add below URL

Related Post
1) Apex REST Basic Code Sample
2) Rest API
3) Understanding the Web Server OAuth Authentication Flow

Please let us know if this will help you

Amit Chaudhary

Sunday, 18 June 2017

Failed: Not approved for access in salesforce

After entering credentials and attempting to login to Salesforce, the API user is denied access to the application and is typically accompanied by a Login History Status of "Failed: Not approved for access".


Update  OAuth policies and set Permitted Users to "All users may self-authorize".

Step 1) Open the connected App the click on Manage button.

Step 2) Then click on Edit policies button

Step 3)  then update "OAuth policies"

     Please check below post to resolve this issue

Amit Chaudhary

Saturday, 10 June 2017

Salesforce Apex Hours:- Salesforce DX

Farmington Hill Salesforce Developer group / "Salesforce Apex Hours" organized another successful Online session/event on Saturday, JUNE 10, 2017 , focusing on "Salesforce DX".

"Salesforce Apex Hours" is a recurring event to talk about salesforce ! Some times we'd like to meet on one location and some time online.
This time we planned one online session on "Salesforce DX" with Jitendra Zaa (Salesforce MVP).

Agenda :-
Salesforce DX provides you with an integrated, end-to-end lifecycle designed for high-performance agile development. In this session we would go through hands on and see how Salesforce DX can be used to create scratch org, automated testing and data load purpose. We would discuss CLI option as well IDE

  • Introduction to Salesforce DX
  • Creating Scratch Org
  • Deploying metadata to Scratch Org
  • Creating Skeleton Workspace
  • Running Test classes
  • Getting Help
  • Using IDE with Salesforce DX
  • Q&A 

Speaker : -Jitendra Zaa (Salesforce MVP) ,Amit Chaudhary
Date :- Saturday, JUNE 10, 2017 11:00 AM EST
Venue/Link :- Online.

Here is PPT of Session

Here is Session Recording

Amit Chaudhary @amit_sfdc
Email :-

Friday, 9 June 2017

WebService Methods in Salesforce

1) You can't use the web-Service keyword to define an interface,
2) System defined enums cannot be used in Web-service methods
3) You can't use the webService keyword in a trigger
4) All classes that contain methods defined with the webService keyword must be declared as global.
5) Methods defined with the webService keyword are inherently global. These methods can be used by any Apex code that has access to the class. You can consider the webService keyword as a type of access modifier that enables more access than global
6) You should define any method that uses the web-Service keyword as static
7) You can't deprecate webService methods or variables in managed package code
8) Methods defined with the webService keyword cannot take the following elements as parameters. While these elements can be used within the method, they also cannot be marked as return values.
  • Maps
  • Sets
  • Pattern objects
  • Matcher objects
  • Exception objects

9) You can use the web-service modifier to define top level, outer class methods and variables, and member variables of an inner class. It can't be used on a class itself, or an interface or interface methods or variables.

NOTE:-  Invoking a custom webService method always uses system context. Consequently, the current user's credentials are not used, and any user who has access to these methods can use their full power, regardless of permissions, field-level security, or sharing rules. Developers who expose methods with the webService keyword should therefore take care that they are not inadvertently exposing any sensitive data

Apex class methods that are exposed through the API with the webService keyword don't enforce object permissions and field-level security by default

global class MyWebService {
    webService static Id makeContact(String lastName, Account a) {
        Contact c = new Contact(lastName = 'Weissman', AccountId = a.Id);
        insert c;

Tuesday, 16 May 2017

Salesforce Apex Hours:- HyperBatch

Farmington Hill Salesforce Developer group / Salesforce Apex Hours organized another successful Online session/event on Saturday, MAY 13, 2017 , focusing on "Hyper Batch".

First of All I would like to thank to "Daniel Peter" for great session and demo on "Hyper Batch". And Thank you much to all Farmington Hill Salesforce Developer Group Member for joining us online. This time more then 120+ person  joined us.

Agenda :-  
• Whats is HyperBatch
• Difference between Old Traditional Apex Batch job and HyperBatch
• Demo
• FAQ 

Speaker :- Daniel Peter (Salesforce MVP)
Date :-
Saturday, MAY 13, 2017 11:00 AM EST
Venue/Link :- Online


Session Recording :-

Please follow us on below pages/link for future session :-

Amit Chaudhary

Tuesday, 9 May 2017

VLOOKUP Example | VLOOKUP Function in Salesforce | Validation Rule with Vlookup in Salesforce

In this example we will checks that a billing postal code is valid by looking up the value in a custom object called ZipCode__c that contains a record for every valid zip code. If the zip code is not found in the ZipCode__c object or the billing state does not match the corresponding State__c in the ZipCode__c object, an error will display.

Syntax :- VLOOKUP(field_to_return, field_on_lookup_object, lookup_value)

field_to_return :- the field that contains the value you want returned
field_on_lookup_object :- the field on the related object that contains the value you want to match
lookup_value :- with the value you want to match

VLOOKUP Example in Salesforce Step by Step process

Step 1) Create one custom object ZIPCODE

Step 2) Upload some Test data.

Step 3) Create Validation Rule

       $ObjectType.ZipCode__c.Fields.State__c ,
       $ObjectType.ZipCode__c.Fields.Name ,
) != BillingState

Please check below post for more detail

Amit Chaudhary

Monday, 8 May 2017

Success Story of :- Adam Olshansky

Welcome to my 10th Salesforce Success Story series. This series is focused on success story and to inspire/encourage new user/Developer. And why we should join our local Salesforce Developer/User group.

1) Your Job Title
[ADAM ] :- Salesforce Developer

2) Your success Story
[ADAM ] :- I started off as an analyst for SAP Infrastructure and lucked into using Salesforce after a promotion. Having come from a Java background in college, I found the platform both easy to pick up and extremely user friendly compared to SAP. I also loved being able to focus on building and creating apps and not having to worry about the behind the scenes hardware. I attended my first Dreamforce and fell in love with the platform after attending a couple of hands-on trainings and experiencing the feeling of given back! I was also inspired to start getting Salesforce Certified to motivate myself to learn and prove myself on the platform to companies. After receiving 5 certs in 6 weeks, I set on the Advanced Developer path and after landing my first Salesforce developer job and achieving that cert, I started down the Architect path! Today I have 13 Salesforce certifications, am a Salesforce MVP, am a full-time Salesforce developer, and looking to give back to the community any way that I can. More info here: and

3) Why we Should Join a Salesforce User/Developer Group
[ADAM ] :- It's a great opportunity to network with other people passionate about the platform as well as learn how to use the platform in a new way!

4) Advice for new Salesforce Developer
[ADAM ] :- Don't be intimidated! There are a tremendous amount of people in the community who want to help you! There are also a great number of resources out there to help you grow your career.

5) Trailhead badges
[ADAM ] :- I have 200+ but my favorites are:

Follow Adam Olshansky on:

If you want to share your Salesforce Success Story, Please feel free to drop me an email :- 


Amit Chaudhary