Batch Apex Example In Salesforce

Batch Apex Example In Salesforce

Batch Apex Example In Salesforce

What is Batch Apex in Salesforce?

Batch class in salesforce is used to run large jobs (think thousands or millions of records!) that would exceed normal processing limits. Using Batch Apex, you can process records asynchronously in batches (hence the name, “Batch Apex”) to stay within platform limits. If you have a lot of records to process, for example, data cleansing or archiving, Batch Apex is probably your best solution.

Batch Apex Example In Salesforce

Here’s how Batch Apex works under the hood. Let’s say you want to process 1 million records using Batch Apex. The execution logic of the batch class is called once for each batch of records you are processing. Each time you invoke a batch class, the job is placed on the Apex job queue and is executed as a discrete transaction.

Advantage of using batch Apex

  • Every transaction starts with a new set of governor limits, making it easier to ensure that your code stays within the governor execution limits.
  • If one batch fails to process successfully, all other successful batch transactions aren’t rolled back

 

Batch Apex Syntax

To write a Batch Apex class, your class must implement the Database.Batchable interface and include the following three methods:

start
Start method is automatically called at the beginning of the apex job. This method will collect record or objects on which the operation should be performed. These records are divided into subtasks and pass those to execute method.

Used to collect the records or objects to be passed to the interface method execute for processing. This method is called once at the beginning of a Batch Apex job and returns either a Database.QueryLocator object or an Iterable that contains the records or objects passed to the job.

Most of the time a QueryLocator does the trick with a simple SOQL query to generate the scope of objects in the batch job. But if you need to do something crazy like loop through the results of an API call or pre-process records before being passed to the execute method, you might want to check out the Custom Iterators link in the Resources section.

With the QueryLocator object, the governor limit for the total number of records retrieved by SOQL queries is bypassed and you can query up to 50 million records. However, with an Iterable, the governor limit for the total number of records retrieved by SOQL queries is still enforced.

execute
Execute Method performs an operation which we want to perform on the records fetched from start method.

Performs the actual processing for each chunk or “batch” of data passed to the method. The default batch size is 200 records. Batches of records are not guaranteed to execute in the order they are received from the start method.

This method takes the following:

  • A reference to the Database.BatchableContext object.
  • A list of sObjects, such as List<sObject>, or a list of parameterized types. If you are using a Database.QueryLocator, use the returned list.
finish

Finish method executes after all batches are processed. Use this method to send confirmation email notifications

Used to execute post-processing operations (for example, sending an email) and is called once after all batches are processed.

Here’s what the skeleton of a Batch Apex class looks like:

global class MyBatchClass implements Database.Batchable<sObject> {
    global (Database.QueryLocator | Iterable<sObject>) start(Database.BatchableContext bc) {
        // collect the batches of records or objects to be passed to execute
    }
    global void execute(Database.BatchableContext bc, List<P> records){
        // process each batch of records
    }    
    global void finish(Database.BatchableContext bc){
        // execute any post-processing operations
    }    
}

Key points about batch Apex

  • To use batch Apex, write an Apex class that implements Database.Batchable interface and make your class global
  • Implement the following 3 methods
      • start()
      • execute()
      • finish()
  • The default batch size is 200

 

Monitoring Batch Apex

To monitor or stop the execution of the batch Apex job, from Setup, enter Apex Jobs in the Quick Find box, then select Apex Jobs.

Batch class in salesforce

Here is example of Batch class in salesforce

global class BatchApexExample implements Database.Batchable<sObject> {
    global Database.QueryLocator start(Database.BatchableContext BC) {
        // collect the batches of records or objects to be passed to execute
        
        String query = 'SELECT Id, Name FROM Account';
        return Database.getQueryLocator(query);
    }
    
    global void execute(Database.BatchableContext BC, List<Account> accList) {
       
        // process each batch of records default size is 200
        for(Account acc : accList) {        
           	// Update the Account Name 
            acc.Name = acc.Name + 'sfdcpoint';
        }
        try {
        	// Update the Account Record
            update accList;
        
        } catch(Exception e) {
            System.debug(e);
        }
        
    }   
    
    global void finish(Database.BatchableContext BC) {
    	// execute any post-processing operations like sending email
    }
}

Invoking a Batch Class

To invoke a batch class, simply instantiate it and then call Database.executeBatch with the instance:

MyBatchClass myBatchObject = new MyBatchClass(); 
Id batchId = Database.executeBatch(myBatchObject);

You can also optionally pass a second scope parameter to specify the number of records that should be passed into the execute method for each batch. Pro tip: you might want to limit this batch size if you are running into governor limits.

Id batchId = Database.executeBatch(myBatchObject, 100);

Each batch Apex invocation creates an AsyncApexJob record so that you can track the job’s progress. You can view the progress via SOQL or manage your job in the Apex Job Queue. We’ll talk about the Job Queue shortly.

AsyncApexJob job = [SELECT Id, Status, JobItemsProcessed, TotalJobItems, NumberOfErrors FROM AsyncApexJob WHERE ID = :batchId ];

 

Scheduling Batch Apex

can also use the Schedulable interface with batch Apex classes. The following example implements the Schedulable interface for a batch Apex class called batchable:

global class scheduledBatchable implements Schedulable {
   global void execute(SchedulableContext sc) {
      BatchApexExample b = new BatchApexExample(); 
      Database.executeBatch(b);
   }
}

 

Test class for batch Apex

@isTest
private class BatchApexExampleTest {
    static testmethod void test() {
        // Create test accounts to be updated by batch
	Account[] accList = new List();
	for (Integer i=0;i<400;i++) {
	    Account ac = new Account(Name = 'Account ' + i);
	    accList.add(ac);
	}
	insert accList;

        Test.startTest();
            BatchApexExample b = new BatchApexExample();
	    Database.executeBatch(b);
        Test.stopTest();
        // Verify accounts updated
	Account[] accUpdatedList = [SELECT Id, Name FROM Account];
	System.assert(accUpdatedList[0].Name.Contains('sfdcpoint'));
    }
}

Best Practices for batch Apex

As with future methods, there are a few things you want to keep in mind when using Batch Apex. To ensure fast execution of batch jobs, minimize Web service callout times and tune queries used in your batch Apex code. The longer the batch job executes, the more likely other queued jobs are delayed when many jobs are in the queue. Best practices include:

  • Only use Batch Apex if you have more than one batch of records. If you don’t have enough records to run more than one batch, you are probably better off using Queueable Apex.
  • Tune any SOQL query to gather the records to execute as quickly as possible.
  • Minimize the number of asynchronous requests created to minimize the chance of delays.
  • Use extreme care if you are planning to invoke a batch job from a trigger. You must be able to guarantee that the trigger won’t add more batch jobs than the limit.

 

For more details about batch apex refer to batch apex trailhead

Permanent link to this article: http://www.sfdcpoint.com/salesforce/batch-apex-example-in-salesforce/

What is an API? (Application Programming Interface)

What is an API? (Application Programming Interface)

What is an API?

API means Application Programming Interface. An application programming interface (API) is an interface or communication protocol that allows two applications to talk to each other. API is an interface or communication protocol between different parts of a computer program intended to simplify the implementation and maintenance of software.

What is an API

What is API?

API is an acronym, and it stands for “Application Programming Interface”, API allows two applications to talk to each other.

An API may be for a web-based system, operating system, database system, computer hardware, or software library.

APIs let your product or service communicate with other products and services without having to know how they’re implemented. This can simplify app development, saving time and money. When you’re designing new tools and products—or managing existing ones—APIs give you flexibility; simplify design, administration, and use; and provide opportunities for innovation.

APIs by use cases

