Different clouds in salesforce

Sales Cloud platform

Salesforce Sales Cloud is a CRM  platform designed to manage the sales, marketing and customer support facets of business-to-business (B2B) and business-to-customer (B2C) engagement strategies.

To aid with new and existing lead management and lead monitoring, users can create custom lead-capture forms, view and access a lead’s most up-to-date contact information in an activity timeline and establish automatic lead routing to ensure that customer engagement and sales personnel receive timely notification of hot leads. Users can also track and analyze marketing campaign data and its impact on lead generation. This data can be viewed and used by sales teams and translated into more effective sales performance.

Features of Sales cloud:

  • Einstein High Velocity Sales Cloud
  • Outlook integration
  • Opportunity Kanban (Forecasting)
  • Lead management
  • Lead assignment and routing
  • Rules-based lead scoring
  • Einstein lead scoring
  • Duplicate blocking
  • Web-to-lead capture
  • Mass email
  • Campaign Management
  • Campaign Influence
  • Email templates
  • Salesforce Engage
  • Pardot B2B Marketing Automation
  • Manage customer and sales details.
  • Account and contact management
  • Einstein Account Insights
  • Opportunity Management
  • Sales Path
  • Einstein Opportunity Insights
  • Sales Teams
  • Task Management, Activity feed
  • Einstein Activity Capture
  • Calendar All
  • Sales Console app
  • Lightning Voice
  • Person Accounts
  • Sell from anywhere on any device.
  • Salesforce1 Mobile App
  • Full Offline Mobile Functionality
  • Inbox Mobile App
  • Forecast sales more accurately.
  • Collaborative forecasting
  • Custom Opportunity fields in forecasting
  • Collaborative forecasting with opportunity splits
  • Forecasting mobile app
  • Enterprise territory management
  • Configure, price, quote, and bill.
  • Contracts
  • Orders
  • Products and price books
  • Quotes
  • Salesforce Quote-to-Cash
  • Salesforce Billing
  • Get real-time sales insights.
  • Configurable Reports and Dashboards
  • Advanced reporting features
  • Wave App for Sales
  • Collaborate across your company.
  • Chatter
  • Files
  • Topics and Recommendations
  • Extend Salesforce to your partners.
  • Lead registration
  • Partner Communities
  • Lightning Bolt solutions
  • Cross-sell and upsell more easily.
  • Customise and automate processes.
  • com
  • Process Builder (processes per org)
  • Workflow and approval automation
  • Lightning App Builder
  • AppExchange
  • Unlimited custom applications
  • Connect sales info to any app.
  • Web Services API
  • Lightning for Gmail (beta) or Outlook
  • Inbox Desktop Apps
  • Send email through Gmail or Outlook
  • Google Apps integration
  • Lightning Sync

Different Editions of salescloud :

SalesforceIQ CRM Starter Edition — Let up to five users track and manage all your sales leads, opportunities, and customer cases. You’ll also get more insights into your business with basic reports and dashboards.


Professional Edition — Let an unlimited number of users manage your entire sales cycle. In addition to basic sales and marketing features, you can manage marketing campaigns, contracts, orders, and more. Get even more business insights with accurate sales forecasts and customizable dashboards.


Enterprise Edition — Automate business processes using workflow and approvals, tailor Sales Cloud to your company with custom record types, and integrate with any system using our web services API. You can also manage complex sales territories, and see how your sales deals have progressed with deal trending.


Unlimited Edition — Get access to unlimited online training, over 100 admin services, and 24/7 toll-free support. Tailor Salesforce to fit your business by building custom objects and creating an unlimited number of custom tabs and apps. Plus, your admins will have access to several sandboxes for development and testing.


Service Cloud Platform

Licenses for Service Cloud

Service Cloud User: Lets support agents use the console for service.

Knowledge User:  Lets support agents create and edit knowledge base articles.

Live Agent User: Lets support agents communicate with customers using Web chat.

Customer Community: Lets support agents communicate with customers on an online community.

Features of Service cloud:

