LET'S LEARN TOGETHER. THE BEAUTIFUL THING ABOUT LEARNING IS NOBODY CAN TAKE IT AWAY FROM YOU.

How I cleared Sales Cloud Consultant Certification

Happy Wednesday!! I am happy to announce that I have cleared my Sales Cloud Consultant certification exam last week and that is my 11th Salesforce certification.

 

In this post, I am going share my study notes hoping that it will help others.

Before going into more details, let's quickly understand what this certification is all about. Here is what we have from the Salesforce Exam Guide -







With that quickly review of the exam outline -

My two highly recommended study guides

Trailhead

The first thing that you need to complete is this Trailhead trail. This is must as it covers everything is a very structured way. Below is the link of the Trailhead trail

"Prepare for Your Salesforce Sales Cloud Consultant Credential"

Focus On Force

I highly recommend Focus On Force's Sales Cloud Consultant Study Guide. They explained all the important concepts in a very easy way with lots of visuals. Visual representation always seems very helpful to me to understand the concept. You can go for their Sales Cloud Consultant Certification Practice Exams as well. The practice exams helps me to understand the sections where I need to put more focus while studying.


My study notes


Sales Process

Read it from here 


Common Sales Productivity features

  1. Salesforce from Microsoft or Google Applications
  2. Email Templates with Merge Fields
  3. Salesforce App
  4. Dashboard
  5. News
    1. Includes articles from last 30 days.
    2. Available on Business accounts, contacts, leads, and in the home page.
    3. Articles come from reputable english-language news sources.
  6. Lightning Dialer
  7. Einstein Activity Capture
  8. High Velocity Sales (https://trailhead.salesforce.com/en/content/learn/modules/high-velocity-sales-for-sales-reps)
    1. Sales Cloud Add-ons for insight Sales team.
    2. Let managers use Sales Cadences to create custom Sales Processes that guide sales reps through handling different types of prospects.
    3. Those cadences appear for sales reps in the Work Queue, a task list that appears inside the Sales Console.
  9. Gmail integration (https://trailhead.salesforce.com/en/content/learn/modules/gmail_integration)
  10. Outlook Integration (https://trailhead.salesforce.com/en/content/learn/trails/outlook_gmail_integration)

Sales Productivity

Utilize Salesforce features like Console, Mobile App, Chatter, Work.com and email tools to improve Sales Productivity.

Measuring Productivity

Measure Sales Productivity by analyzing metrics related to the Sales Process, such as number of Sales Activities

Share:

Understanding JavaScript Variable Declaration - Let vs. Var vs. Const




Hello World!! Today I am going to explain different way of declaring variables in Javascript. 
Let's understand with examples how Let vs Var vs Const works in Javascript.

Before we start, let me recap the concepts of scope we have in Javascript.
Scope is the concept that manages the accessibility of the variables. At a very high level, the accessibility of the variable is limited to the block where they are defined. Outside the block, the variable in inaccessible. 

Let's jump into some examples -

Example 1: 
var myFunction = function(shouldCheck){
if(shouldCheck){
var x = 'Hello World';
}
return x;
}

var result = myFunction(true);
console.log(result);
Result: Hello World
Explanation: The variable x is declared with var. This makes the variable accessible within the function. The variable is even accessible outside the code block where it is defined. 
 
Example 2:
var myFunction = function(shouldCheck){
if(shouldCheck){
var x = 'Hello World';
}
return x;
}

var result = myFunction(false);
console.log(result);
Result: undefined
Explanation: Exactly the same as above code, the only difference is this time the code block within which x is declared is not getting executed. So we are getting undefined exception.

Example 3:
var myFunction = function(shouldCheck){
var x = 'Hello World from Outside'
if(shouldCheck){
var x = 'Hello World from Inside';
console.log(x);
}
console.log(x)
}

myFunction(true);
Result: 
Hello World from Inside
Hello World from Inside
Explanation: Here the outside x declaration is overwritten by inside x declaration. Calling the function with false will retain the outside x declaration and in that case it will print "Hello World from Outside".

Example 4:
var myFunction = function(shouldCheck){
if(shouldCheck){
let x = 'Hello World';
}
console.log(x);
}

myFunction(true);
Result: x is not defined
Explanation: This time x is defined with let instead of var. Declaring a variable with let will provide block scope i.e. the variable is accessible within the block in which this is defined. This is the biggest difference between declaring variable with Var vs. Let. Now in our example since x is not accessible within the if block, that is why console.log is throwing the error that x is not defined.

Example 5:
var myFunction = function(shouldCheck){
var x = 'Hello World from Outside';
if(shouldCheck){
let x = 'Hello World from Inside';
console.log(x);
}
console.log(x);
}

myFunction(true);
Result: 
Hello World from Inside
Hello World from Outside
Explanation: This time even though we have two declarations of the same variable x (one with var and one with let), inside declaration of x is treated as a separate variable and not overwriting the x declared outside with Var.

Example 6:
var myFunction = function(shouldCheck){
let x = 'Hello World from Outside';
if(shouldCheck){
var x = 'Hello World from Inside';
console.log(x);
}
console.log(x);
}

myFunction(true);
Result: 
Identified 'x' has already been declared
Explanation: This time declaring the outside variable with let will make x accessible within the myFunction scope. Now declaring x again with Var within the same function creates conflicts and that is why the above error.

Example 7:
var myFunction = function(shouldCheck){
const x = 10;

if(shouldCheck){
var x = 100;
console.log(x);
}
console.log(x);
}

myFunction(true);
Result: 
Identified 'x' has already been declared
Explanation: This time declaring the outside variable with const will make x accessible within the myFunction scope i.e. it created the Block scope. Now declaring x again with Var within the same function creates conflicts and that is why the above error.

Example 8:
var myFunction = function(shouldCheck){
const x = 10;

if(shouldCheck){
let x = 100;
console.log(x);
}
console.log(x);
}

myFunction(true);
Result: 
100
10
Identified 'x' has already been declared
Explanation: This time declaring the outside variable with const will make x accessible within the myFunction scope i.e. it created the Block scope. Declaring x inside the loop with let creates another Block scope, which is absolutely fine even though the name of the variables are same. 

In summary, declaring variable with Const and Let will create Block Scope whereas declaring variable with Var will not create Block Scope.

Hope the above examples will help you to understand the basics of variable declaration in Javascript. Thank you and happy JavaScript learning.
 

Share:

Kitchener Canada Developer Group Event: Lightning Components 101: An Apex Developer's Guide by Adam Olshansky

Special thanks to our speaker, Adam Olshansky, for the session on Lightning Components 101: An Apex Developer's Guide.
Here comes the presentation and recording.

Presentation:


Recording:

Please register to Kitchener, Canada Developer Group for all our future events.
Share:

Kitchener Canada Developer Group Event: Automate the Development Lifecycle with CumulusCI by David Reed


Special thanks to our speaker, David Reed, for the session on Automate the Development Lifecycle with CumulusCI.
Here comes the presentation and recording.

Presentation:

Recording:


Please register to Kitchener, Canada Developer Group for all our future events.
Share:

Dreamforce 2019 Global Gathering


Yesterday we had the event - Dreamforce Global Gathering - a joint event between Kitchener Developer Group and Mississauga Developer Group.

We discussed about new announcements from Dreamforce 2019, had great participations from audience and networking. Ohh Yesh!!! There were swags & certification vouchers as well.

Here are few pictures and the slide deck.






Dreamforce Global Gathering from Sudipta Deb ☁

Register below to get notifications about our future events -

Kitchener Developer Group
Mississauga Developer Group
Share:

Tips for passing Salesforce Certified Education Cloud Consultant

I have successfully passed Salesforce Certified Education Cloud Consultant exam on 19th January 2020. Here are few tips to pass the exam.

Exam Outline


  • Content: 60 multiple-choice/multiple-select questions 
  • Time allotted to complete the exam: 90 minutes 
  • Passing Score: 68%  
  • Registration fee: USD 200, plus applicable taxes as required per local law 
  • Retake fee: USD 100, plus applicable taxes as required per local law 
  • Delivery options: Proctored exam delivered onsite at a testing center or in an online proctored environment. 
  • Prerequisite(s)Salesforce Certified Administrator credential


  • I have faced 60 questions and most of the questions are about Education domain knowledge, configuring HEDA and SAL, use case oriented questions.



    Preparation 



    Core SAL Data Model




    Topics Received on Exam

    • Questions regarding to Administrative and Household Account Model
    • Sequence of data load into Education Cloud instance.
    • Consideration of installing education cloud when person account is enabled.
    • Frequency of updates for education cloud managed package.
    • TDTM Framework
      • Importance of user managed and namespace field.
      • Best practices to include own trigger in TDTM Framework 
    • Ways to handle former names in EDA
    • Automation around addresses with Administrative and Household Account Model
    • Use case to choose best product (Pardot vs. Marketing Cloud). Understanding the basic features and their differences is important for this one.
    • Open Source solutions around HEDA
    • Consideration when loading bulk data 
      • Data Skew
      • Ownership Skew
    • Questions on creating reports
      • Understanding of data model and their relationship is important
      • Once you have the relationship in mind, it will be easier for you to decide whether to create a new report type or use the existing one. 
    • Community Cloud Implementation strategies
      • Sharing consideration
      • License Type
    • Use case to choose the correct API strategy -
      • REST
      • SOAP
      • Streaming
      • Salesforce Connect
    • Roles and Responsibilities of CoE (Center of Excellence)
    • Comparison between different sandbox types

    Hope this will help you to clear the certification. Best of luck.

    Share:

    New AppExchange Component || Activity Timeline || View related records in a whole new way


    Salesforce Labs published a new Lightning Web Component named "Timeline". It will display the related records in a totally different way i.e. in a timeline fashion.

    I installed this in my developer org and this post is about how to configure this component.

    Pre-requisite: Enhanced Email should be enabled in the org.

    Here are the steps:

    Permission Set 

    Assign the permission set "Timeline User" to the users.

    Update Timeline Configurations Page Layout

    Open the Timeline Configuration Page Layout and in the related list - Timeline Child Objects, include the New button.

    Create Timeline Configuration record

    Let's say we want to include this component in Account record page. So we will first create the Time Configuration record like below -


    Create Timeline Child records

    Let's say we want to display Contact and Opportunities in Activity Timeline. So we will create two Timeline Child records like below -

    Note - Here is the quip document explaining the field details. Link


    Include the component - Activity Timeline in Account record page 


    Here comes the new view of the related record



    Observation(as of today): Fields are not getting displayed properly while expanding the individual items in the Activity Timeline. I informed Salesforce Labs Team about the issue. Will update this post based on the response.

    Overall this is a very cool component published by Salesforce Labs and I am quite sure this will provide great addition to any implementation.


    Share:

    Things to remember before giving community access to guest users


    When we build the Salesforce Communities, sometimes based on the customer requirements, we need to provide guest access to the communities. Guest access in basically the unauthorized access to the community. As you can easily understand, any unauthorized access is always a very dangerous things to implement. So we need to make sure our security configuration is strong enough that no internal data is getting exposed to the outside world i.e. unauthorized users. And if situation demands, only the required information(as minimum as possible) will be exposed.

    I am going to write down what are the details we should keep in mind while configuring guest access to the communities. To start, let's revisit some basic stuffs first.

    For each communities we build in Salesforce, there will be a guest profile created for us automatically. It doesn't matter, whether we allow guest access or not, the guest profile will be created for us always.

    All guest users i.e. unauthorized users will use this profile to access the community. If we create 5 communities, then there will be 5 guest profiles created. Name of the profile will be Profile. 





    Starting Spring'20 Salesforce release, the settings "Secure guest user record access" will be enabled by default. Salesforce recommends using this settings to provide user record access to the guest users through communities. But there are few important things we should keep in mind -
    • OWD will be private for all objects and we can't modify this one.
    • Guest users are not allowed to be added in any queues or groups.
    • Manually sharing records will guest users are not allowed.
    • Guest users can only be given Read Only access though guest user sharing rule.
    So now let's jump into our fictitious Use Case.
    The Great University wants to engage their students by allowing them to provide feedback and ideas so that they can keep on improving their infrastructure, course contents, communications etc. They want students, alumni, parents, teachers to provide their feedbacks without disclosing their names. And to this they don't need to create any user accounts. University also wants that all feedbacks should be visible to others as long as they are not implemented, rejected or duplicated.
    Highlighting few sections to put more focus on these parts of the use case.

    Solution:
    We will create a custom object called Feedback to store the feedbacks. We will also create the Salesforce community and enable guest access there. Expose the Feedback list view in the community.

    Will configure guest profile in such a way that guest users can create new feedbacks and also can see all the open feedbacks. Since we want all the feedbacks to be total anonymous, we will assign all the feedbacks created by guest users to internal default user.

    Implementation:
    Let's first create the custom object - Feedback, relevant fields, and list views.



    Now let's create the community called - Let's Build Better Tomorrow. Below is the authenticated user's view of the community. List view from the custom object - Feedback is added in the community.

    Now let's enable the guest access for the community. We can do that by -
    • Settings -> All Communities.
    • Click Builder against the newly created community
    • Click Settings -> General
    • Check the box - "Public can access the community"
    Once done, if we try to access the community url from Chrome Incognito mode(or from some new browser), we will get this below view (this is guest profile's view)-
    As we can see that Feedback's list view is not appearing. Because guest profile is not having enough permission to this custom object. Now we need to configure the guest profile and provide Read and Create access to the custom object - Feedback. 

    To do that, let's follow the below steps -
    • Settings -> All Communities.
    • Click Builder against the newly created community
    • Click Settings -> General
    • Click on "Configure access for guest or unauthenticated users"
    • And then provide Read and Create permission on the Feedback object.

    Important Note: We can only assign Read & Create to the standard objects, but can assign all CRUD permissions to the custom objects to the guest profile.

    Once we provide the access, let's refresh the same page and here is the view(guest/unauthenticated user's view) - Awesome


    Now one part of the requirement is solved that guest users can create ideas, but can they really see the existing ideas?? No

    The reason is that these ideas are private and not shared with guest users.

    Now we need to write Guest User Sharing Rule like below to provide Read Only access -

    Important Note: - We can only provide Read Only access through Guest User Sharing Rule.

    With this above change, guest users can see the existing open feedbacks as well(only open feedbacks).

    We are almost there. The last configuration - we want to make sure that all created feedbacks should be owned by internal users not the guest users. Let's do that by -
    • Settings -> Communities -> Communities Settings 
    • Check the box against "Reassign new records created by guest users to the default owner"
    Now in the community put the default owner by -
    • Settings -> Communities -> All Communities
    • Click Workspace against the community
    • Go to Administration -> Preferences
    • Select the default owner 
    With the above use case, I tried to explain stuffs that should be kept in mind while configuring Guest access. Please provide your feedbacks and if you have any unique use cases in mind, please share in the comments. Thank you.



    Share:

    Compare Knowledge Articles - WoW Feature

    In Spring'20, Salesforce introduced one feature which was pending for a long time and also got a good amount of vote in Idea Exchange.

    Recently while working with a customer who is trying to implement Lightning Knowledge, it was one of the top priority requirement. And I don't want to do any custom development for this. But to my surprise, I saw that Salesforce already introduced this feature in Spring'20 as Beta.


    I was like ...



    So thought of sharing this information here how we can use this great feature.

    Basically in the article layout all we need to do is include the Lightning component "Article Version Comparison" and then we can select the versions we want to compare. Screenshots are given below.

    This is very useful feature for the Approver to see the actual changes before taking any decisions. Also for the viewer also, they can see the changes between different versions(provided they have the permission to view versions of the articles).




    Share:

    Follow Me

    Enter your email address:

    Delivered by FeedBurner

    Popular Posts

    Labels

    Salesforce (105) Apex (46) admin (27) visualforce (21) ADM (20) dev 501 (19) integration (18) learn salesforce (18) 501 (16) SOAP (13) lightning (13) tutorial (11) Certification. (10) javascript (10) Kitchener Developer Group (8) Certification (7) Trigger (7) test class (7) unit testing (7) Advanced Admin (6) Sharing and Visibility (6) design pattern (6) developer (6) report (6) salesforce release (6) security (6) service cloud (6) trailhead (6) Advanced Apex (5) New Features (5) SOQL (5) css (5) dashboard (5) debug (5) formula (5) mobile (5) solution management (5) use case (5) JSON (4) Kitchener User Group (4) Lightning Experience (4) Sales Cloud (4) Salesforce DX (4) Tips (4) WebSphere (4) best practice (4) cast iron (4) component (4) deployment (4) event (4) github (4) html (4) polymer (4) profiles (4) responsive (4) tdd (4) ui (4) Architect (3) Lightning Web Component (3) Live Chat (3) Online Event (3) Opportunity (3) Performance (3) Products (3) REST (3) Role (3) Salesforce Certification (3) Scratch Org (3) Study Notes. (3) Summer15 (3) Web Technology (3) automation tool (3) dynamic apex (3) license (3) map (3) mapbox (3) singleton (3) version controlling (3) Asynchronous callout (2) Bulkify (2) Community (2) Data Architecture and Management Certification (2) Devops (2) Distributed Version Controlling (2) ES6 (2) Eclipse (2) Einstein (2) Enterprise Territory Management (2) Financial Services Cloud (2) Force.com IDE (2) Governor Limit (2) Groups (2) IBM (2) Implicit Sharing (2) JourneyToCTA (2) Lightning Design System (2) Live Agent (2) Metadata (2) PD II (2) Price Book (2) SOSL (2) Sharing (2) Spring 15 (2) Summer17 (2) Territory (2) Virtual Event (2) ant (2) basic (2) chatter (2) coding (2) communication (2) console (2) controller (2) documentation (2) dreamforce (2) flow (2) git (2) jquery (2) logging (2) object (2) permission (2) process builder (2) release (2) salesforce1 (2) strategy (2) xml (2) Action Plan (1) Action Plan Template (1) Activity Timeline (1) Advanced Currency (1) Agent Productivity (1) Analytics (1) Apex Sharing (1) AppExchange (1) Arrow (1) Article (1) Asynchronous Apex (1) Aura Framework (1) Batch (1) Bots (1) Browser (1) Bulk data load (1) CTA (1) Calendar (1) Canon (1) Case Management (1) Celebration (1) Cheat Sheet (1) Classic (1) Compare (1) Confetti (1) Constructor (1) Contact Center (1) Continuation (1) Continuous Integration (1) Convert (1) Cookie (1) CumulusCI (1) Custom Metadata (1) Custom Object (1) Customer (1) Dated Exchange Rate (1) Decorator Design Pattern (1) Dev Hub (1) Development (1) Diwali (1) EDA (1) Education Cloud (1) Email (1) FSC (1) Function (1) Future (1) Global Gathering (1) Goals (1) Guest Access (1) Guest Profile (1) Guest User Sharing Rule (1) Guide (1) HEDA (1) Higher Education (1) Household (1) Ideas (1) Improvement (1) KPIs (1) Knowledge Management (1) Large Data Volume (1) LastModifiedDate (1) Lightning Feature (1) Manage Currencies (1) Manual Sharing (1) Metrics (1) Multi Currency (1) New (1) New Feature (1) OOPS (1) OWD (1) Omni-Channel (1) Partner (1) Person Account (1) Photo (1) Pipeline (1) Platform Developer I (1) Platform Developer II (1) Presentation (1) Product Schedule (1) Profile (1) Promise (1) Prototype (1) Public Site (1) Query Plan (1) Queueable (1) QuickReference (1) Related records (1) Reports (1) Retrieve (1) Role Hierarchy (1) SAL (1) SFDX (1) Salesforce Advisor Link (1) Salesforce Labs (1) Salesforce Optimizer (1) SalesforceDx (1) Schedule (1) Session (1) Sharing Rule (1) Sharing Sets (1) Site (1) Skills (1) Snap-ins (1) Spring 17 (1) Spring 20 (1) Summer14 (1) Summer16 (1) Summer19 (1) Switch (1) SystemModStamp (1) Timeline (1) Unauthorized Access (1) User License (1) Users (1) Webservice (1) Winter'15 (1) Winter'17 (1) access (1) actionFunction (1) actionPoller (1) actionRegion (1) actionSupport (1) agile (1) app (1) approval process (1) aura (1) awesome (1) backup (1) bitbucket (1) book (1) campaign (1) change set (1) code (1) code coverage (1) configuration (1) csv (1) custom button (1) custom settings (1) customization (1) data loader (1) database (1) delegate Admin (1) describe (1) dom (1) duplicate (1) dynamic (1) equals (1) error (1) field-level security (1) folder (1) ftp (1) generic (1) gift (1) global describe (1) hashcode (1) import wizard (1) jenkins (1) keynote (1) long running requests (1) monitoring (1) mysql (1) page layout (1) personal (1) power of one (1) record type (1) relationship (1) request (1) review (1) sub-tab (1) tab (1) username (1) visual workflow (1) workflow (1)

    Total Subscribers

    Total Pageviews

    Contact Me

    Name

    Email *

    Message *