APIs can be classified according to the systems for which they are designed.

Database APIs. Database APIs enable communication between an application and a database management system. Developers work with databases by writing queries to access data, change tables, etc. The Drupal 7 Database API, for example, allows users to write unified queries for different databases, both proprietary and open source (Oracle, MongoDB, PostgreSQL, MySQL, CouchDB, and MSSQL).

Another example is ORDS database API, which is embedded into Oracle REST Data Services.

Operating systems APIs. This group of APIs defines how applications use the resources and services of operating systems. Every OS has its set of APIs, for instance, Windows API or Linux API (kernel–user space API and kernel internal API).

Apple provides API reference for macOS and iOS in its developer documentation. APIs for building applications for Apple’s macOS desktop operating system are included in the Cocoa set of developer tools. Those building apps for the iOS mobile operating system use Cocoa Touch – a modified version of Cocoa.

Remote APIs. Remote APIs define standards of interaction for applications running on different machines. In other words, one software product accesses resources located outside the device that requests them, which explains the name. Since two remotely located applications are connected over a communications network, particularly the internet, most remote APIs are written based on web standards. Java Database Connectivity API and Java Remote Method Invocation API are two examples of remote application programming interfaces.

Web APIs. This API class is the most common. Web APIs provide machine-readable data and functionality transfer between web-based systems which represent client-server architecture. These APIs mainly deliver requests from web applications and responses from servers using Hypertext Transfer Protocol (HTTP).

Developers can use web APIs to extend the functionality of their apps or sites. For instance, the Pinterest API comes with tools for adding users’ Pinterest data like boards or Pins to a website. Google Maps API enables the addition of a map with an organization’s location.

In today’s modern era, Web API is most popular API. Web API is used in our day to day use of mobile phone, laptop and other smart devices.

A Web API is an application programming interface for either a web server or a web browser. It is a web development concept, usually limited to a web application’s client-side (including any web frameworks being used)

API Release policies

APIs are one of the more common ways technology companies integrate with each other. Those that provide and use APIs are considered as being members of a business ecosystem.

The main policies for releasing an API are:

  • Private: The API is for internal company use only.
  • Partner: Only specific business partners can use the API. For example, transportation network companies such as Uber and Lyft allow approved third-party developers to directly order rides from within their apps. This allows the companies to exercise quality control by curating which apps have access to the API, and provides them with an additional revenue stream.[31]
  • Public: The API is available for use by the public. For example, Microsoft makes the Microsoft Windows API public, and Apple releases its APIs Carbon and Cocoa, so that software can be written for their platforms.

Example of an API

Most common example of using API is using google map. When we are using google map, we perform different type of requests like finding route between two points. Apps like Uber also use google API in background in their app.

REST API(Representational state transfer)

Representational state transfer (REST) is a software architectural style that defines a set of constraints to be used for creating Web services. Web services that conform to the REST architectural style, called RESTful Web services, provide interoperability between computer systems on the Internet. RESTful Web services allow the requesting systems to access and manipulate textual representations of Web resources by using a uniform and predefined set of stateless operations. Other kinds of Web services, such as SOAP Web services, expose their own arbitrary sets of operations.

REST API provides a powerful, convenient, and simple REST-based web services interface for interacting with Salesforce. Its advantages include ease of integration and development, and it’s an excellent choice of technology for use with mobile applications and web projects. For certain projects, you may want to use REST API with other Salesforce REST APIs. To build UI for creating, reading, updating, and deleting records, including building UI for list views, actions, and dependent picklists, use User Interface API. To build UI for Chatter, communities, or recommendations, use Chatter REST API. If you have many records to process, consider using Bulk API, which is based on REST principles and optimized for large sets of data.

What are methods in REST

  • GET : Retrieve data identified by a URL.
  • POST : Create a resource or post data to the server.
  • DELETE : Delete a resource identified by a URL.
  • PUT : Create or replace the resource sent in the request body.
  • PATCH : Update all the representations of the member resources of the collection resource using the instructions in the request body, or may create the collection resource if it does not exist.

 

SOAP API(Simple Object Access Protocol)

SOAP (abbreviation for Simple Object Access Protocol) is a messaging protocol specification for exchanging structured information in the implementation of web services in computer networks. Its purpose is to provide extensibility, neutrality, verbosity and independence. It uses XML Information Set for its message format, and relies on application layer protocols, most often Hypertext Transfer Protocol (HTTP), although some legacy systems communicate over Simple Mail Transfer Protocol (SMTP), for message negotiation and transmission.

SOAP allows developers to invoke processes running on disparate operating systems (such as Windows, macOS, and Linux) to authenticate, authorize, and communicate using Extensible Markup Language (XML). Since Web protocols like HTTP are installed and running on all operating systems, SOAP allows clients to invoke web services and receive responses independent of language and platforms.

 

What is difference between SOAP and REST?

SOAP API: The Simple Object Access Protocol (SOAP) is an attempt to define a standard for creating web service APIs. It is a pattern, a web service architecture, which specifies the basic rules to be considered while designing web service platforms. It typically uses HTTP as a layer 7 protocol, although this is not mandatory.

The SOAP message itself consists of an envelope, inside of which are the SOAP headers and body, the actual information we want to send. It is based on the standard XML format, designed especially to transport and store structured data. SOAP may also refer to the format of the XML that the envelope uses. SOAP is a mature standard and is heavily used in many systems, but it does not use many of the functionality build in HTTP. While some consider it slow, it provides a heavy set of functionality which is a necessity in many cases. It might now be the best solution for browser-based clients, due to its custom format.

  • Supports data in the form of XML only and not JSON.
  • Requires WSDL for the integration
  • Use SOAP API in any language that supports Web services.

 

REST API: The Representational State Transfer (REST) is another architectural pattern (resource-oriented), an alternative to SOAP. Unlike SOAP, RESTful applications use the HTTP build-in headers (with a variety of media-types) to carry meta information and use the GET, POST, PUT and DELETE verbs to perform CRUD operations. REST is resource-oriented and uses clean URLs (or RESTful URLs).

  • Supports both XML and JSON format
  • Preferred for mobile and web apps since JSON being Lighter the app runs smoother and faster

 

For more detail about API, refer to wikipedia page.

For more details about integration and API in salesforce please refer Salesforce Integration Interview questions and answers

Permanent link to this article: http://www.sfdcpoint.com/salesforce/what-is-an-api/

5 Reasons to Take up Marketing Cloud Certification

5 Reasons to Take up Marketing Cloud Certification

Salesforce created history in the field of technology. The success of salesforce products and solutions have been so high that thousands of companies and millions of customers are signing contracts and getting associated with salesforce every day. Getting a marketing cloud certification from salesforce will give you the privilege lead organization to greatness. Newbies will seek your guide in knowing things about cloud development and organization will rely on you to make strategic decisions.

What is salesforce?

Salesforce is an American based company that has revolutionized the world with its unique CRM software. The user interface of Salesforce CRM is clean, and customer problems are treated within a response time of minutes. This is the reason most of the fortune companies use salesforce CRM rather than other CRM, which is available in the market. Now to use the salesforce CRM, an individual would be needed that would have a salesforce certification. This is the reason why salesforce can create millions of jobs worldwide.
Companies are ready to work with people who have salesforce certification since that would mean individual have great technical skills to handle CRM software. Salesforce has three sections, which are regarded as administrators, Salesforce consultants, and developers. Salesforce administrators will have a very different job rather a salesforce administrator. Similarly, a developer will have very different job role than the consultant and the administrator. In order get a marketing cloud developer certification from salesforce you need to have sit for salesforce certification exam.

Salesforce certification exam

