Using Visualforce components inside Salesforce Service console

I was recently working on enhancing a service console and got to learn lot of things. One of the things I struggled with  is embedding Visualforce page as a component inside a console. In this post I would like to share at a high level, the steps involved in customizing service console using Visualforce component. Please note this post refers Salesforce classic UI.                                                                          

Create Visualforce component

This is no different than developing a regular Visualforce page with the data that needs to be displayed on the console.Since this page is going to be displayed as a sidebar, consider styling the elements so they auto-align and look good when you resize the side panel. I like using SLDS for styling (refer https://www.lightningdesignsystem.com/ ).

Implementing the component

(a).  Select a page that you want the new Visualforce page to be added and Click on ‘Custom Console Components’. In this example I used Case layout to display Account detail.

(b). Decide which sidebar you wish to show the new Visualforce component and add Component type,     Component, Label, Width and Height. The component can be a lookup, Canvas App, Related list, Knowledge One, Topics, Files, Report chart in addition to Visualforce Page. Select the Visualforce page that was created in Step 1.
(c).     Save

Now that we are done with creating the component and adding it to page layout. Go back to console and refresh the page.This is how console looks after the visualforce component is implemented. Highlighted portion in left sidebar comes from the Visualforce page.


  • Often displaying many fields in the Visualforce component would clutter the console. Carefully choose the fields required by collaborating with Business Users.
  • Get to know most frequently referred data elements in resolving a case or answering a customer’s query. Based on the users’ feedback, positioning of the fields can reduce time to complete a task. For example, a support executive’s first step in resolving a case is to know if it relates to a Priority customer. In that case it does not make sense in placing ‘Type of Customer’ field at the bottom on the page.
  • Add hovers on key fields to give a glimpse of most important information Users need to know without having to click and open to view the record.  


  • When Visualforce pages are used as components, two URL parameter values are passed automatically: id and inContextPane.

    Id - The ID of the detail page in which the component displays. This parameter is only passed if the ID is available. Value is 15 char record Id. 

    inContextPane - Indicates the Visualforce page displays as a component in a Salesforce console. Value will be ‘true’.

  • If a Visualforce Page has been assigned to page layout as a component, you cannot delete it.
"We @ Techforce Services are specialized in Salesforce Development - Apex, Visualforce and Lightning, API Integrations. We also cover Salesforce Setup, Implementation & Customization".

Salesforce Platform Developer II Certification

Salesforce Platform Developer II

If you are taking up the Salesforce Platform Developer II certification, then you should be aware of the new system under which you will be getting this credential.

  1. You need to complete the below 4 Superbadges in Salesforce Trailhead
    1. Apex Specialist
    2. Data Integration Specialist
    3. Lightning Component Framework Specialist
    4. Advanced Apex Specialist
  2. You have to register for the Platform Developer II Multiple choice exam in Webassessor and pass the exam
  3. Once you have completed all the 4 superbadges, you will receive an email from Salesforce Trailhead team with the instructions to link your Trailhead and Webassessor accounts (Note – it might take upto a week for you to get this email after you completed all the 4 superbadges)
  4. Following the instructions, You have to Link your Trailhead and Webassessor profiles and verify your profiles.
  5. After you have completed
    1. all 4 superbadges thru Trailhead,
    2. passed the exam thru Webassessor and
    3. linked your Trailhead and Webassessor profiles,
  6. Salesforce will then award you the Platform Developer II credential. Note again – this might take upto a week once you have completed both 1 and 2 and linked and verified both your Trailhead and Webassessor profiles
  7. Here’s the reference from Salesforce Certification Knowledge Base about the overall process and a quick screen shot of the instructions

Screen Shot 2017-12-28 at 11.04.19 pm.png

The Salesforce Certified Platform Developer II certification validates the below skills,experience,and knowledge:

  • Understands the principles and best practices of Salesforce data modeling, interfacedesign, code development, and testing, and can apply these principles in real-world development environments.
  • Is capable of defining appropriate solutions to meet specific business
    challenges/process requirements to extend/customize the platform by applying knowledge of declarative and programmatic features of the Force.com platform.
  • Is competent developing Apex code that will scale to large data sets; has a good understanding of platform behaviors, limits, and performance considerations.
  • Can build custom user interfaces to display and interact with Salesforce data using the Lightning Component Framework, advanced Visualforce, CSS, and JavaScript.
  • Is competent tuning Visualforce pages and understands performance implications of the controller design.
  • Understands and applies best practices for general web and Salesforce-specific security concerns.
  • Can design and implement complex sharing models using declarative and programmatic methods.
  • Can design and implement a test plan that ensures adequate quality (e.g., code coverage, application behaviors, scalability, environment independence, security)across application components.
  • Can deploy custom applications, has a broad understanding of the Force.com development lifecycle, and understands deployment tools and knows when to apply each tool.
  • Understands and uses Apex SOAP and REST web services and how to call out from Apex using SOAP and REST.
  • Understands and uses asynchronous programming – queueable, batchable,schedulable, @future, etc.
  • Understands and applies appropriate techniques for error and exception handling in various programmatic contexts.
  • Implements best practices for trigger development and design patterns, other business logic development, and reuse.
  • Knows how to surface Lightning Components on a Lightning page and with Quick Actions.

“We @ Techforce Services are specialized in Salesforce Development – Apex, Visualforce and Lightning, API Integrations. We also cover Salesforce Setup, Implementation & Customization”.

Talk to us to know how we can Simplify your Salesforce journey.


Salesforce Advanced Apex Specialist – Trailhead Superbadge

Salesforce Advanced Apex Specialist - Trailhead Superbadge

Continuing my quest with trailhead #SeizetheTrail , the last one in my list is the Salesforce  Advanced Apex Specialist Trailhead Superbadge ..  I started working on this superbadge and this post is to document some of the findings / tips / gotchas as I progress thru this one..
Step 1

  • make sure you create the Custom metadata records with the exact same names given (that matches the product families)
  • in the constants apex class, declare all the properties as public static

Step 2

  • OrderTrigger needs to handle only after update event
  • OrderTrigger should use the Orderhelper internally for the rollup
  • Don’t forget to remove the “with sharing” from the orderHelper class

Step 3

  • Override the Add and New button under Product object to use the visualforce page
  • Product2New visualforce page
    • in the pageblock table columns, use the field labels as headers using $ObjectType
    • update the column values to use the productRecord fields inside the productwrapper
    • use apex:chart to display the horizantal bar chart in a separate pageblock above the table
    • reRender the required components from the Save and Add buttons
  • Product2Extension apex class
    • Make the Controller class “Without Sharing”
    • add the inner class ProductWrapper
    • replace the list of products with list of productwrapper
    • use Savepoint in the Save method
    • iterate thru the productWrapper and extract the products and pricebookentries and insert them separately
    • use try catch block and do a rollback if there are any errors
  • ChartHelper apex class
    • Make the ContChartHelperroller class “Without Sharing
    • move the chart data initialisation logic to Chart Helper class
    • make the GetInventory method @AuraEnabled

Step 4
This is probably the simplest of all the steps.. update theTestDataFactory class to handle the key requirements given..

  • Make sure all the methods in the TestDataFactory class are Public Static and the class is marked “with sharing”
  • all the construct methods should create the mentioned objects with the required fields and unique names and return the records without inserting them
  • use the Insert method to call all the construct methods and then insert the records returned from those methods.

Step 5

  • Update the VerifyQuantityOrdered method in TestDataFactory with a System.Assert to compare the Quantity Ordered between the Updated product and the original product plus the incoming quantity
  • run both OrderTests and Product2Extension_UnitTest and make sure both the test classes are passing  and the classes they are intended to cover has more than 75% coverage

Step 6

  • Don’t forget to create the chatter group “Inventory Announcements” .. mark it public and tick the disable auto archive checkbox and use the description text given
  • update the product trigger to handle only after update and use the product helper class to handle the after update logic
  • update the product helper class AfterUpdate method to use the postAlerts method which in turn will be using the AnnouncementQueueable class to process the chatter group notification
  • AnnouncementQueueable is a Queueable class and uses ConnectApi to post the announcement

Step 7

  • Override the New and Edit buttons under the Order object to use the OrderEdit visualforce page

Step 8

This was my last superbadge and by completing this Advanced Apex Specialist Superbadge , I’m now eligible for Platform Developer II certificate provided I clear the multiple choice exam.. 🙂
Good luck to you all if you are working on this superbadge or preparing for the Salesforce Platform Developer II certification.

“We @ Techforce Services are specialized in Salesforce Development – Apex, Visualforce and Lightning, API Integrations. We also cover Salesforce Setup, Implementation & Customization”.

Talk to us to know how we can Simplify your Salesforce journey.


Salesforce Lightning Component Framework Specialist – Trailhead Superbadge

Salesforce Platform Developer II
I've successfully completed the Lightning Component Framework Specialist superbadge & this post documents some of the tips & tricks / gotchas that I noticed as I progressed thru this superbadge.. Overall it took me close to 7 hrs (split across 3 days) to complete this with the below breakdown of steps..
  • Day 1 - Step 1, Step 2, Step 3
  • Day 2 - Step 4, Step 5, Step 6
  • Day 3 - Step 7, Step 8, Step 9, Step 10
Note : This superbadge is both a direct part of the Salesforce Platform Developer II certification and also required to unlock the Advanced Apex specialist superbadge which is again part of the Salesforce Platform Developer II certification below is the list of points I noted down (categorised by Steps).. hope this helps you if you are working on the superbadge. Step 1 make sure you read the pre requisite steps and complete all of them..
  • use a New Trailhead Playground environment,
  • disable the component cache in the setup
  • install the unmanaged package, 
  • understand the naming conventions to be used in the javascript controller & helper methods
  • review the data model of the objects introduced by the unmanaged package and check if the data has been imported in those new objects.
Step 2 Read & Understand the use case and visualise the layout of the entire page and how the individual components are fitting in and communicating between them.
  • this step entirely focuses on the BoatSearchForm component so make sure the UI of this component is fully ready
  • make sure the "New" button visibility is controlled by checking the support for the createRecord event
  • create both the Lightning page and the Lightning app containing all the 3 components we created before.
Step 3
  • This step focuses on the BoatSearchResults component
  • you will be creating a component to handle the display of each boat tile
Step 4
  • This step focuses on the communication between the search form & the search results component and how the search results refresh based on the selected boat type
  • make sure the FormSubmit lightning event is of type Component and not Application
Step 5
  • The BoatSelectedEvent is of type Application
Step 6
  • make sure the BoatReviewAdded lightning event is of type Component and not Application
  • In the AddBoatReview component, create both the controller and helper methods and make sure from the helper method and set the response back to the boat review attribute or log the error back to the browser console
Step 7 Step 8 Step 9 Step 10 References Use the Salesforce Developer Forum and Stack Exchange discussions when you have exhausted all the options you can think of while solving a Step.. without trying your own attempts, referring these discussion threads will not help.. Good luck with the Super Badge and also with the Platform Developer II Certification.
"We @ Techforce Services are specialized in Salesforce Development - Apex, Visualforce and Lightning, API Integrations. We also cover Salesforce Setup, Implementation & Customization".

Salesforce to Salesforce Integration using Named Credentials

We recently had a integration project where we got an opportunity to use “Name Credentials” for one of our clients, to integrate two Salesforce instances. We found it very easy and useful to configure, maintain and implement using Named Credentials to connect two Salesforce orgs. We believe it will be useful for you all and so here we are sharing some of the key features and high level steps to configure “Named Credentials”.   Following are benefits of using Named Credentials:
  • A named credential specifies the URL of a callout endpoint and its required authentication parameters in one definition.
  • You can skip remote site settings, which are otherwise required for callouts to external sites, for the site defined in the named credential.
  • Using Named Credential, we can make call out to external system without supplying username or Password in the code.
  • By separating the endpoint URL and authentication from the callout definition, named credentials make callouts easier to maintain. For example, if an endpoint URL changes, you update only the named credential. All callouts that reference the named credential simply continue to work.
  • It supports two types of authentication protocols for now : Basic Authentication(Password authentication) or OAuth
To reference a named credential from a callout definition, use the named credential URL. For example: callout:My_Named_Credential/some_path. Following are the steps to connect with external system using “Named Credential”:
  1. Create Connected App
  2. Create Authorization Provider
  3. Define Named Credential
  4. Use Apex to connect in 5 lines of code
  1. Create Connected App:
  • Navigate to “Setup | Build | Create | Apps | Connected Apps” and click on New
  • Provide all necessary information
  • In “Callback URL” enter the temporary Salesforce URL. We will comeback again on this step later to provide Callback URL
  • Check “Enable OAuth Settings” checkbox to use OAuth
  • Select the scope
  • Save
“Consumer Key” and “Consumer Secret” will be provided once you save this. We need this information  on the next step. Screen_Shot_1  
  1. Create Authorization Provider:
  • Navigate to “Setup | Administer | Security Controls | Auth. Providers | Create New”.
  • Select “Salesforce” as Provider Type
  • Provide “Consumer Key” and “Consumer Secret” from the previous step
  • In “Default Scope” enter the value as “refresh_token full”. “refresh_token” and “full” should be separated by space
  • Finally Save
Once you save, it will provide you the set of URLs in “Salesforce Configuration” section on the same page. Copy “Callback URL” and edit Connected App we created in previous step and set this URL as Callback URL. Screen_Shot_2
  1. Define Named Credentials:
  • Navigate to “Setup | Administer | Security Controls | Named Credentials | New Named Credential “.
  • Provide the name (label)
  • In URL, provide URL of Salesforce instance where we want to Connect
  • Select “Named Principal” as Identity Type
  • In our example select “Authentication Protocol” as OAuth 2.0
  • Select the “Auth Provider” created in previous step
  • In scope, enter the value as “refresh_token full”
  • Check “Start Authentication Flow on Save” (this is important)
  • Save
After clicking on “Save” new page will open to authenticate Salesforce Org using OAuth2 connected App. Login using the credentials of the salesforce instance that you want to connect to.  If authentication is success, you can see message like “Authenticated as <Salesforce Username>”. Screen_Shot_3
  1. Use Apex code to connect:
          Use the lines similar to the below in your Apex code.             HttpRequest req = new HttpRequest();            req.setEndpoint('callout:My_Named_Credentials/services/some_path');            req.setMethod('GET');           Http http = new Http();           HTTPResponse resp = http.send(req); [Note: Perform the first 3 steps in both the Salesforce orgs to be integrated.]
"We @ Techforce Services are specialized in Salesforce Development - Apex, Visualforce and Lightning, API Integrations. We also cover Salesforce Setup, Implementation & Customization".

Salesforce Lightning Experience Rollout Trailhead Superbadge

I recently completed the Lightning Experience (LEX) Rollout superbadge. Being a trialhead addict/advocate and keeping  in mind the way it encourages us to learn the platform by practically solving the business use cases,I'm not going to give the complete solution here.. but I wanted to share some of the tricky ones I noticed.. hope this helps you to complete the superbadge Step 1
  • Run the Lightning Experience Readiness report and Salesforce Optimizer report
  • Act on the critical action from the report - Document to Files
  • Create the 2 different permission sets and assign it to the 2 users.
Step 2
  • The quiz was simple.. no surprises
Step 3
  • If you haven't done the Documents to Files in Step 1, do it here
  • Update the Accounts Tab visualforce page to Lightning using SLDS
Step 4
  • Create 2 Compact Layouts, 2 record types,
  • assign the record types to the 2 profiles of the users we have
  • assign the compact layouts to the record types
Step 5
  • Again, the quiz was simple.. no surprises but jus couple of places where I had to pause and think
    • Lookup Filter --> Lookup Search in LEX
    • Work.com High Risk in LEX
Step 6
  • After you create the group, customise the group record page (click edit page from setup wheel while on the group page) and use App builder to add the required components to the group page (Recommendations and Trending Topics)
Step 7 -
  • Opportunity Pipeline Report
    • Select the Report Type as Opportunities
    • In the Filters section, Select Show : All Opportunities, Date Field: Closed Date, All Time, and Click Ok (No Other Filters required)
    • Change the report format to Summary and Group by - Stage, Probability and Type and Summarise the Amount field
  • Scheduling Opportunity Pipeline Report - If Mon 8am is not available in the preferred time dropdown when scheduling the report in classic, then use the Subscribe option in lightning
  • Sales Operations dashboard - Keep only the 3 components in the requirement and use the right grouping and all the 3 components should use Sum of Amount
  • Useful discussion in this thread
Step 8 -
  • Create the 2 custom fields - Question & Answer
  • Create the 3 record types, page layouts in the knowledge object
  • Add the Record Type and the 2 custom fields to all the 3 page layouts
  • Create the Lightning Knowledge app
  • Remember to add the History component to the Utility Bar in the Lightning Knowledge App
  • Create the Org Home Lightning Home page and add to the Lightning Knowledge app
Step 9 -
  • easiest of the 3 quizes ...
Step 10 -
  • Create the Destination success lightning component with  a link to the url used by the custom link. make sure the url opens in a new tab. add the component to the Sales app home page.
  • Create the Campaign Influence Lightning report - make sure you add in the filters Campaign Name equals blank and Campaign Id equals blank
  • Update the two custom links mentioned as risks in the readiness report
    • Create a Lightning action UpsellCrosssellOpportunity under Case and link the action to open the CreateOppty lightning component
    • Create a detail page link under Campaign that opens the report we created before. make sure you use a relative url to open the report and also pass in the campaign Id to the report.
Checkout my trailhead profile here - Vamsi Gosu Also, if you are interested in trailhead and getting addicted with it like me and earning badges crazily, get yourself added to the unofficial leaderboard here 
"We @ Techforce Services are specialized in Salesforce Development - Apex, Visualforce and Lightning, API Integrations. We also cover Salesforce Setup, Implementation & Customization".

Salesforce Certifications and Trailhead

Salesforce Certifications

We are proud to share that our team at Techforce Services Team collectively has covered 500+ Trailhead Badges, 15+ Salesforce Certifications covering across Consultant, Administrator, Developer and Domain Architect Tracks.

Below is the list of Certifications we at Techforce Services has scored so far

Administrator Track

As a Salesforce-certified administrator,your expertise puts you in a unique position to work with stakeholders to define requirements, customize the platform, and enable users to get the most out of Salesforce.  Below are the Salesforce certifications in Administrator Track

  • Salesforce Certified Administrator
  • Salesforce Certified Advanced Administrator

Developer Track

Salesforce-certified developers are able to utilize a powerful mix of programmatic and declarative skills to extend and customize applications on the Force.com platform. our team of developers are fully certified and well experienced in Apex, Visualforce and Lightning. Below are the Salesforce certifications in Developer Track.

  • Salesforce Certified Platform Developer I
  • Salesforce Certified Platform Developer II
  • Salesforce Certified Platform App Builder

Consultant Track

Salesforce-certified consultants are invaluable contributors to the success of Salesforce customers.Our consultants has worked on several successful projects  with a wide variety of customers across different industries .  Below are the Salesforce certifications in Consultant Track.

  • Salesforce Certified Sales Cloud Consultant

Architect Track

The Salesforce Certified Architecture Designer credentials validate knowledge and expertise in particular specializations. The Salesforce Certified Application Architect and System Architect certifications recognize professionals who possess expertise in a domain area. Below are the Salesforce certifications in Architect track from our Team

  • Salesforce Certified Data Architecture and Management Designer
  • Salesforce Certified Development Lifecycle and Deployment Designer
  • Salesforce Certified Integration Architecture Designer
  • Salesforce Certified Sharing and Visibility Designer
  • Salesforce Certified Application Architect


Trailhead is the fun way to learn Salesforce. Test your knowledge
while earning points and badges to celebrate your achievements.
Content in Trailhead is organized into units, modules, and trails to help guide you through everything you need to know about Salesforce.
A unit takes you through several learning objectives for features, tools, or best practices related to Salesforce. Most units conclude with a challenge that reinforces the learning objectives.
A module is a series of units for a particular subject area. Once you’ve completed all the units in a module, you will earn a badge that will be displayed on your Trailhead profile.
Trailhead provides developers and administrators a guided, learning path through the key features of Salesforce, using a set of interactive,online tutorials.

"We @ Techforce Services are specialized in Salesforce Development - Apex, Visualforce and Lightning, API Integrations. We also cover Salesforce Setup, Implementation & Customization".

Google Integration: General Availability for Lightning for Gmail and Lightning Sync – Part II

In my previous blog (Part I) I discussed about Lightning for Gmail - the email integration for Gmail users. In this blog (Part II) we'll look at Lightning Sync. Lightning Sync keeps contacts and events in sync between your Google applications and Salesforce. When you sync contacts and events between your Google applications and Salesforce, you increase your productivity. That’s because there’s no need to duplicate work between the two applications. In addition, Lightning Sync syncs items whether you’re working from your desk or from your mobile device using Salesforce1. Following are high level steps to configure Lightning Sync in Salesforce: Step 1: Prepare your G Suit account for Lightning Sync The IT pros or Google administrator at your company can prepare Google servers to communicate with Salesforce. Your Google admin can complete these steps by logging in to your company’s Google API Console and Google Admin Console.
  1. Complete these steps from Google API Console
    1. Create a Google project dedicated to Lightning Sync. (https://console.developers.google.com/projectselector/apis/library?pli=1)
    2. From the new project, to set up reps to sync events, enable Google Calendar™ API.
    3. From the new project, to set up reps to sync contacts, enable Google Contacts API.
    4. Create credentials for a service account with the role Project Owner and the key type JSON.
    5. Enable Domain-Wide Delegation for the service account. Doing so generates a Client ID (also known as Client name) for the service account, which you need later.
    6. Save the JSON private key from your service account in a secure location and share it with your Salesforce admin. (But only your Salesforce admin.)
  2. Complete these steps from Google Admin Console
    1. Navigate to your security settings, select the advanced section, and click Manage API client access.
    2. Authorize read-only calendar scope for the service account by entering the service account Client ID (also known as Client name) you generated in Google API Console. Enter the scope:
      1. https://www.googleapis.com/auth/calendar.readonly
      2. https://www.googleapis.com/auth/contacts.readonly and https://www.google.com/m8/feeds
When you’re finished, Salesforce admins can take the next steps by preparing Salesforce for Lightning Sync. Step 2: Prepare Salesforce for Lightning Sync After an IT pro or Google administrator has prepared your Google for Work account for Lightning Sync, complete the necessary steps to prepare Salesforce, too.
  1. From Salesforce Setup, Register a new remote site for https://www.googleapis.com. Don’t disable protocol security for the site, or Salesforce can’t connect with Google.
  2. From Salesforce Setup, enter Lightning Sync Setup in the Quick Find box, then select Lightning Sync Setup.
  3. Enable Lightning Sync.
  4. Select OAuth 2.0 for Google (Beta) as your preferred connection method.
  5. Upload the private key for your Google service account. Your Google admin generated the key when setting up the service account for Lightning Sync.
  6. Click Save.
When you’re finished, run the Lightning Sync connection test to make sure that you’ve setup your connection correctly. After your Salesforce admin initiates contacts sync for you, Lightning Sync creates a group in Google Contacts called Salesforce Sync. Any contacts that have synced from Salesforce to Google are found in the Salesforce Sync group. Gmail™ accesses those contacts automatically when you attempt to email or chat with those contacts. Or if you are setup to sync from Google Contacts to Salesforce, you can add Google Contacts to the Salesforce Sync group, and Lightning Sync starts syncing the contact with Salesforce during the next sync cycle. Note: Don’t rename, move, or delete the Salesforce Sync group, or syncing between Salesforce and Google Contacts could stop. Setting both Lightning for Gmail and Lightning Sync lets you choose which Google Calendar™ events sync to Salesforce. When you relate Google events to Salesforce using Lightning for Gmail, edits made in Google Calendar sync back to Salesforce, keeping important Salesforce events up to date automatically.   References:
"We @ Techforce Services are specialized in Salesforce Development - Apex, Visualforce and Lightning, API Integrations. We also cover Salesforce Setup, Implementation & Customization".

Google Integration: General Availability for Lightning for Gmail and Lightning Sync

Collaboration in the workplace is nothing new. However, it is becoming increasingly important in the modern world as we become more connected around the globe.Lightning for Gmail is now generally available, and with our latest features, your team gets a boost in productivity. And reps get to relate emails to Salesforce before sending them.

In Salesforce CRM too, ability for sales team to collaborate effectively has been there for a while through email integrations. But with the Lightening for Gmail it has become inbuilt solution eliminating the need for any external integration. Let reps view relevant Salesforce records from their Gmail inboxes and relate emails to Salesforce records using Lightning for Gmail. And when you introduce Lightning Sync for Google, reps can sync contacts between Gmail and Salesforce, and events from Google Calendar to Salesforce.

Lightning for Gmail: General Availability and Improved Efficiency

Get visibility into Salesforce content right where you work, so you can efficiently manage your sales pipeline and close deals faster—directly from Gmail. Lightning for Gmail is now generally available, and with our latest features, your team gets a boost in productivity. Lightning for Gmail—the email integration for Gmail users—gives you a quick view of your sales-related records without making you switch between Salesforce and Gmail.

After summer ‘17 release, you are just 2 steps away from using this feature.

Steps1 To Enable Lightning for Gmail:

  • From Salesforce Setup, enter Lightning for Gmail in the Quick Find box, then select Lightning for Gmail (beta) Settings


  • Enable Lightning for Gmail.


  • To let reps relate emails to relevant Salesforce records, enable Enhanced Email with Lightning for Gmail.

Screen_Shot_2017-06-19_at_9_37_04_AM 2

  • Optionally, to give sales reps access to global actions in Lightning for Gmail, create new or assign existing publisher layouts from the Lightning for Gmail Publisher Layouts section. Save your changes.

Step2 Set up ‘Lightning for Gmail’ for your Gmail Account:

Complete these steps to add Lightning for Gmail to the Chrome browser.

  • In the Chrome Web Store, enter Lightning for Gmail in the Search box, then select the Lightning for Gmail extension.
  • Click Add to Chrome and confirm Add extension to add it to your Gmail account.


  • After adding Lightning for Gmail to Chrome and navigating to Gmail, to login to Salesforce, enter your Salesforce credentials in the new pane displayed to the right of the Inbox.


Now you can:

  • View and relate Salesforce contacts, leads, accounts, opportunities, and cases relevant to the Gmail messages you received or sent (1).
  • Create new Salesforce records, including custom objects from the Action Publisher.
  • Search for custom object records and create a Salesforce record using actions available to you. With the inline editing feature, you can also modify records without leaving Gmail (2).
"We @ Techforce Services are specialized in Salesforce Development - Apex, Visualforce and Lightning, API Integrations. We also cover Salesforce Setup, Implementation & Customization".

Lightning Components Tip: Don’t mess with Method names

In 2014, Salesforce introduced the front-end platform called Lightning, the next generation of CRM is based on front-end web technologies, providing much functionality to help customers close deals faster and smarter. Sales teams now can see and present data to their customers and potential customers in visualized ways. Lightning is a component-based framework allowing components to be reused in different places within organisation and admins to quickly customize pages for different needs from various users. When it comes to lightning component development, lightning makes it easier and faster for developers to build and debug applications using frontend tools. Three basic elements of lightning components are Aura component, frontend controller (JavaScript) and backend controller (Apex). JavaScript controller acts as main controller to process business logic and Apex controller is more like database interpreter to query data from Salesforce Database. However, when many methods have same actions, naming problems come in. In apex, the action methods to return some data are normally are declared in the format getVariableName. Similarly, in lightning, JavaScript methods in JS controller usually are declared in the same way, getVariableName to get data from Apex controller. Inside JS methods, an action variable is declared to retrieve data from Apex controller, which often is named getVariableName. This action will be put into a queued action list. Here is a screenshot how it looks. In JS controller, JS controller In Apex controller, apex controller As a result, it creates an infinite loop which keeps firing getStrings function. The reason is that the queued action list has taken the method name, not the action variable. The queued action list fires getStrings function, inside the function, a statement puts function again into the list, and so on. To avoid this problem, JS functions in JS controller can be named as getVariableNameFunction and inside the functions, query action variables can be named as getVaribleNameAction. By doing this, normal naming convention remains the same and can avoid confusion for Lightning framework when picking the actions up. JS Controller: fixed js controller
"We @ Techforce Services are specialized in Salesforce Development - Apex, Visualforce and Lightning, API Integrations. We also cover Salesforce Setup, Implementation & Customization".