Feature Description
Case Management Record, track and solve customer issues across sales, service and support. Includes ability to create cases from an email (email to case) and from a web form (web to case). Cases can be managed in queues. Assignment rules and escalation rules can be defined.
Activities Activities in Salesforce are Tasks and Events. Activities can have a priority and assignment to a user that are related to cases or other Salesforce standard or custom objects.
CTI Integration Integration of telephony systems with Salesforce to allow functionality such as screen popping (display of incoming caller information), automatic dialling and phone control.
Contracts and Entitlements Recording of service contracts (e.g. warranties, subscriptions, maintentance agreements) related to accounts and the level of entitlement applicable that can be verified to determine if customers are eligible for support.
Call Scripting Provide a online interactive script for sales or support staff to follow when talking to a customer.
Live Agent Chat Provides a chat interface to allows customers to chat with Salesforce customer sales or service agents.
Solution Management Allows you to capture in a central location information to answer customer questions and support requests. Adds a search facility to access solutions via cases. Auto suggestions can be enabled to suggestion solutions based on case content. Solutions can also be exposed via a customer portal or a public website.
Service Cloud Console Consolidated view of related records in one screen with different frames to improve agent productivity. For example, instead of having to scroll down to the related lists of a contact and navigate to related records, the service cloud console allows you to navigate to related records via tabs.
Ideas Provides a facility for internal staff, customers and partners to submit, discuss and vote on ideas.
Social Service Monitor and create cases from tweets and posts. Resolve cases in social channels.
Communities for Service Customer self-service for issue management, searching for solutions and enabling customers to have discussion and answer questions between themselves.
Asset Management Allows tracking of which customers own what products. Can track the purchase date, install date, serial number, quantity and even if it is a competitor asset.
Knowledge Management Knowledge base of FAQs, common customer service response, resolutions and other information that is useful for solving issues, cases both accessible internally and externally in multiple channels.
Partner Service Collaboration Salesforce to Salesforce connection to allow creation and update of cases between partners.


Community Cloud

At its most basic level, a community is a group of people who share a common mission or goal. You can define what collaboration model best fits your needs. Do you want to have customers helping one another out? Peer-to-peer communities do just that. Perhaps you want a portal, where your customers can, for example, access account information.


Customer Community:  Best for service and marketing use cases (Powerful capabilities for customer service and engagement)

Partner Community:  Best for partner and channel management (Empower partners with deal collaboration and productivity tools)

Employee Community:  For mobile and social intranets (Transform your workplace and harness the power of social and mobile)

Differences between three communities:







Includes the following features: Includes the following features: Includes the following features:
Social collaboration for customers and employees Role-based sharing for controlled data access Accounts (read-only)
Mobile access Lead and opportunity management Contacts (read-only)
Custom branding Delegated administration capabilities Chatter Collaboration
Q & A for self-service Run and Export Reports Salesforce Knowledge (read-only)
Access to support cases, accounts, and contacts Dashboard viewing Cases (create, read, comment only)
Knowledge base articles Social collaboration for customers and employees 10 custom objects
Idea submission and endorsement Mobile access Dashboards
10 custom objects Custom branding Reports
Salesforce Identity Q & A for self-service Answers and Ideas
Powerful capabilities for customer service and engagement Access to support cases, accounts, and contacts Workflow
  Knowledge base articles Tasks and Events
  Idea submission and endorsement Advanced sharing
  10 custom objects  
  Salesforce Identity


Data Cloud

Data.com Clean helps you automatically update and enrich the account, contact and lead data that drives your most important sales and marketing processes, all right inside Salesforce.


data cloud 1

data cloud 2

Data.com: It will sync all the contacts and lead information from salesforce.


How to use Connect API in Apex

Using Connect Api , we can access the chatter post and delete the posts using apex.

Scenario: How to post an announcement to a community

Using “ConnectApi.Announcements” class , we can create/update/read/delete the announcements.


Post an Announcement:


public static ConnectApi.Announcement postAnnouncement(String communityId, ConnectApi.AnnouncementInput announcement)

CommunityID — String
announcement — ConnectApi.AnnouncementInput object
Return type:


* Posting an announcement to community using ConnectApi namespace.
* Includes convenience methods to:
* – Post Chatter @-mentions, rich text, and inline images with Apex code.
* – Take a feed item or comment body and return an input body that matches it.
* This is useful for when you want post an announcement and send emails to the users.
* This class works with API version 32.0 and later.