Salesforce certification exam is a test to know your love for cloud development. The exam will evaluate your skills as a developer. So, this means before appearing for the test you need to have clear understanding of certain things. Things like data integration, data mining, data extensions should be understood in detail so that you can take up the test with ease. Also, the test will check your skills on data modeling, security and programming languages.

The need for marketing cloud certification

Recent studies have shown that salesforce will create millions of jobs by 2021. So not learning about the salesforce will be a no brainer. A marketing cloud developer of salesforce has huge demand since fortune companies are looking for talented salesforce developer. This article is going you state top 5 reasons why you should get marketing cloud developer certification.

1. Will make you a security expert

No company wants their data breached or wants a cybercriminal that asks for ransom performing a malware attack. When you become a marketing cloud developer then you will know about encryption functions to safeguard company’s data. In addition, you will also know the use of access control systems to cause restrictions on people using the company’s information, and have the knowledge to regularly do a cloud backup in case of natural and human-made disaster.

2. chances of getting jobs are higher

Salesforce certification makes a very good impression in Infront of the recruiters. Studies have shown that 80 % of the companies are looking for individuals that have salesforce certification. When the recruiters will a see a marketing cloud developer certification, then that the employer will already know that you don’t need inhouse training to do the job since you have enough talent skills to start the career from day one. Companies will appreciate that you have invested in something that helps in securing computer networks which are at constant threat every day.

3. Will always keep you in the loop

Digital marketing and knowledge of protecting a computer network would be the future of the world. Most of the companies need the organic reach to grow so that they can increase their sales and visibly of the company. To do this they need marketing cloud developers who have immense knowledge digital marketing. The marketing cloud developer should know to drive in more sales in a company. When you will salesforce certified, then such a certification will play a vital role in making your company grow.

4. Will make you a master when others have just started

A marketing cloud developer from salesforce means that the individual has the best possible abilities and talents when it comes to customer relations management. As a Salesforce developer, you will in the position handle complicated tasks with ease. Your career will grow at an alarming rate as salesforce certification will act as a skyrocket.

5. will help you in becoming a subject matter expert

Every organization has different requirements. For instance, a cloud development of an e-commerce company will be different from an IT company that deals with producing software. With you have salesforce certification then you will automatically be a subject matter expert. Organizations will come to you and ask for your suggestions. Once you become a marketing cloud developer then that means you will be able to operate marketing cloud products.

Is salesforce being the only option

No salesforce is not the only option. There is other CRM software that is present in the market. For instance, there is sugar CRM, there is Zoho CRM, and there is oracle CRM. All these CRM certifications will be good, but salesforce certifications have an aura of their own. Companies trust a salesforce professional rather than a professional of any other certification. Since salesforce has haven in the industry for quite some time, it is having huge reputation for itself. Once you become a marketing cloud developer by receiving certification from salesforce you will able to design mobile and social applications with lightning-fast tools. So, salesforce is not the only option, but it indefinitely the best option

Final thoughts

Going through this article, you will realize why salesforce has been successful in creating millions of jobs worldwide. Having a marketing cloud developer from salesforce can skyrocket your career. Your developer skilled will be enhanced, and you will have the chance to stand out from the crowd. So, calm your mind and prepare to take a Salesforce certification exam that will test your skill in cloud development. Once you pass the test, you would upscale your salary package and live the rest of the life having a job security.

Permanent link to this article: http://www.sfdcpoint.com/salesforce/5-reasons-to-take-up-marketing-cloud-certification/

Have you run out of Dynamic Dashboard

Have you run out of Dynamic Dashboard?

Have you run out of Dynamic Dashboard

Have you ever seen this error?

‘You have reached the limit for dashboards run as the logged-in user.’ 

run out of Dynamic Dashboard Error

When you see this error then that means your org has reached the assigned limit for dynamic dashboards. That means you will no longer be able to create dashboards that will run as the logged-in user/ the dashboard viewer.

The following are the default values:

  • Enterprise Edition: up to 5 per organization.
  • Performance and Unlimited Edition: up to 10 per organization.
  • Developer Edition: up to 3 per organization.

If you want to increase the number of dynamic dashboards for your org than you need to pay for it as additional dynamic dashboards come at an additional price.

Or,

You can check if you have any unused dynamic dashboards which you can delete to free up the assigned count for your org.

To search for the Dynamic dashboards within your org you can choose to follow below methods:

Create a custom report on Dashboards

  1. In setup, search for Report Types and click “new custom Type”.
  2. Primary Object -> Dashboard. Give the report type a description and choose a category to store the report type.

run out of Dynamic Dashboard Report Type1

run out of Dynamic Dashboard Report Type 2

  1. Select Deployed checkbox and click on Next.
  2. When the page reloads click on save.
  3. Go to your app and start creating a report by clicking on New Report.

run out of Dynamic Dashboard Report Type Choose

  1. Select Dashboard as your report type.
  2. Add the Filter in the report as – Dashboard running user = Run as logged-in user, let authorised users change running user.
    run out of Dynamic Dashboard Report Setting
  3. Click apply and run report.

 

Use Workbench

  1. Go to Workbench
  2. Tick I agree to the terms of service
  3. Click Login with Salesforce
  4. Choose “SOQL Query” on Jump to. Query would look like this – SELECT FolderName,Title FROM Dashboard WHERE Type = ‘LoggedInUser’ OR Type = ‘MyTeamUser’

 

  1. Choose “Dashboard” for the Object.
  2. Hit Select
  3. Choose the columns you want to show on under Fields
  4. Filter results by Type = LoggedInUser

 

Other options you can choose:

  1. Determine which dashboard settings you can change from the dashboard viewer to any other option. This will help reduce the count towards your org limit. You can change the setting by editing the dashboard and clicking on the settings button
    run out of Dynamic Dashboard Report Property
  2. Try to delete the dashboard from the recycle bin if even after deleting you are unable to create dynamic dashboard.

 

Permanent link to this article: http://www.sfdcpoint.com/salesforce/have-you-run-out-of-dynamic-dashboard/

Custom Metadata Types salesforce

Custom Metadata Types salesforce

What are Custom Metadata Types?

Custom metadata type in salesforce is customizable, deployable, packageable, and upgradeable application metadata. Custom metadata types are mainly used for app configuration. Custom Metadata Types are similar to Custom Settings in Salesforce, except that they are deployable and packagable. First, you create a custom metadata type, which defines the form of the application metadata. Then you build reusable functionality that determines the behavior based on metadata of that type.

Custom Metadata Types salesforce

 

After you create a public custom metadata type, you or others can declaratively create custom metadata records that are defined by that type. When you package a public custom metadata type, customers who install the package can add their own records to the metadata type. Your reusable functionality reads your custom metadata and uses it to produce customized application behavior. For example, you can use custom metadata types for the following.

  • Mappings—Create associations between different objects, such as a custom metadata type that assigns cities, states, or provinces to particular regions in a country.
  • Business rules—Combine configuration records with custom functionality. Use custom metadata types along with some Apex code to route payments to the correct endpoint.
  • Master data—Let’s say that your org uses a standard accounting app. Create a custom metadata type that defines custom charges, like duties and VAT rates. If you include this type as part of an extension package, subscriber orgs can reference the master data.
  • Whitelists—Manage lists, such as approved donors and pre-approved vendors.
  • Secrets—Store information, like API keys, in your protected custom metadata types within a package.

Custom metadata rows resemble custom object rows in structure. You create, edit, and delete custom metadata rows in Metadata API or in Setup. Because the records are metadata, you can migrate them using packages or Metadata API tools.

Difference Between Custom Settings and Custom Metadata Types

Main difference between custom metadata and custom setting is that custom metadata records are deployable and packagable. But we can not deploy custom setting data.

Here is list of Difference Between Custom Settings and Custom Metadata Types

  • Custom settings enable you to create custom sets of data, as well as create and associate custom data for an organization, profile, or specific user. All custom settings data is exposed in the application cache, which enables efficient access without the cost of repeated queries to the database. Custom metadata are like custom setting but records in custom metadata type considered as metadata rather than data. These are typically used to define application configurations that need to be migrated from one environment to another, or packaged and installed.
  • There are 2 types of custom setting List and Hierarchy Custom setting. There are no such types in custom metadata. Custom metadata does not support Hierarchy type of data based on user profile or specific user.
  • You can control the visibility of custom setting by specifying it as public or protected. If custom setting is marked as protected, the subscriber organization will not be able to access the custom setting. If it is marked as public, then subscriber org can also access it.  You can control the visibility of Custom Metadata Types by specifying it as public or protected. If it is marked as public type, then anyone can see it. If it is marked as protected type, in the installed managed package subscriber organization, only Apex code in that managed package can use it.
  • Custom settings do not support relationship fields. You can create lookups between Custom Metadata objects.
  • You can access custom setting data using instance methods and can avoid SOQL queries to database. With custom metadata types, you can issue unlimited Salesforce Object Query Language (SOQL) queries for each Apex transaction.
  • Custom metadata type are visible in test class without “SeeAllData” annotation but custom setting data is not visible.
  • Custom metadata records are deployable but custom setting data is not.

 

For more details refer to official link and custom metadata type trailhead

Permanent link to this article: http://www.sfdcpoint.com/salesforce/custom-metadata-types-salesforce/

Salesforce Implementation Guide

Salesforce Implementation Guide

How to implement Salesforce CRM?

No matter how big or small your company—or the Salesforce CRM project—success requires planning, commitment, and strong sponsorship from your company’s executive team. It’s also critical that you understand the needs of your managers and users before getting started. Without a detailed understanding of these needs, it’s easy to go overboard in customizing the application just because it’s so easy.

Salesforce CRM Implementation Steps and  Best Practices

You might be thinking to yourself, “I don’t need a consultant — my organization can handle an implementation, no problem.” That may very well be true, but unless you have the internal expertise and resources to handle a large-scale Salesforce implementation, it’ll likely take you a lot longer and cost more to self-implement. And, should things go wrong along the way, you won’t have the professional support you need to get your project back on track. All of this could result in a faulty implementation and a low ROI — so, why take the risk.

Let’s say you want to start with CRM implementation in your company or you want to consult your customer ask 3 Questions to yourself:

  • What? – What is Salesforce CRM?
  • Why? – Why is Salesforce CRM needed? how will it help you to achieve your goals?
  • How? – how will you be able to make your project successful with the right kind of resources and process implementation?

How to Implement Salesforce CRM?

Here is list of key steps for Salesforce crm implementation:

  • Plan and prepare
  • Set up and customize
  • Deploy Salesforce CRM
  • Drive adoption
  • Continuously improve.

Salesforce Implementation

 

Step 1: Plan & Prepare

Planning is very crucial for the success of the Project. It has been a proven fact that Planning internally as a Customer becomes crucial for the success of the Project.

Here is list of steps for Salesforce crm implementation planning

  • Find an Executive Sponsor
  • Team Structure / Resource Planning
  • Set Metrics for Success
  • Project Methodology
  • Build a Project Plan

Find an executive sponsor

The executive sponsor lends their influence to the project by becoming its champion. According to Salesforce MVP and implementation expert, Tal Frankfurt, “Having that person’s full support and participation—from the planning stage until the go-live date and beyond—is absolutely critical.”

Team Structure/ Resource Planning

It is very important to organize a team and to know the resources needed before you start the implementation. This helps you better plan the implementation and lead toward success. The size and scope of your rollout will determine how many resources you need. However, all project teams should include the following participants:

  • One or more system administrators  – This person should be involved throughout the implementation and afterward. It’s important that the administrator understands the business processes and requirements from managers and users.
  • A project manager – This person leads the implementation and makes sure the project tasks and overall timeline are on track
  • One or more power users – These users help make sure your project will meet the needs of the end-users, including management. We also recommend that you use power users as first-line support. To fill that role, consider training these users first and then providing more in-depth training.
  • One or more trainers – Trainers need to identify relevant materials from salesforce.com or develop custom training materials (such as quick-reference guides). You’ll need materials both for the initial implementation to onboard new users and once the application is live, for remediation or for new functionality.
  • Implementation team – Are you capable of implementing it in-house or do you need a consultant? Make sure before you make a decision of implementing in-house you have all the salesforce expertise. Usually, an implementation team consists of a Developers, Configuration Engineer,  Business Analyst, Solution Architect, Deployment Engineer.

Set Metrics for Success

It is very important to set a realistic goal and measurement of success.

You should approach CRM implementation with specific, measurable goals. These goals should be articulated before shopping for a CRM program even begins. Anyone who has taken a goal-setting seminar (and who in sales hasn’t?) knows about SMART goals, goals that are:

  • Specific
  • Measurable
  • Achievable
  • Realistic
  • Time-based

Your Salesforce CRM implementation will be an ongoing, living process. To get the most from your investment, it’s important to roll out functionality early and often. Start with small goals that track against your overall vision. We recommend that you “crawl, walk, run” by keeping your goals simple and attainable and then adding to your achievements.

Project Methodology

The two most widely used approaches are the ‘waterfall’ and ‘scrum’ methodologies. The waterfall is the traditional, phased, sequential approach that may lead to a drawn-out implementation timeline. The scrum approach is to constantly build and deliver small units of functionality and revisit and refine them with each cycle.

Salesforce.com uses the more iterative scrum approach for its development. With Salesforce regular releases (spring, summer, winter) we deliver new enhancements as soon as we have a baseline of functionality and then build and refine the functionality based on user feedback and use cases. For example, Salesforce quoting module was first delivered as a pilot with limited functionality. Salesforce added additional functionality in the next release as a beta release. In the next release, Salesforce added even more features and made it generally available. Salesforce continues to add additional features as customers use quoting and let Salesforce know what you want.

Build a Project Timeline

Once you’ve chosen an implementation approach and prioritized all requirements, you can build the project timeline. Every timeline needs to include the time required to design, build, and deploy. Prioritization of requirements is also key to ensure any ‘must-haves’ are included in the first phase of rollout.

If you use a scrum approach, your timeline will consist of short iterations of the design, build, and deployment phases for a smaller set of requirements. With the waterfall approach, the design and build phase includes all requirements prioritized for the initial deployment. For both approaches, consider what tasks can be done in parallels, such as cleaning, mapping, and loading data.

Below points to Remember:

  • Use Project Management tools like SmartsheetTrello or Basecamp.
  • consider each requirement and estimate the effort required.
  • Plan Contingency.
  • Current System Rollout plan

Define Business Process

The next step is to interview a subset of those team members, so you can gain a greater understanding of the pain points they experience on a day-to-day basis. These interviews will also give you an idea of what these teams want out of a Salesforce implementation — in other words, what features and functionality they think will bring them the greatest value. These interviews should occur at every level of business, from managers and stakeholders all the way down to end-users.

Let’s say, for example, that you talk to key members of your sales team and learn that they struggle to effectively qualify leads due to a lack of insight into each lead. As a result, your sales representatives consistently pursue the wrong leads, wasting time and resources in the process. Based on this conversation, you can identify both the problem and a potentially workable solution, such as implementing — or, if you already have one, upgrading — a customer relationship management (CRM) system so that your sales team can gain a true 360-degree view of each lead in the pipeline.