public class postingAnnoucement{

* Creating an Announcement using ConnectApi.Announcement
* @param – None
* @return – Announcement

public ConnectApi.AnnouncementInput myAnnouncement(){
//Creating an announcement
ConnectApi.AnnouncementInput newAnnouncement = new       ConnectApi.AnnouncementInput();
newAnnouncement.expirationDate= datetime.now(); // Announcement Expiration Time, usually it will be expire on end of the day.
return newAnnouncement;


* Posting an Announcement on community using ConnectApi.Announcement
* @param – None
* @return – Void

public void postAnnouncement(){

ConnectApi.AnnouncementInput input=myAnnouncement();
ConnectApi.Announcement myfinalannouncemnt=                ConnectApi.Announcements.postAnnouncement(‘communityid’, input);




Next time will see you with some other interesting topic, Thank you.

Custom Permission

Hey Guys, Once again brothers are back .

Have you ever build any vf page with Buttons Edit / Clone/ Save /Cancel ??

If yes,  Have you ever tried to assign this page to all users ?

If yes, Have you ever worried about permissions they have on the respective object to do clone/ Edit / Save / Cancel ??

Ok. let me explain it clear.

Any user in salesforce can able to access the whole page or not able to access the page.

Have you ever tried to give the access to the part of the page , based on User permissions??

Yes!!! If you want to give access to pare of the page based on login user access , you are at right place.

Lets get into the functionality. How it works both theoretical and followed by practical way.

Step 1: Create a Permission Set with Some Label “MyCustomPermission

Step 2: Go to Permission Set (SetUp > Permission Set(Type Permission Set in Quick Find))

Step 3: Open any Existing Permission Set (For Ex: MyPermissionSet)and Click on Custom Permission

Step 4: There you can able to  add the Custom Permission that you have created at Step 1(In Our ex: MyCustomPermission)

Step 5: Add Users to the Permission Set by clicking on Manage User.

Ex : Lets add X, Y and Z to our Permission Set (in our Case its MyPermissionSet)

Step 5:  Select the Custom Permission  and Click on Save. (We almost Done( 🙂 )

Step 6: Now create on VF Page and show the data to the User.

Step 7: Before dive into the topic, Let you explain something related to Render

Step 7.1 : Rendered = “True” Shows the Piece of the page  to the Users

                    Rendered = “False” Hides the Piece of the Page to the Users

Step 8: Give Rendered = “{!(IF($Permission.MyCustomPermission,TRUE,TRUE))}”

(Ex  :  <apex:CommandButton value=”Save” action”{!save}” Rendered = “{!(IF($Permission.MyCustomPermission,TRUE,TRUE))}” / >)

Let me Explain Exactly what Step 8 does:

1 ) It will check the Login User Permission Set first

2 ) It will check each & every  Permission Set t o which that User belongs

3 ) Check  whether the Permission Set has the “MyCustomPermission” as the Custom Permission

4) If the any of the Permission Set of that User have Custom Permission “MyCustomPermission” then the block of code will shown to the user.

Other wise, it  doesn’t.

In our Cases lets take i am  logging as a  User “X”

That  User have  Permission Set  called, “MyPermissionSet

MyPermissionSet” have  Custom Permission Called “MyCustomPermission

So as per our example :

<apex:CommandButton value=”Save” action”{!save}” Rendered = “{!(IF($Permission.MyCustomPermission,TRUE,TRUE))}” / >

This button will visible the User X.

Conclusion: The above ComomandButton says , “Other than X,  Y and Z , no other user is allowed to see Save the button”

That’s all Folks. I hope this article will help you guys a lot.

Lets discuss some other new topic in the Next meeting.

Comments are always welcome 🙂

Profiles Clone

In my organization , there are some profiles with salesforce license . Now,  the same profiles need to assign it to community users. Salesforce doesn’t support changing the license type in profile. Once the profile is created with salesforce license , we can’t change the license type in profile.
Now, we can’t configure manually each and every permission in new profile for community users. It will take days to configure manually. Is there any automation to do ???

Yes. We can achieve this with ANT Tool(Meta data API)

Steps to Create new profiles with different license

    1) Go to “Sfdctoolkit.com” and generate package.xml with all components in the organization.
    2) Extract all the organization meta data.
    3) Go to extracted Meta data folders and open “Profiles” Folder.
    4) open the particular profile and change the user license to “Community”

<userLicense> Salesforce</userLicense>

 <userLicense>Customer Community</userLicense>
    5) Rename the file and deploy back in to the organization.

That’s it . You will get all the permissions like as other profile and license will be Community.

Apex Sharing

Hi Guys, Today we came up with very exciting topic . Do you know what ?? Lets guess . Its none other than Apex Sharing.

Have you ever shared your records through Apex Sharing. ??

If not you are at right place to learn.

Lets get into the content.

Lets take the scenario like , Your OWD settings are Private on Custom Object (Job__c). If we like to share this record with Community User we have to do it at Profile / Permission Set Level.

Lets try to make it and come back to the next point

Have you find is there any way to share this with View All / Modify All ??

Ultimately not.

This is where you need this blog post.

In order to share the record with any Community / Community Plus User We have to share that record with Apex. 🙂

Have to ever heard about ” __Share ” in Salesforce. If not we have to learn it first in order to go further.

For every Custom Object we are creating , Salesforce will create a share object along with your Custom object.

I can understand the sentence it bit tricky . Lets form it with Example.

Lets take you are trying to create New object named as “Expense__c”.

While you creating this object, salesforce will give you other object also called as “Expense__Share”.

We have to make use of this “Expense_Share” object in our Apex Sharing.

Lets get into the Coding part.

Lets take We have to share one of the Record from “Expense__c” with Community User .

Lets take the User Id is “005XXXXXXXXXXXX”

In order to share this record with the above user , make use of this code.

List<Expense_Share> shareList = new List<Expense_Share>();

Expense__c getAllExpense= [select id from Expense__c limit 100];

for(Expense__c eachExpense : getAllExpense){

Expense_Share sharingInst = new Expense_Share();

sharingInst.ParentId = eachExpense.id;

sharingInst.UserOrGroup = ‘005XXXXXXXXXXXX’;




insert shareList;

}catch(Exception e){}