Interviewing key team members is a simple, yet effective way to figure out which business processes your Salesforce implementation project plan should focus on, as well as to ensure user adoption further down the road.

Step 2: Setup & Customize Salesforce CRM

Once you define your requirements, understand your data, and choose an implementation method, you’re ready to set up and customize Salesforce CRM. We recommend you keep the initial implementation simple and use the ‘click-not-code’ built-in configuration tools, rather than using Force.com code (Apex) and the functionality of the pages of the Force.com platform. As you get to experience with the application and feedback from your users, consider how to enhance the application with those tools.

Define early how to customize the application. For example, if you need multiple record types for an object and field-level security, identifying that need helps as you create new custom fields and associate them to the correct record type, page layout, and security level in the wizard.

Be careful not to over-configure. For example, one customer created many new fields on its contacts page, which meant users had to scroll—a lot. As a result, they didn’t fill out many fields and the company had started over with designing that page.

Here’s a suggested approach for setting up and customizing Salesforce CRM:

  • Define the security settings – Include the organization’s wide-defaults, roles, and user profiles. Test those settings by logging in with different roles and profiles. Make sure each user type can see, create, and edit information as needed, that the fields are in the right order, and that critical fields are required. Another important step is mapping all the roles to the users who will be added to the system, to ensure all users are associated with the correct roles when you go live.
  • Customize the application – Create custom fields, page layouts, custom objects, custom tabs, rules, and other application customizations based on the design for each requirement to meet the business needs.
  • Create your reports – We recommend that you start with the standard reports and customize them as needed to show the information you defined in the planning stage. You can easily customize reports to include any custom fields you need.

 

Step 3: Deploy Salesforce CRM

Once you feel confident in the solution and the architecture, and your users seem to like it, you’re ready to prepare for go-live.

Prepare Go Live:

  • Move your entire configuration to a full sandbox environment to see how it performs under large data volumes. A full sandbox — as opposed to a partial or developer sandbox — is a test environment that contains an exact replica of your production data (customer information, deals, and so on). This enables you to simulate how your configuration will run in a production environment, so you can identify and resolve potential issues such as heat barriers, runtime errors, latency, and downtime prior to go-live.
  • Develop a go-live checklist. This list should include all of the pieces you’ve configured, all of the data transformations that need to occur, and all of the integrations that need to be rebuilt in your production environment. Ascribe an order to this list so that when the time comes to deploy the implementation, everything is deployed in the correct order. There are a lot of dependencies in Salesforce, and certain configurations can’t be deployed before others. The go-live checklist should also identify the method of deployment you intend to use.

Communicate to End Users:

It’s important to communicate early and often, so users know about coming changes. Communication should come from the executive sponsor and focus on both the benefits to the company and what’s in it for the users. Build excitement and set expectations. As the deployment draws nearer, outline the deployment plan, including when users will be trained and how they’ll be supported.

Add Users

Before loading your production data, first load all users. You can load users manually, one at a time, or with the data loader functionality. We recommend you first load all users and data in a sandbox environment before loading the final set of data into your production environment. (Unlimited Edition includes sandboxes; for all other editions, you can purchase sandboxes for an additional fee. Please contact your account executive for more information.)

If you load users with the data loader, the password notification is not automatically sent out. That’s good because you don’t want to send out passwords until users have been trained and you’re ready for them to log in. If you add users manually, you can select whether the user is notified.

Develop a Change Management Process

Change management is an essential part of any implementation because it tells your constituent base what to expect, invests in the project, and empowers them for success. For example, if you’re making upgrades to your existing Salesforce implementation, your change management strategy should communicate to end-users how long Salesforce will be down — or, better yet, eliminate downtime entirely — and how they should track data until they’re able to log back in. If you’re deploying Salesforce for the very first time, your change management strategy should explain to end-users how they’ll benefit from the new systems and which training courses they should take to get up to speed.

It’s also essential to get executive leadership involved in the change management process.

Import data

Because data is loaded at a specific time, the transition will be easier if the data load is as close to deployment as possible. Be sure you schedule enough time to map and test the data. Here’s a summary of the steps involved in importing data:

  1. Plan your data import
  2. Prepare your data
  3. Test the import
  4. Execute the import
  5. Validate your data

Note: If users are still entering data into an existing system after the initial data load but before the go-live or cutover, there may be a set up “delta” data set. You’ll need to import or manually load that data and incorporate it into any training exercises.

Train end-users

Training end-users is key for the adoption of the tool. If you have a sandbox environment, you can train end-users around the same time you load your data. Use a subset of data—or data developed specifically for training—and plan training with hands-on exercises as close as possible to the go-live date. The sooner users can begin to use the application, the better; that way they can get immediate help in response to any questions. Create a Training plan with details as mentioned in the Salesforce tips

Step 4: Drive Adoption

CRM adoption is positively correlated with sales success Once you’re up and running, it’s critical to get your users on board. To do so, it’s important that you support your users, measure adoption, and encourage adoption.

Three other characteristics in addition to advanced CRM that must be in play for a sales organization to be successful:

  • Sales processes must be formal and dynamic.
  • Sales processes need to be adopted by the organization’s sellers.
  • Customer relationships should reflect salespeople as strategic advisors or trusted partners.

Measuring adoption is critical, both immediately after go-live and over time. Set up usage reports and use adoption dashboards to track progress right from the start. You’ll find adoption dashboards on the AppExchange.

Step 5: Maintain the System

As salesforce release 3 times a year and brings really cool features that will help you to take your implementation at the next level and improve as you use it.

Once your users are in Salesforce, you want to keep them there. That’s why inspiring CRM adoption is so important. Your post-implementation plan should not just be about technology, but about the people who use it. Be extremely responsive to users’ questions and challenges, and try to support them in real-time. Refer them to your documentation and add their questions to your feedback list if you haven’t addressed it in your documentation.

Once Salesforce CRM is live, a new cycle of planning begins for the next phase, as you make available new functionality to add value and respond to user requests. Release management should begin as soon as possible after the initial deployment. This approach will also let end users know that you’re addressing their needs and requests.

For more details, please refer this link

All the Best 🙂

Permanent link to this article: http://www.sfdcpoint.com/salesforce/salesforce-implementation-guide/

Lookup Screen Component in Salesforce Lightning Flow

Lookup Screen Component in Salesforce Lightning Flow

Lookup Screen Component in Salesforce Lightning Flow: Salesforce has released a new screen component – Lookup. As the name suggests, this new screen component lets users search for a record in a flow just like a lookup field in Salesforce.

Before this, the only option to select a record in the flow was to use the picklist screen component and each picklist value will denote a separate record of an object.

Using the lookup screen component users can easily search and define the record in the flow and you can also set the current recordID or default value in the lookup field in the flow so that users don’t have to select the record every time they are running the flow from a record.

How to Use the Lookup Screen Component in Salesforce Lightning Flow?

Let’s consider a use case where you need to create a screen flow and want to get some input from the users. And once the flow is executed you want to create a record from the user’s inputs and get it related to a parent object.

In my case, I have a survey object which has a lookup relationship with the account. On the account page, I want the users to go through a set of screens and then the flow will create a Survey record and show as a related list on the account page once the flow is executed. For that, we need to link the survey record to the account record by mentioning a value on the lookup field in the flow.

Lookup in Salesforce Lightning Flow

In the above screenshot, I have added a lookup field by the name of Account since I want to display the account records in my lookup field.

Field API name – Enter the API name of the field which is a lookup field to the object of which you want to show the records. In my survey object, I have a field by the API name AccountName__c which is a lookup to accounts.

Label – Field label of the lookup field which appears on the flow screen.

Object API name – The API name of the source object. The object where the field API name is present.

Record id – Record ID value for the lookup. You can mention the current record id so that by default the lookup field shows the current record from which the flow is executed.

Require – Requires users to enter a value before they can move to the next screen.

Lookup Component in Salesforce Flows

Store lookup values in the flow

When you add a screen component to flow, the values are automatically stored in a variable. When the user navigates to the next screen, the values are assigned to the flow variable.

To store values manually, select manually assign variables (advanced).

All attributes are available to store inflow variables, but most likely you must store this attribute.

ATTRIBUTE DESCRIPTION
Record ID The ID of the record that the user selects.

You can store this value in a text variable.

Record Name The name of the record that the user selects.

You can store this value in a text variable.

 

Permanent link to this article: http://www.sfdcpoint.com/salesforce/lookup-screen-component-in-salesforce-lightning-flow/

Salesforce Spring ’20 Release Notes

Salesforce Spring ’20 Release Notes

All you need to know about Salesforce Spring ’20 Release Notes

Salesforce Spring ’20 Release Notes: As we come towards the end of the year and already excited for the new Year. Here comes the summary of some cool and important features for admins and developers in Salesforce Spring ’20 Release.

Spring 20

Empty the Recycle Bin in One Step

Empty your Salesforce org’s Recycle Bin in Lightning Experience with a single click. Previously, you either selected individual items to delete or had to switch to Salesforce Classic to permanently delete all items at once.

Salesforce Spring 20 Empty Recycle bin

New Lightning Experience Features with the Lightning Extension for Chrome (Generally Available)

Are you an early adopter of the latest and greatest technology, or do you want to become one? With the Lightning Extension, now generally available, you can gain access to the latest Lightning Experience features and try them before everyone else.

Setup:  Download the Lightning Extension for your browser. From the Lightning Extension features panel, choose which features to turn on.

Salesforce Spring 20 Lightning Chrome Extensions

To control which features are available to your users, from Setup, in the Quick Find box, enter Lightning Extension, and then select Lightning Extension. From there, you can activate individual features or disable the extension as a whole. Changes can take up to 24 hours to take effect.

Salesforce Spring 20 Lightning Chrome Extensions

Clone Objects Along with Their Related Records

The Clone with Related action makes it simple to handle a variety of repeating business processes. When you click Clone with Related, all of the original object’s related records are also added to the cloned object.

Setup: In the Object Manager, find one of the supported objects and select Page Layout. Add the Clone with Related action to the layout, and save. In the dialog, the order of the options can’t be changed.

Salesforce Spring 20 Clone with Related Records

Navigate to a Record’s Create Page with Default Field Values

Use the new lightning/pageReferenceUtils module or lightning:pageReferenceUtils Aura component to build navigation links in your components that prepopulate a record’s create page with default field values. Prepopulated values can accelerate data entry, improve data consistency, and otherwise make the process of creating a record easier.

Create custom buttons and links that pass default field values to a new record.

To construct a custom button or link that launches a new record with prepopulated field values, use this sample formula:

/lightning/o/Account/new?defaultFieldValues=
    Name={!URLENCODE(Account.Name)},
    OwnerId={!Account.OwnerId},
    AccountNumber={!Account.AccountNumber},
    NumberOfEmployees=35000,
    CustomCheckbox__c={!IF(Account.SomeCheckbox__c, true, false)}

Aura Components in the ui Namespace Are Deprecated

Salesforce plans to end support for the deprecated components on May 1, 2021.

To Solve this issue: Replace the deprecated components with their counterparts in the lightning namespace. These components are faster, more efficient, and they implement Lightning Design System styling out-of-the-box.

Please refer to the release notes on the details of the deprecated Aura components and their recommended alternatives.

Assign Tasks to a Queue

Yes, you heard it right! Now you can assign tasks with the shared queues.

When reps assign tasks to a queue, those tasks are available to members of the queue, which means everyone can pitch in to help. No more relying on one sales rep to do it all. Now others on the team can lend a hand without waiting for work to be delegated or reassigned

Salesforce Spring 20 New Task

Setup: In Setup, enter Queues in the Quick Find box and then select Queues. From the Queues setup page, select New. Then, create a queue and assign Tasks as the supported object.

Tasks Setup Spring 20

View and Edit Case Details from the List View with Case Hover in Lightning Experience

Agents can save time by previewing, editing, and deleting cases directly from the list view with a compact preview that appears when they hover on the case subject.

Setup: Hover over the Subject line to see a preview of the case and to quickly edit or delete the case.

Salesforce Spring 20 Edit Case with hover

Update New and Changed Records 10 Times Faster by Using Before-Save Updates in Flows

Creating or updating a record can now trigger an auto launched flow to make additional updates to that record before it’s saved to the database. Before-save updates inflows are much faster than other available record-triggered updates. For example, a before-save update in a flow is 10 times faster than an update in a record-change process that’s built-in Process Builder. Replace your record-change processes with flows to minimize how often the spinner appears when users save records.

Setup: Create an auto launched flow and open the Start element. For What Launches the Flow, select New or updated records—flow makes fast field updates.

Salesforce Spring 20 Flows

No Maximum Daily Cap for API Calls

I am sure all developers got excited about this change. Finally, the maximum daily cap of 1,000,000 API requests has been removed. 

Why: This change allows you to make more API calls without exceeding your allocation.

Create a Filtered List of Records Using New Time-Related Conditions (Beta)

You now have more ways to filter a list of records using time-related conditions in a conversational search. To get the most relevant search results, enter a conversational search using the words modified, created, viewed, or closed followed by a relative time period. For example, enter “cases closed this year,” to see a list of cases from the current year with closed status.

Salesforce Spring 20 Time Filters

Customize When Prompts Appear to Users

Quickly change the amount of time to delay prompts. Decrease the global delay time to accelerate onboarding prompts or increase the delay to spread out announcements and updates. Ignore the global delay time to show a prompt when a page first loads or to show multiple prompts a day without changing the global delay time for all prompts.

From Setup in Lightning Experience, enter In-App Guidance in the Quick Find box, and then select In-App Guidance.

Click Prompt Settings and change the hours and minutes under Delay Between Prompts. Specify up to 99 hours and up to 59 minutes. By default, a prompt appears to a user no more than once every 24 hours, per app.

Salesforce Spring 20 Prompt Settings

Specify Profiles When Creating Prompts

Fine-tune your prompt’s message for a specific audience, what objects and data they have access to, or what they can do. Previously, you could only use permissions to display prompts to specific users. Starting in Spring ’20, use standard and custom profiles too.

Setup: From Setup in Lightning Experience, enter In-App Guidance in the Quick Find box, and then select In-App Guidance.

If you select multiple profiles, the prompt appears to any of the profiles specified. You can select a combination of up to 10 profiles and permissions for each prompt. If you select multiple items, the prompt appears to users who have all the permissions specified and any of the profiles specified.

Salesforce Spring 20 Prompt Permission

Manage All Lightning Experience Configuration Converter Tabs from One Place (Beta)

The new Home tab is your home base for the transition tool. Tiles summarize the status of each tab in the Lightning Experience Configuration Converter. Kick off scans of individual tabs, and find out what’s left to do.

Why: Easily track your progress as you reduce the number of necessary fixes and change each tab’s status icon to green.

Salesforce Spring 20 Configuration converter tab

The Lightning Experience Configuration Converter is a standalone tool that lives outside of Salesforce. We recommend that you run it in a sandbox or Developer Edition org first, and then migrate your changes to your production org.

Note – As a beta feature, the Home tab in the Lightning Experience Configuration Converter is a preview and isn’t part of the “Services” under your master subscription agreement with Salesforce.

Attach Formatted Spreadsheets to Report Subscriptions (Beta)

When people subscribe to a report, a new option lets them choose to receive results as a formatted spreadsheet attached to the subscription email. The email itself includes high-level report details, such as report name and time run, plus a link back to the full report in Salesforce. It does not include row-level record details, which are included in the spreadsheet instead.

Setup: Subscribe to a report, select Attach results as a formatted spreadsheet file, and click Save.

Reports Subscribe Salesforce Spring 20

Note – As a beta feature, Formatted Spreadsheet Attachments is a preview and isn’t part of the “Services” under your master subscription agreement with Salesforce.

Increase Productivity with Local Development for Lightning Web Components (Beta)

Lightning Web Components now offers Local Development so that you can build component modules and view your changes live without publishing your components to an org. Our new Salesforce CLI plugin lwc-dev-server configures and runs a Lightning Web Components-enabled server on your computer. You can access the local development server from the command line and the Lightning Web Components Extension for VS Code.

Setup: To install the local development server, make sure that you have the Salesforce CLI installed, a Developer Hub-enabled org, and the most recent stable version of Chrome, Firefox, Safari, or Edge web browser.

For more details on the syntax, please visit release notes

Schedule an Appointment That Immediately Follows Another (Beta)

When you want service appointments to occur back-to-back, create an Immediately Followed By dependency between them.

Setup: Enable the complex work setting, and customize the service appointment page layout to show scheduling dependencies. Then, on an appointment page, specify related appointments and select the dependency type. For Immediately Followed By dependencies, scheduling assigns the appointments back-to-back on the same day and to the same resource. Enhanced Optimization respects Immediately Followed By dependencies.

Appointment follow up Spring Salesforce

Help Your Chat Agents Respond Faster with Einstein Reply Recommendations (Pilot)

Einstein Reply Recommendations analyzes data from chat transcripts to create chat replies that address your customers’ inquiries. Agents select the most relevant chat reply from a list in the Lightning Service Console as they communicate with customers.

Einstein Reply

For information on enabling this feature, contact Salesforce.

Attach Actions to Asynchronous Apex Jobs Using Transaction Finalizers (Pilot)

With Spring ’20, we introduce a way to attach actions to queueable, asynchronous jobs using a new System.Finalizer interface. A specific use case is to design recovery action when a queueable job fails.

Setup: First, implement a class that implements the System.Finalizer interface. Then, attach a finalizer within a queueable job’s execute method by invoking the System.attachFinalizer method with an argument of the instantiated class that implements the finalizer interface. Only one finalizer can be attached to any queueable job. You can enqueue a single asynchronous Apex job (queueable, future, or batch) in your finalizer. You can also make callouts in the finalizer.

Please refer to release notes for an example.

Access Reports and Dashboards in the Recycle Bin

Manage your deleted reports and dashboards in the Recycle Bin for Lightning Experience. Now you can view, restore, and permanently delete your reports and dashboards without switching to Salesforce Classic.

For all the features for Spring 20 Release Notes, please refer to the Salesforce website.

Salesforce Spring 20 Release Date

Salesforce Spring ’20 Release will be globally available on February 17, 2020.

Salesforce Spring ’20 Release Date Schedule Calendar

For the Spring ‘20 Release, the preview instances will be upgraded to Spring ‘20 on January 3 and January 4, 2020, and non-preview instances will be upgraded to Spring ‘20 on February 14 and February 15, 2020.

Spring 20 Calendar

For more details on the release calendar, please visit salesforce website.

Merry Christmas

Enjoy your holidays !!!  Happy Salesforce Learning 🙂

 

Permanent link to this article: http://www.sfdcpoint.com/salesforce/salesforce-spring-20-release-notes/

Salesforce Winter ’20 Release Notes

Salesforce Winter ’20 Release Notes

All you need to know about Salesforce Winter ’20 Release Notes

We understand that it is difficult and a bit time-consuming to go through the entire release so here we offer to help you learn and grow in the salesforce world by presenting the summary and my most favorite feature of Salesforce Winter’ 20 Release Notes.

Salesforce Winter ’20 Release Notes

Top Features in Salesforce Winter ’20 Release Notes

Turning on Lightning Experience for all users

The Lightning Experience will be activated for all orgs from Winter ’20. Once you enable the Lightning Experience, it’s there for good. After enabling it in the Lightning Transition Assistant, you will not be able to disable it. However, you can still switch between Lightning and Classic. But we strongly recommend you keep using lightning because it is the future of CRM.

Lightning for Users

Launch into Lightning Experience Apps with the Mobile App Launcher:

The App Launcher has landed on mobile. You can switch between all your favorite Lightning apps, just like in Lightning Experience desktop.

Accessing Recycle Bin in a Lightning experience

The Recycle Bin in Lightning Experience works the same as it does in Salesforce Classic, except for a few differences. In Lightning Experience:

  • The org’s Recycle Bin is called Org Recycle Bin (1). The Salesforce Classic name is All Recycle Bin.
  • Restore records by clicking Restore (2) instead of Undelete in Salesforce Classic.
  • Permanently delete records by selecting them and clicking Delete (3) versus Undelete or Empty in Salesforce Classic.
  • You can’t view or restore reports and dashboards. Switch to Salesforce Classic to access them in the Recycle Bin.

Recycle bin salesforce lightning

Schedule Flows

 To start a flow for a set of records, select the filter conditions in the Start element. When your flow starts, a flow interview runs for each record that matches your filter—no looping required. The matching record is stored in the $Record global variable, so you can reference the variable or its fields throughout your flow.

Schedule Jobs

Add a Signature to Email Templates

With the new {{{Sender.Signature}}} merge field, email template creators can include a sender’s existing signature in an email template. The field is available wherever the merge field picker exists, including in emails, list emails, and enhanced letterheads.

Setup:

  • Users set up their signature in My Email Settings.
  • In the merge picker, the {{{Sender.Signature}}} merge field is listed as Email Signature.

Opportunity Contact Roles

Opportunity contact role customization options give you the flexibility to track and attribute revenue to roles, titles, and individuals. With custom fields and page layouts, validation rules, and Apex triggers, you can design an Opportunity Contact Role to match your specific sales and reporting processes. You can capture new data, such as titles and roles, to help your sales reps be more efficient in targeting the right contacts.
For example, a nonprofit organization can create a custom opportunity contact role called “personal donor” that allows it to track donations directly from individual donors. The organization can then identify its best donors and set up triggers to send thank you emails or other communications based on donation amounts or contact changes.
  1. See the impact on revenues and opportunity close rates from specific roles
  2. Help you target contacts for campaign-based marketing
  3. With the new data you capture, such as revenue, product interest, and scoring data

Opportunity contact Role Salesforce

Automate Account Team Creation with Process Builder

Configure a process action to add team members to an account. You can also configure a process to run when an account team member record is created or edited.

Setup: If account teams are enabled in your org, the Account Team Member object is available when you set up the process trigger.

Account Team Member Salesforce Process Builder

Use Flow Builder to Send Custom Notifications:

You can use Flow Builder to send customized notifications when important events occur. Previously, custom notification actions were fully supported only in Process Builder.

In Setup, search for Notification Builder and create a Custom Notification Type.

Then add the Send Custom Notification action to an action in Flow Builder, and select your Notification Type ID.

Set File Sharing to Inherit Record Settings:

When attaching files to records, you can have the files inherit the sharing settings of those records. For instance, when a user can edit a record, you want them to be able to edit the files on that record, too. Now you can set the default sharing permissions on files that are attached to records. The preference lets files follow the sharing settings of the record.

Setup : For new orgs, this preference is auto-enabled, and files on records are set to Set by Record by default. For existing orgs, go to Setup and enter Files in the Quick Find box. Under Salesforce Files, choose General Settings. Enable the preference Set file access to Set by Record for files attached to records.

Lightning Web Components is now Open Source

The Lightning Web Components framework is now open source, empowering you to explore the source code, customize the framework to your needs, and build enterprise-ready web components on any platform, not just Salesforce.

Setup: To develop off-platform Lightning web components, see lwc.dev. To contribute to the open-source code, see the Lightning Web Components GitHub repository.

Add Lightning Web Components as Custom Tabs.

Make a Lightning web component available as a custom tab in a Lightning Experience app and in the Salesforce app.

Setup:

  1. Add the lightning__Tab target to the component’s configuration file. The <component>.js-meta.xml configuration file defines the metadata values for the component, including the setting to allow usage in a custom tab.
    <?xml version="1.0" encoding="UTF-8"?>
    <LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
        <targets>
            <target>lightning__Tab</target>
        </targets>
    </LightningComponentBundle>
  2. Create a custom tab for this component.
  3. To display the component in a custom tab:
    • For a Lightning Experience app, add the component to the App Launcher.
    • For the Salesforce mobile app, add the component to the Salesforce app navigation menu.

Control Who Gets Read Access to Custom Metadata Types

Use profiles and permission sets to assign read access to users for custom metadata types. As of Spring ’19, you can block all API read access to custom metadata types for users who don’t have Customize Application permission. Now you can grant API read access to specific metadata types for users and user profiles, even if they don’t have the Customize Application permission.

Setup:

To grant a specific profile or permission set read access to a custom metadata type, go to the Custom Metadata Types permissions.

Custom metadata

Filter Reports Using Field Comparisons with Field-To-Field Filters (Beta):

Wow!!!  I am sure lot of people were waiting for this and now the wait is over.

Filter a report by comparing the values of two different report fields. For example, see which cases were modified after the closing date by filtering on cases with a last modified date after the closed date.

In Setup, in Reports and Dashboards Settings, select Enable Field-to-Field Filtering in Reports (Lightning Experience Only) and click Save.

Add a field filter, and change Value to Field in the filter dialog. In this example, a field-to-field filter (1) returns opportunities worth less than projected (2).

Reports salesforce

Salesforce Winter ’20 Release Dates

The Winter ’20 release will be globally available on October 14, 2019.

Salesforce Winter ’20 Schedule Calendar

Salesforce Winter ’20 Calender

For more details, please visit salesforce website

Permanent link to this article: http://www.sfdcpoint.com/salesforce/salesforce-winter-20-release-notes/

Approval Process In Salesforce

Approval Process in Salesforce

What is Approval Process in Salesforce?

Approval Process in Salesforce is an automated process that automates how Salesforce records are approved in your org. Salesforce approval process is a combination of steps for a record to be approved/rejected either by a user, queue or public groups. An approval process also specifies the actions to take when a record is approved, rejected, recalled, or first submitted for approval.

For example, when an employee creates a time-off request, have Salesforce automatically sends an approval request to the employee’s manager.

Here is list of steps for approval process in salesforce :

  • Setup -> Create -> Workflow and Approval -> Approval Process
  • Select object for approval process to be written
  • Click on Create New Approval Process
  • Select Standard Setup Wizard from drop down
  • Enter the Process name, Unique Name and description for your process
  • Specify Entry criteria

Approval Process Example

Here is list of sections to be configured in salesforce approval process:

  • Process Definition Detail – Approval Process Header level details like name, email template etc.
  • Initial Submission Actions – It will be executed when the user clicks on ‘Submit for Approval’ on the object record.
  • Approval Steps – Details of Steps criteria and the approvers
  • Final Approval Actions – It will be executed after all the approval process steps have been approved.
  • Final Rejection Actions – It will be executed if one of the approval process steps have been rejected.
  • Recall Actions – It will be executed if one of the approval process steps have been recalled.

 

Build Approval Process

Let’s build an approval process where the sales manager approves opportunities where the total opportunity amount exceeds 500K. The opportunity should reflect its approval status: Approved or Not Approved.

Planning

Make sure you preplan before you start configuring the Approval process in salesforce because this will help you design the approval process in the most optimized ways. Preplanning includes of:

  • creation of required fields
  • Identify the object for the Approval process
  • Email Template
  • Final Approval Actions like unlock record or change the status of the record

In this example, we would need below:

In Order to… We Need…
Track each opportunity’s approval status Custom field (Opportunity)
Request approval from managers when an opportunity total Amount is more than 500K Approval process (Opportunity)
Notify managers when an opportunity amount needs approval Email template
When managers respond, update the opportunity’s approval status Approval actions (Field Update)

Create Approval Process

  1. Login to Salesforce however you can ignore this step if already logged in.
  2. Navigate to Setup and search for ‘Approval process’ in Quick find or navigate to ‘Create’->Workflow & Approvals -> Approval Process
  3. For Manage Approval Processes For, select OpportunityCreate Approval process Salesforce 
  4. Click Create New Approval Process | Use Jump Start Wizard.
    The Jump Start Wizard helps you create a simple approval process by making some decisions for you.
  5. Configure the approval process.Salesforce Approval Process
    Field Value
    Name Approve Opportunity Amount
    Approval Assignment Email Template Approve Opportunity Amount
    Specify Entry Criteria Opportunity: Opportunity Amount greater than 500K
    Select Approver Let the submitter choose the approver manually
  6.  Save the approval process.
  7. Click View Approval Process Detail Page.
  8. Under Final Approval Actions, click Add New | Field Update, and configure it with these values.Salesforce Approval Process Field Update
    Field Value
    Name Approved
    Field to Update Approval  Status
    A Specific value Approved
  9. Click Save.
  10. Under Final Rejection Actions, click Add New | Field Update, and configure it with these values.
    Field Value
    Name Not Approved
    Field to Update Approval  Status
    A Specific value Not Approved
  11. Click Save.

Great job!  Your Approval Process has been successfully configured.

Approval Actions

We used only ‘Field Update’ in our above example. I would like to explain more regarding Approval Actions like Final Approval Actions, Final Rejection Actions which consists of :

  • Task – If a task is selected then the user can insert a task for a record so for our example on Opportunity once the approval process has been approved/rejected.
  • Email Alert – If an Email Alert is selected then the user will be notified via email once the approval process has been approved/rejected.
  • Field Update – You have already seen an example in the above but again, the system will update the field to the mentioned value once the approval process has been approved/rejected.
  • Outbound Message – This will help notify 3rd Party systems. Think for a scenario where you want to notify the backend system or provisioning system on the approval results so for example once orders are approved start generating the bills then this will help you to achieve the requirement.

Approval Process Actions salesforce

Email to approve the request

We can set the approval process via Email, to enable email approval response use following steps

Setup -> select Process Automation Settings -> select the Enable Email Approval Response checkbox, and click Save.

While responding to an approval request, some words can be used in the first line with periods or exclamatory marks. The words like Approved, Approve, Yes used for approval while Reject, Rejected, No used for rejection.

Difference between workflow rule and approval process

Workflow triggers automatically on any DML action like Insert, Update. It consists of a single step or a single action to continue the process and workflow triggers are not visible to user.

The approval process consists of multiple steps and should be approved by different users at a specific level. It may include rejection also.

For more details on the approval Process, please refer to trailhead salesforce.

Happy Learning 🙂

Permanent link to this article: http://www.sfdcpoint.com/salesforce/approval-process-in-salesforce/