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?

 

Here are the 5 steps to a successful Salesforce 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.

  • 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?

An approval process automates how Salesforce records are approved in your org. An approval process is a combination of steps for a record to be approved/rejected either by a user, queue or public groups.

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

Approval Process Example

An Approval Process consists of the following sections to be configured:

  • 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 Opportunity Approval Process Jump Start Wizard
  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.Approval Process Detail
    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.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

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/

Permanent link to this article: http://www.sfdcpoint.com/salesforce/workbench-saleforce/

Learn salesforce marketing cloud

Learn salesforce marketing cloud

Learn salesforce marketing cloud

What is Salesforce Marketing Cloud?

Salesforce Marketing Cloud is a provider of digital marketing automation and analytics software and services.

Best way to learn salesforce marketing cloud

Most of the people have been a fan of using salesforce marketing cloud since customer mapping journey can be tracked and the companies can use this salesforce marketing cloud data to send personalized campaigns and messages to right people. The salesforce marketing cloud has number of features that increases the productivity of the organization at an alarming rate, and these are analytics builder, journey builder and contact management tool.

Why salesforce marketing cloud

People have shown keen interest to learn salesforce marketing cloud since it offers tons of benefits to the organization.  Using the knowledge of salesforce marketing cloud a marketing cloud consultant can perform a set of following activities in their future workplace which can be discussed as follows:

  • As a marketing cloud consultant, the professional would know the importance of Einstein artificial intelligence and company’s data to make good customer interaction.
  • As a marketing cloud consultant, the professional will know how to create real time management which the customer is the dire need.
  • The professional will know how to get consolidated views from the customer by analyzing known and unknown profiles.
  • Will able to perform detailed marketing reports and optimization, so that customer loyalty can be increased.

Learn how marketing cloud increases the productivity of the company

Well, the knowledge of salesforce marketing could help in delivering impeccable customer service with the help of certain steps. Thus, if you are moving in the direction to learn salesforce marketing cloud then that means you are moving the direction of immense job satisfaction and good pay. Some of the top-notch marketing cloud features that are used to deliver enhanced customer service can be discussed below

1.Helps in making a connection

The connection can be only be made when the data is analyzed properly. So, you can use the knowledge of marketing cloud to connect with each customer. This would mean creating a detailed journey map for each of the customers. When customers will see that you are making an effort to build an on-term relationship with the customer. Then they will automatically notice your company and turn into potential investors.

2.Helps with the Updates

The use of marketing cloud you can make you inform the customers that new updates are available in their platform.  This means before rolling out the updates to the entire salesforce platform, the new updates will reach you first, and after alpha and beta testing of the software you can in incorporate in the salesforce platform.

3. Extension of the application

You can use marketing cloud tools to tailor customer needs. For instance, a customer needs an application that will only deal with the payment getaways, and you can use the knowledge of the marketing cloud to create a payment application according to the needs of the customer.  The feasibility of the marketing cloud can be used to provide a hike in sales of the company.

4. Enhanced security

In marketing cloud, the professionals take care of all the bug fixes that can appear in the Platrom.  So, if you need a clean application that is clean of any bug, then contacting a marketing cloud professional can be good option. The professional will ensure that your application gets constant updates and not subjected to any malware attack.

Why is marketing cloud preferred  than others?

well, marketing cloud has three distinctives features that separate it from the rest.  Those three distinctive advantages will be discussed below:

  • The marketing cloud is a platform that helps in personalizing each and every customer journey.
  • The customer mapping journey can be spread across various channel, devices and customer lifecycle.
  • The platform can be used with other salesforce application, so that means greater insights into the customer’s data can be found out.

Companies that use this platform

Well, the list will include some famous names that have managed to make their company a million-dollar deal since it has used the marketing cloud features to its full potential.  With the use of this platform they have gotten more information about their clients, managed to spread the customer’s information across several devices and customer life cycles and carefully note the conversation with each customer with their company to see the flaws that may have come up.   The names of the company are T mobile, amazon web services, Toyota, US bank and Spotify.

Products that are available in the marketing cloud

Products available  How the product is used
Audience studio The product is used to capture customer information from any open source and then use the data to create an audience based on the customer interaction.
Data studio Here the developers connect with the third-party data providers to get customers insights. The process in done in transparent and in a confidential manner.
Datagram  The product joins data from different sources and creates detailed reporting to track the return on investment of the company.
Google analytics This product provides insights into the customer experience with a particular product.
Interaction studio  This product helps the salesforce professional to connect with the customers in real time.
Email studio  The product gets email updates to each and every customer that is working with the company. This is done to avoid personal interaction with each and every customer.
Mobile studio and advertising studio  The product helps in sending SMS updates and push messages to the customers.  The advertising studio takes in charge of sending the customers all the social media updates from the company.
Social studio This product helps in creating customer advocates so that you can reply to the customer feedback

 

 Final thoughts

From the above information, it should be clear why you should be pursuing a marketing cloud certification. Once you sit for the marketing cloud exam you will be tested on the basis of technical knowledge of the cloud development. So, make sure you make yourself thorough before you appear for the test.  Marketing cloud has been used by all successful companies of today which are the future of tomorrow, so moving in the direction to learn salesforce marketing cloud won’t be a no brainer.

Permanent link to this article: http://www.sfdcpoint.com/salesforce/learn-salesforce-marketing-cloud/

Salesforce Interview questions and answers

Salesforce Interview questions and answers

Salesforce Interview questions and answers

Here is list of all Salesforce Interview questions and answers

What is Salesforce?

Salesforce is the world’s #1 customer relationship management (CRM) platform. Salesforce provides cloud-based, CRM applications for sales, service, marketing, and more.

Salesforce has essentially changed how enterprise software is delivered and used. Its software is cloud-based and hence doesn’t need IT experts to set up anything. Salesforce has defined the ideal way as how to connect with customers. Building meaningful and lasting bond with the customers, identifying their needs, address problems faster and deploy apps that are customer focused is all possible through Salesforce.

Salesforce Technologies is one of the leading and very hot Technology in IT industry. Through Salesforce.com Technology thousands of Job opportunity are created for Salesforce developers and Salesforce Administration Job Seekers. As per Forbes magazine, nearly 55% of enterprises predict cloud computing will enable new business model in three years. So Salesforce is one of the Cloud Computing Technology which have bright future in the upcoming years. Salesforce provides different enterprise cloud computing applications to all size industries and businesses.

Salesforce applications are provided on subscription basis primarily through direct sales effort and indirectly through partners.

What is Cloud computing?

Cloud computing is a kind of outsourcing of computer programs. Using cloud computing, users are able to access software and applications from wherever they are; the computer programs are being hosted by an outside party and reside in the cloud. This means that users do not have to worry about things such as storage and power, they can simply enjoy the end result.

Cloud computing is shared pools of configurable computer system resources and higher-level services that can be rapidly provisioned with minimal management effort, often over the Internet. Cloud computing relies on sharing of resources to achieve coherence and economies of scale, similar to a public utility.

What is CRM?

CRM means “Customer Relationship Management “. We can understand from the full form where CRM is an application used to automate Sales and marketing functions by a using a Software called CRM Software. By using CRM Software every Company / Organization plans to increase their revenues and profits. This strategy of increasing revenue is done mainly by attracting Customers, clients, Sales etc.

What are some CRM provider

  • Salesforce CRM.
  • Microsoft Dynamics CRM.
  • Oracle CRM.
  • SAP CRM.
  • Sage CRM.
  • NetSuite CRM.
  • Oracle CRM on Demand.
  • SugarCRM.

 

What are different types of cloud computing?

  • Infrastructure as a Service (IaaS)
  • Software as a Service (SaaS)
  • Platform as a Service (PaaS)

 

What is PaaS?

Platform as a Service (PaaS)

The branch of cloud computing that allows users to develop, run, and manage applications without having to get caught up in code, storage, infrastructure and so on.

There are several types of PaaS. Every PaaS option is either public, private, or a hybrid mix of the two. Public PaaS is hosted in the cloud, and its infrastructure is managed by the provider. Private PaaS, on the other hand, is housed in onsite servers or private networks and is maintained by the user. Hybrid PaaS uses elements from both public and private and is capable of executing applications from multiple cloud infrastructures.

What is SaaS?

Software as a Service (SaaS)

Using the cloud, software such as an internet browser or application is able to become a usable tool.

What is IaaS?

Infrastructure as a Service (IaaS)

A third party hosts elements of infrastructure, such as hardware, software, servers, and storage, also providing backup, security, and maintenance.

What are different Salesforce Editions?

  • Essentials: Designed for small businesses that want to get started with a CRM system quickly. It includes intuitive walkthroughs and a setup assistant to get started, an easy-to-use UI, and administration tools to customize your deployment as you grow.
  • Professional: Designed for businesses requiring full-featured CRM functionality. It includes straightforward and easy-to-use customization, integration, and administration tools to facilitate any small to midsize deployment.
  • Enterprise: Meets the needs of large and complex businesses. It gives you advanced customization and administration tools, in addition to all the functionality available in Professional Edition, that can support large-scale deployments. Enterprise Edition also includes access to Salesforce APIs, so you can easily integrate with back-office systems.
  • Unlimited: Maximizes your success and extends it across the entire enterprise through the Lightning Platform. It gives you new levels of platform flexibility for managing and sharing all your information on demand. Includes all Enterprise Edition functionality, Premier Support, full mobile access, unlimited custom apps, increased storage limits, and other features.
  • Developer: Provides access to the Lightning Platform and APIs. It lets developers extend Salesforce, integrate with other applications, and develop new tools and applications. Developer Edition also provides access to many of the features available in Enterprise Edition.

What is difference between Salesforce.com and Force.com?

Salesforce.com and fore.com are relatively same but they are different in their functionality. Salesforce.com is used to develop CRM functionality based application where force.com is used to customize our data model, business logic and User interface.

What is Database.com?

Database.com is a type of service provided by Salesforce.com to enhance the power of Salesforce.com CRM applications. Database.com provides “Data as a Service” to subscribers.

What is App in Salesforce?

App means an Application. In Salesforce an Application consists a group of tabs which are designed to work as a single function. We have number of applications in Salesforce.com some of them are sales, marketing, chatter, site.com, work.com etc.

We can create new application and also customization for the existing apps in Salesforce.com. To create new app in sfdc go to Setup=>Build=>Create=>App.

Fields and Objects Salesforce Admin Interview questions

What is an object in Salesforce?

An Objects is represented as a database table which stores organization data . Objects consists of set of fields and we store data against that field. To view data Salesforce provided  TABS.

To create custom fields go to Setup=>Build=>Create=>Object.

Different types of object in Salesforce.com? 

In Salesforce.com we have two types of objects. They are

  • Standard Objects :- Standard objects are called so because they are created and provided by Salesforce.com.
  • Custom Objects :- Custom objects are those which are created by an User in salesforce.com.

 

How many relationship types are in Salesforce?

  • Master-detail 
  • Many-to-many
  • Lookup
  • External lookup
  • Indirect lookup
  • Hierarchical

 

What is Master-detail  relationship?

Master-detail closely links objects together such that the master record controls certain behaviors of the detail and subdetail record. For example, you can define a two-object master-detail relationship, such as Account—Expense Report, that extends the relationship to subdetail records, such as Account—Expense Report—Expense Line Item. You can then perform operations across the master—detail—subdetail relationship.

What is Many-to-many relationship?

Many-to-many You can use master-detail relationships to model many-to-many relationships between any two objects. A many-to-many relationship allows each record of one object to be linked to multiple records from another object and vice versa. For example, you create a custom object called “Bug” that relates to the standard case object such that a bug could be related to multiple cases and a case could also be related to multiple bugs.

Lookup Links two objects together. Lookup relationships are similar to master-detail relationships, except they do not support sharing or roll-up summary fields. With a lookup relationship, you can:

  • Link two different objects.
  • Link an object with itself (with the exception of the user object; see Hierarchical). For example, you might want to link a custom object called “Bug” with itself to show how two different bugs are related to the same problem.

 

What is External lookup? 

External lookup An external lookup relationship links a child standard, custom, or external object to a parent external object. When you create an external lookup relationship field, the standard External ID field on the parent external object is matched against the values of the child’s external lookup relationship field. External object field values come from an external data source.

What is Indirect lookup?

Indirect lookup An indirect lookup relationship links a child external object to a parent standard or custom object. When you create an indirect lookup relationship field on an external object, you specify the parent object field and the child object field to match and associate records in the relationship. Specifically, you select a custom unique, external ID field on the parent object to match against the child’s indirect lookup relationship field, whose values come from an external data source.

What is Hierarchical relationship?

Hierarchical A special lookup relationship available for only the user object. It lets users use a lookup field to associate one user with another that does not directly or indirectly refer to itself. For example, you can create a custom hierarchical relationship field to store each user’s direct manager.

For more details, please refer to this link Object Relationships Overview

 

What is a roll-up summary field?

A roll-up summary field calculates values from related records, such as those in a related list. You can create a roll-up summary field to display a value in a master record based on the values of fields in a detail record. The detail record must be related to the master through a master-detail relationship. For example, you want to display the sum of invoice amounts for all related invoice custom object records in an account’s Invoices related list. You can display this total in a custom account field called Total Invoice Amount. 

For more details refer official link roll-up summary field

What are different Levels of data access in Salesforce?

Organization level security

For your whole org, you can maintain a list of authorized users, set password policies, and limit logins to certain hours and locations.

Object level security

Access to object-level data is the simplest thing to control. By setting permissions on a particular type of object, you can prevent a group of users from creating, viewing, editing, or deleting any records of that object. For example, you can use object permissions to ensure that interviewers can view positions and job applications but not edit or delete them.

Field level security

You can restrict access to certain fields, even if a user has access to the object. For example, you can make the salary field in a position object invisible to interviewers but visible to hiring managers and recruiters.

Record level security

You can allow particular users to view an object, but then restrict the individual object records they’re allowed to see. For example, an interviewer can see and edit her own reviews, but not the reviews of other interviewers. You can manage record-level access in these four ways.

  • Organization-wide defaults
  • Role hierarchies
  • Sharing rules
  • Manual sharing

 

What is Organization-wide defaults?

Organization Wide Defaults(OWD) in salesforce is the baseline level of access that the most restricted user should have. Organizational Wide Defaults are used to restrict access. You grant access through other means like(sharing rules, Role Hierarchy, Sales Teams and Account teams, manual sharing, Apex Sharing ). In simple words Organization Wide Defaults(OWD) specify the default level of access users have to each other’s records.

For more details please level to below post Organization Wide Defaults(OWD) in salesforce

What is role hierarchy?

It give access for users higher in the hierarchy to all records owned by users below them in the hierarchy. Role hierarchies don’t have to match your organization chart exactly. Instead, each role in the hierarchy should represent a level of data access that a user or group of users needs.

What are the difference between a Role and Profile?

Roles are one of the ways you can control access to records. They also impact reports (e.g. “My Teams” filter). Roles come into play if your security model (OWDs) are set to private.

Profiles help determine record privileges. Assuming the User can see the record, Profiles determine what the User can do, view or edit on that record. Profiles control other system privileges as well (mass email, export data, etc)

In simple words, Roles are one of the ways you can control access to records and Profiles determine what the User can do, view or edit on that record.

What are Sharing Rules?

Sharing Rules are automatic exceptions to organization-wide defaults for particular groups of users, so they can get to records they don’t own or can’t normally see. Sharing rules, like role hierarchies, are only used to give additional users access to records. They can’t be stricter than your organization-wide default settings.

What is Manual sharing?

It allows owners of particular records to share them with other users. Although manual sharing isn’t automated like org-wide sharing settings, role hierarchies, or sharing rules, it can be useful in some situations, such as when a recruiter going on vacation needs to temporarily assign ownership of a job application to someone else.

What is Profile?

Each user has a single profile that controls which data and features that user has access to. A profile is a collection of settings and permissions. Profile settings determine which data the user can see, and permissions determine what the user can do with that data.
  • The settings in a user’s profile determine whether she can see a particular app, tab, field, or record type.
  • The permissions in a user’s profile determine whether she can create or edit records of a given type, run reports, and customize the app.

Profiles usually match up with a user’s job function (for example, system administrator, recruiter, or hiring manager), but you can have profiles for anything that makes sense for your Salesforce org. A profile can be assigned to many users, but a user can have only one profile at a time.

What are standard profiles?

  • Read Only
  • Standard User
  • Marketing User
  • Contract Manager
  • System Administrator

 

What is Permission Set?

A permission set is a collection of settings and permissions that give users access to various tools and functions. The settings and permissions in permission sets are also found in profiles, but permission sets extend users’ functional access without changing their profiles.

Permission sets make it easy to grant access to the various apps and custom objects in your org, and to take away access when it’s no longer needed.

Users can have only one profile, but they can have multiple permission sets.

What is “View all” and “Modify all” permission?

View all and Modify all permissions are usually given to system administrator. When you grant “View All” or “Modify All” for an object on a profile or permission set, you grant any associated users access to all records of that object regardless of the sharing and security settings.

In essence, the “View All” and “Modify All” permissions ignore the sharing model, role hierarchy, and sharing rules that the “Create,” “Read,” “Edit,” and “Delete” permissions respect. Furthermore, “Modify All” also gives a user the ability to mass transfer, mass update, and mass delete records of that specific object, and approve such records even if the user is not a designated approver.

These tasks are typically reserved for administrators, but because “View All” and “Modify All” let us selectively override the system, responsibilities that are usually reserved for the administrator can be delegated to other users in a highly controlled fashion.

 

Is it possible to restrict permission for users using permission set?

No, Permission Set always extends the permission. It does not restrict permission to users.

If a user does not have access to a specific record type, will they be able to see the records that have that record type?

Yes, Record type controls only visibility of record on UI but not its access to users. If user does not have access to record type then user will not be able to create records for that record type using UI. But user will we able to see records if they have appropriate permission to do so.

For more details about security questions for Salesforce admin interview questions, refer to my previous post Salesforce security interview questions

What are Salesforce Reports?

A Reports is a set of records displayed in the form of rows and columns.
Reports data can be filtered, grouped, and displayed graphically as a chart. Reports are stored in Folder – which controls who has access.

What are the different Report Formats?

Tabular Reports, Summary Reports, Matrix Reports, Joined Reports.

What is Tabular Report?

It is the simplest and fastest report formats. It displays the rows as records and fields are listed as columns just like a spreadsheet. It supports sorting of records.

What is Summary Report?

This report allows the user to group rows of data, summarize the field value which also supports sorting and display subtotals.

What is Matrix Report?

In this report, records are summarized in a grid format. It allows the records to be grouped by both columns and rows.

What is Joined Report?

In this type of report, User can create multiple report blocks that provide different different views of your data. In this format of report, we organize the data in the form of block. You can add upto 5 blocks in a single report. Each block is defined as a Sub-report(Report Type). It can have its own field, columns, sorting and filtering.

What is Conditional Highlighting in Salesforce report?

Conditional Highlighting is a powerful way to show values in report within given
limits. Using Conditional Highlighting, We can specify colours for different ranges of values in reports.

What is Bucket Field?

Bucketing lets you quickly categorize report records, without having to create a formula or a custom field.

Which field type does Bucketing field support?

It supports the field type of Picklist, Number, Text.

What are Dashboards?

Salesforce Dashboard is the visual representation of snapshots that are generated from Salesforce reports data. Using Salesforce Dashboard components, you can convert business requirements in Graphical representation using Sales force reports. Like reports, Dashboard are also stored in Folders.

What are the different Dashboard Component?

Scatter Chart, Line Chart, Funnel Chart, Vertical Bar Chart, Donut Chart, Horizontal Bar Chart, Pie Chart, Gauge, Metric, Table, Visual force Pages.

What is Workflow? 

Workflow rules are the automated process used in business process to send Email Alerts, Assign a Task, Update a field on rule criteria or action based criteria requirements.

What are the types of Workflow actions?

  • Task – Assign a Task
  • Email Alert: Send an Email.
  • Field update: Update a Field.
  • Outbound Message: Send an Outbound Message to External System.

What is Time-dependent Workflow?

The workflow that are scheduled to happen at a later time.

What is Approval Process?

Approval Process are used in the business process to Approve or Reject the record.
It involves Approval or Rejection of records, where one person creates the record and
submits that record for Approval.

What are Assignment Rules?

Assignment Rules automatically assign incoming Leads & Cases to specific agents so that the right people work on the right leads and cases.

What are Queues?

Queues allow the group of users to manage a shared workload more efficiently It prioritize your support team’s workload by creating lists from which specific agents can jump in to solve certain types of cases.

What are Auto-Response Rules?

Auto Response Rules Automatically send personalized email templates for new cases and new leads from your website.

What is Escalation Rules?

Escalation Rules ,  Automatically escalate cases to the right people when the cases aren’t solved by a certain time.

What is Chatter in Salesforce?

Chatter is a Salesforce real-time collaboration application that lets your users work together, talk to each other, and share information.

What is Integration?

Integration is a process of connecting two applications. A typical enterprise uses many applications, many or most of which are not designed to work with one another out of the box. Integrating separate but related apps helps organizations achieve greater levels of operational consistency, efficiency, and quality. Each application can have data, business logic, presentation, and security layers, all of which are possible targets for integration. This page is an overall launch point for exploring the various integration options related to Force.com and other Salesforce platform technologies.

What are possible Ways to Integrate with Salesforce Force.com?

  • User Interface Integration: Combine the UIs of two or more apps to create composite apps with little or no rework on the UI of each individual app. One example is using force.com Canvas
  • Business Logic Integration: It uses Apex Web Services for Inbound and Apex Callouts for Outbound. It typically handles a scenario where business logic is spread across several applications to implement the complete end-to-end business process. An example would be building complex logic on the data received before committing it into Salesforce.
  • Data Integration:It uses SOAP APIs and REST APIs. It typically handles data synchronization requirements, where one application in an enterprise acts as the primary source for a particular business object, like Account.

 

What is webservices?

Webservices is a functionality or code which helps to us to do integration. Web services are open standard (XML, SOAP, HTTP, etc.) based web applications that interact with other web applications for the purpose of exchanging data. Web services can convert your existing applications into web applications.

What is Protocal ?

Protocal is a set of mutually accepted and implemented rules at both ends of the communications channel for the proper exchange of information.

How many types of API’s avaliable in salesforce?

  • REST API
  • SOAP API
  • Bulk API
  • Streaming API
  • Metadata API
  • Chatter REST API
  • User Interface API
  • Analytics REST API
  • Apex REST API
  • Apex SOAP API
  • Tooling API

 

When to Use REST API

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.

When to Use SOAP API

SOAP API provides a powerful, convenient, and simple SOAP-based web services interface for interacting with Salesforce. You can use SOAP API to create, retrieve, update, or delete records. You can also use SOAP API to perform searches and much more. Use SOAP API in any language that supports web services.

For example, you can use SOAP API to integrate Salesforce with your org’s ERP and finance systems. You can also deliver real-time sales and support information to company portals and populate critical business systems with customer information.

When to Use Chatter REST API

Use Chatter REST API to display Chatter feeds, users, groups, and followers, especially in mobile applications. Chatter REST API also provides programmatic access to files, recommendations, topics, notifications, Data.com purchasing, and more. Chatter REST API is similar to APIs offered by other companies with feeds, such as Facebook and Twitter, but it also exposes Salesforce features beyond Chatter.

Use Chatter REST API to display Chatter feeds, users, groups, and followers, especially in mobile applications. Chatter REST API also provides programmatic access to files, recommendations, topics, notifications, Data.com purchasing, and more. Chatter REST API is similar to APIs offered by other companies with feeds, such as Facebook and Twitter, but it also exposes Salesforce features beyond Chatter.

When to Use Streaming API

Use Streaming API to receive near-real-time streams of data that are based on changes in Salesforce records or custom payloads. For Salesforce record changes, Salesforce publishes notifications when the changes occur. For custom notifications, you can publish event messages. Subscribers can receive notifications using CometD—an implementation of the Bayeux protocol that simulates push technology. Clients can subscribe to some types of events with Apex triggers or declaratively with Process Builder and flows.

When to Use Apex REST API

Use Apex REST API when you want to expose your Apex classes and methods so that external applications can access your code through REST architecture. Apex REST API supports both OAuth 2.0 and Session ID for authorization.

When to Use Apex SOAP API

Use Apex SOAP API when you want to expose Apex methods as SOAP web service APIs so that external applications can access your code through SOAP.

Apex SOAP API supports both OAuth 2.0 and Session ID for authorization.

When to Use Tooling API

Use Tooling API to integrate Salesforce metadata with other systems. Metadata types are exposed as sObjects, so you can access one component of a complex type. This field-level access speeds up operations on complex metadata types. You can also build custom development tools for Force.com applications. For example, use Tooling API to manage and deploy working copies of Apex classes and triggers and Visualforce pages and components. You can also set checkpoints or heap dump markers, execute anonymous Apex, and access logging and code coverage information.

What is Call In and Call Out?

Call In is used to exposing our webservices to another system.
Call out enables you to tightly integrate your Apex with an external service by making a call to an external Web service or sending a HTTP request from Apex code and then receiving the response.

What is WSDL ?

WSDL (Web Services Description Language) is an XML document that describes a web service. WSDL is derived from Microsoft’s Simple Object Access Protocol (SOAP) and IBM’s Network Accessible Service Specification Language (NASSL). WSDL replaces both NASSL and SOAP as the means of expressing business services in the UDDI registry. It is used in combination with SOAP and XML Schema to provide web services over the Internet. A client program connecting to a web service can read the WSDL to determine what functions are available on the server. Any special datatypes used are embedded in the WSDL file in the form of XML Schema. The client can then use SOAP to actually call one of the functions listed in the WSDL. There are two types of WSDL in  Salesforce:

  • Enterprise WSDL
  • Partner WSDL

What is difference between Enterprise WSDL and Partner WSDL?

Enterprise WSDL

  • The Enterprise WSDL is strongly typed.
  • The Enterprise WSDL is tied (bound) to a specific configuration of Salesforce (ie. a specific organization’s Salesforce configuration).
  • The Enterprise WSDL changes if modifications (e.g custom fields or custom objects) are made to an organization’s Salesforce configuration.

Partner WSDL

  • The Partner WSDL is loosely typed.
  • The Partner WSDL can be used to reflect against/interrogate any configuration of Salesforce (ie. any organization’s Salesforce configuration).
  • The Partner WSDL is static, and hence does not change if modifications are made to an organization’s Salesforce configuration.

How SOAP can be accessed ?

SOAP can be communicate through WSDL file, without WSDL file we can’t do integration.
Message format in SOAP is XML

How to generate WSDL file?

  • Go to Setup -> Develop  -> apex classes
  • Click on Apex class
  • Click on Generate WSDL button
  • Generate WSDL code from class
  • Save as .wsdl file in your system

 

How to consume external WSDL file

  1. In the application, from Setup, enter Apex Classes in the Quick Find box, then select Apex Classes.
  2. Click Generate from WSDL.
  3. Click Browse to navigate to a WSDL document on your local hard drive or network, or type in the full path. This WSDL document is the basis for the Apex class you are creating.
  4. Click Parse WSDL to verify the WSDL document contents. The application generates a default class name for each namespace in the WSDL document and reports any errors. Parsing fails if the WSDL contains schema types or constructs that aren’t supported by Apex classes, or if the resulting classes exceed the 1 million character limit on Apex classes. For example, the Salesforce SOAP API WSDL cannot be parsed.
  5. Modify the class names as desired. While you can save more than one WSDL namespace into a single class by using the same class name for each namespace, Apex classes can be no more than 1 million characters total.
  6. Click Generate Apex. The final page of the wizard shows which classes were successfully generated, along with any errors from other classes. The page also provides a link to view successfully generated code.

What is remote site settings ?

Remote site settings is used to authorize the endpoint and allow us to whom integrate(end user)

How manys ways to XML parsing ?

They are two ways of XML parsing
1. XML streams
2. XML DOM

How to read root element in XML DOM ?

getroot element

How to read child element in XML DOM ?

getchild element

How to read all child elements in XML DOM ?

getchild elements

How to read text between tags ?

gettext

How SOAP and REST will Communicate ?

SOAP will communicate through WSDL file.
REST will communicate through HTTP protocol.

What are methods in REST

  • HTTPGET : Retrieve data identified by a URL.
  • HTTPPOST : Create a resource or post data to the server.
  • HTTPDELETE : Delete a resource identified by a URL.
  • HTTPPUT : Create or replace the resource sent in the request body.

 

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

What is JSON ?

JSON stands for JavaScript Object Notation. JSON is light weighted than XML.  When exchanging data between a browser and a server, the data can only be text. JSON is text, and we can convert any JavaScript object into JSON, and send JSON to the server.

What is a Trigger?

Apex triggers enable you to perform custom actions before or after events to records in Salesforce, such as insertions, updates, or deletions. Just like database systems support triggers, Apex provides trigger support for managing records.

Use triggers to perform tasks that can’t be done by using the point-and-click tools in the Salesforce user interface. For example, if validating a field value or updating a field on a record, use validation rules and workflow rules instead.

What is Trigger Syntax?

trigger TriggerName on ObjectName (trigger_events) {
   code_block
}

What are the various event on which a trigger can fire?

A trigger is a set of statement which can be executed on the following events. In above trigger events one or more of below events can be used with comma separated.

  • before insert
  • before update
  • before delete
  • after insert
  • after update
  • after delete
  • after undelete

What are different type of Triggers?

There are two types of triggers:

  • Before triggers are used to perform a task before a record is inserted or updated or deleted. These are used to update or validate record values before they are saved to the database.
  • After triggers are used if we want to use the information set by Salesforce system and to make changes in the other records. are used to access field values that are set by the system (such as a record’s Id or LastModifiedDate field), and to affect changes in other records. The records that fire the after trigger are read-only.

What are the considerations while implementing the Triggers?

Consider the following before implementing the triggers.

  • Upsert trigger fires on 4 different events :- before(insert, update), after (insert, update)
  • Merge trigger are fired on both events on delete
  • Field history is updated after the trigger has successfully finished processing data.
  • Any callout should be asynchronous so that trigger does not have to wait for the response.
  • A trigger cannot have a static keyword in its code.
  • If a trigger completes successfully the changes are committed to the database and if it fails the transaction is rolled back.

Read the Apex Developer Guide for more detailed considerations.

What are context variables in triggers?

All triggers define implicit variables that allow developers to access run-time context. These variables are contained in the System.Trigger class.

Following are the context variable available in triggers. Please note variable availability in trigger varies according to the type of trigger events.

  • isExecuting: Returns true if the current context for the Apex code is a trigger, not a Visualforce page, a Web service, or an executeanonymous() API call.
  • isInsert: Returns true if this trigger was fired due to an insert operation, from the Salesforce user interface, Apex, or the API.
  • isUpdate: Returns true if this trigger was fired due to an update operation, from the Salesforce user interface, Apex, or the API.
  • isDelete: Returns true if this trigger was fired due to a delete operation, from the Salesforce user interface, Apex, or the API.
  • isBefore: Returns true if this trigger was fired before any record was saved.
  • isAfter: Returns true if this trigger was fired after all records were saved.
  • isUndelete: Returns true if this trigger was fired after a record is recovered from the Recycle Bin (that is, after an undelete operation from the Salesforce user interface, Apex, or the API.)
  • new: Returns a list of the new versions of the sObject records. This sObject list is only available in insert, update, and undelete triggers, and the records can only be modified in before triggers.
  • newMap: A map of IDs to the new versions of the sObject records. This map is only available in before update, after insert, after update, and after undelete triggers.
  • old : Returns a list of the old versions of the sObject records. This sObject list is only available in update and delete triggers.
  • oldMap: A map of IDs to the old versions of the sObject records. This map is only available in update and delete triggers.
  • size: The total number of records in a trigger invocation, both old and new.

Refer to Trigger context variables in salesforce link for more details.

How is Trigger.New Different from Trigger.newMap?

Trigger.New variable returns the list of sObject which has invoked the trigger and Trigger.NewMap returns the map of ID’s with the newly entered records. NewMap is only available in after insert, before and after the update and after undelete.

How is Trigger.new different from Trigger.old?

Trigger.New variable returns the list of sObject which has invoked the trigger and Trigger.old returns a list of the older versions of the records which have invoked the trigger. Trigger.Old is only available in update and delete events

Can a trigger call a batch class?

Yes, we can call a batch class in the trigger as we do in the normal apex code.

Can a trigger make a call to Apex callout method?

we can call a callout method in Apex Trigger but the only condition is that it has to be an asynchronous callout because the trigger flow cannot wait on the response received by the callout method.

Define Recursive Trigger and how to avoid it?

There is a possibility that the result of the trigger can end up calling the same trigger again and can run in a loop, this is known as a recursive trigger. To avoid this scenario we should create a static variable and check the value of this variable before we execute anything in the trigger. For more details refer to below link:

Avoid recursive trigger in salesforce

What do you mean by the bulkifying trigger?

A trigger should be able to handle single record and thousands of record. There are two important point for it:

  • Write triggers that operate on collections of sObjects.
  • Write triggers that perform efficient SOQL and DML operations.

If we will not follow above point we may hit governor limit when records are created/updated/deleted in mass using data loader or other tool.

Bulk Apex Trigger trailhead

Is there any limit on number of triggers define on an object?

We can define as many triggers on an object as we want but it is recommended to have one trigger per object because the order of execution of different trigger is not guaranteed and any trigger can fire first.

Can you explain the order of execution in Triggers?

Following is the order of execution of events which Salesforce perform before a DML Event.

  1. The record is loaded from the database or is initialized in case of upset statement.
  2. New record’s field values are overwriting the old values, now depending on the origin of the request this flow varies: if the request is from a UI page then the following validations are performed by Salesforce:
    1. Any layout specific rules are checked
    2. All the required values are checked at layout and field level
    3. All the field formats are validated along with the maximum length of field values

If the request originates other than UI then Salesforce only checks for Validation of foreign keys.

  1. Now all the before triggers are executed at the database.
  2. Most of the validations are performed again to verify that all the required fields are holding some values and are not null, at this step user defined validations are also executed and the only validation which is not repeated in this step are the rules specific to the layout.
  3. After the success of the previous step, the record is reviewed for duplicate records, by running the duplicate rule. If a duplicate is found the flow is stopped and no further actions performed.
  4. In this step, record is saved to the database but it not committed yet.
  5. Now all the after Triggers are executed.
  6. In this step, assignment rules are executed.
  7. Now if there is any auto-response rule is present then they are executed.
  8. Next in the queues are the workflow, they are executed after the auto response.
  9. If the workflow was updating a field, then the fields updated in this step and the flow after this step varies if this was the case.
  10. If a field was updated then the before and after update triggers are fired once more and standard validation are also executed again. Custom validation escalation rule and duplicate rules are not required to run again.
  11. Once the execution has reached this stage, then process is fired if there are any declared on the object.
  12. Now the escalation rules are executed.
  13. Entitlement rules are executed if any.
  14. If there are any roll-up summary field, then they are calculated at this step and the parent object go through the save process.
  15. Now the sharing rules are executed.
  16. If we reach this stage, then that means no error has occurred and the data is ready to be committed to the database and is committed now.
  17. Now if there is any post-commit logic like email, then that is executed.

 

What is Salesforce Lightning?

Lightning is the collection of tools and technologies behind a significant upgrade to the Salesforce platform. Lightning includes:

  • Experience: A set of modern user interfaces optimized for speed. This includes the Lightning Experience, Salesforce1 Mobile app and template-based communities.
  • Lightning Component Framework: A JavaScript framework and set of standard components that allow you to build reusable components to customize the Lightning Experience, Salesforce1 Mobile app and template-based communities and build your own standalone apps.
  • Visual Building Tools: Drag-and-drop technologies for fast and easy app building & customizations. Use the Lightning App Builder to customize the Lightning Experience and Salesforce1 Mobile app. Use the Community Builder to customize template-based communities.
  • Lightning Exchange: A section of the AppExchange where you can find 70+ partner components to jumpstart your development.
  • Lightning Design System: Style guides and modern enterprise UX best practices to build pixel perfect apps that match the look and feel of the Lightning Experience and Salesforce1 Mobile app.

What are the tools included in lightning ?

  • Lightning Component Framework – Components and extensions that allow you to build reusable components, customize the Salesforce1 Mobile App, and build standalone apps.
  • Lightning App Builder – A new UI tool that lets you build apps lightning fast, using components provided by Salesforce and platform developers.
  • Lightning Connect – An integration tool that makes it easier for your Force.com app to consume data from any external source that conforms to the OData spec.
  • Lightning Process Builder – A UI tool for visualizing and creating automated business processes.
  • Lightning Schema Builder – A UI tool for viewing and creating objects, fields, and relationships.

What is Aura? Why do I see the aura: namespace in the code?

Aura is the open source technology that powers Lightning Components. The aura: namespace contains all of the basic building blocks for defining components and applications.

Is Lightning an MVC framework?

No, it’s a component-based framework.

What is difference between Visualforce Components and Lightning Components?

Visualforce components are page-centric and most of the work is done on the server. Lightning is designed from the component up, rather than having the concept of a page as its fundamental unit. Lightning Components are client-side centric, which makes them more dynamic and mobile-friendly.

Where we can display lightning component?

There are a number of possibilities for display lightning component..

  •  Lightning Experience: We can display component in the Lightning Experience using the App Builder. We can edit the home page, edit a record detail page or create/edit a new app page to include it.
  •  Salesforce1 Mobile app: We can display component in the Salesforce1 Mobile app by creating a custom Lightning tab that references it and adding that tab in mobile navigation.
  • Standalone Lightning app: By create a standalone Lightning app (e.g. myapp.app) and include component in this app. Access Lightning app by URL.
  • Add Apps to the Lightning Experience App Launcher: Your Lightning Components apps and custom tabs are available from the App Launcher.
  • Add Apps to Lightning Experience and Salesforce App Navigation:  You can add Lightning components tabs to an app and they display as items in the app’s navigation bar.
  • Lightning App Builder and Community Builder : We can display component in template-based (e.g. Napili) community using the Community Builder. Build custom user interfaces using your own Lightning components, or those you install from AppExchange, for desktop and mobile devices.
  • Add Lightning Components to Lightning Pages: A Lightning Page is a custom layout that lets you design pages for use in the Salesforce mobile app or in Lightning Experience. You can use a Lightning Page to create an app home page and add your favorite Lightning component, such as the Expenses app we’ll be creating in this module, to it.
  • Add Lightning Components to Lightning Experience Record Pages: You can customize Lightning Experience record pages by adding a Lightning Component.
  • Launch a Lightning Component as a Quick Action: Create actions using a Lightning component, and then add the action to an object’s page layout to make it instantly accessible from a record page.
  • Create Stand-Alone Apps: A standalone app comprises components that use your Salesforce data and can be used independently from the standard Salesforce environment.
  • Run Lightning Components Apps Inside Visualforce Pages: Add Lightning components to your Visualforce pages to combine features you’ve built using both solutions. Implement new functionality using Lightning components and then use it with existing Visualforce pages.
  • Run Lightning Components Apps on Other Platforms with Lightning Out: Lightning Out is a feature that extends Lightning apps. It acts as a bridge to surface Lightning components in any remote web container. This means you can use your Lightning components inside of an external site (for example, Sharepoint or SAP), or even elsewhere on the platform such as on Heroku.
  • Customize Flow Screens: Create a flow to guide your users through a business process. By default, you can add simple fields like inputs or radio buttons to a flow screen. But with a custom Lightning component, you can fully customize the look-and-feel and functionality of your screen.

What are the different Lightning component bundles?

  • Component :UI for lightning component
  • Controller: Contains client-side controller methods to handle events in the component.
  • Helper: JavaScript functions that can be called from any JavaScript code in a component’s bundle
  • Style: Contains styles for the component.
  • Document: A description, sample code, and one or multiple references to example components
  • Design: File required for components used in Lightning App Builder, Lightning pages, or Community Builder.
  • SVG: Custom icon resource for components used in the Lightning App Builder or Community Builder.
  • Renderer: Client-side renderer to override default rendering for a component.

Click Here for official Salesforce documentation.

What is Lightning Experience?

Lightning Experience is the name for the all new Salesforce desktop app, with new features, built with a modern user interface and optimized for speed.

What is Lightning Design System?

Style guides and modern enterprise UX best practices to build pixel perfect apps that match the look and feel of the Lightning Experience and Salesforce1 Mobile app. Click Here for official link.

What happens to my existing Visualforce Pages?

They’ll continue to be supported in the current UI and Lightning Experience. See the Trailhead module on this topic.

What are the type of events into Salesforce Lightning component?

  • Application Event – Scope of this event is throughout the lightning App and any component which has registered for this event would get a notification.
  • Component Event– Scope of this event is within itself or the parent component of this event, all the components declared within the parent component would get notified of this event.
  • System Event- these are the events fired by Salesforce’s system during the lifecycle of the lightning app.

 

What is the basic difference between Application Event and Component Event?

Component events are used to do communication between child and parent. They use bubbling and capture same as used in DOM events. A change in a child component can be communicated to the parent component via component event.

Application events are used to communicate any change in the component to a broader audience. Any component who has registered for this event will get a notified.

Component events vs Application events. Which one I should use?

Component events can only be handled by components above them in the containment hierarchy, therefore, their usage is localized to the components that need to know about them.

Application events are best used for something that should be handled at the application level, such as navigating to a specific record. Application events allow communication between components that are in separate parts of the application and have no direct containment relationship.

What is aura definition bundle?

A bundle contains an Aura definition and its related resources. The definition can be a component, application, event, interface, or a tokens collection.

An AuraDefinitionBundle component is a folder that contains definition files. Unlike most other metadata components, an AuraDefinitionBundle component isn’t a single file, it’s a collection of files. Each file represents a resource in a bundle, such as markup, applications, code files (including controllers and helpers), events, documentation, and interfaces.

A bundle doesn’t have a suffix. Definition files can have one of these suffixes:

SuffixComponent Type
.appApplication
.cmpComponent
.designDesign
.evtEvent
.intfInterface
.jsController, Helper, or Renderer
.svgSVG Image
.cssStyle
.auradocDocumentation
.tokensTokens collection

What is the use of implements in lightning component?

Implements is use to refer platform interfaces which enables a component to be used in different contexts or to grant access to extra context data, a component can implement more than one interfaces.

Here is list of all interfaces that can be implemented in lightning component

Which interface we are supposed to implement so that a lightning component can be used as a Tab?

We need to implement the following “force:appHostable” so that we can use the component as a Tab.

Which interface we are supposed to implement so that a lightning component can be used as quick action?

We need to implement the following “force: lightningQuickAction” so that we can use the component as a Quick Action.

Which interface we are supposed to implement so that a lightning component can be used in Community builder?

We need to implement the following “forceCommunity:availableForAllPageTypes” so that we can use the component in community builder.

What is use of @AuraEnabled annotation

How to call apex class from lightning component

The AuraEnabled annotation enables Lightning components to access Apex methods and properties.

The AuraEnabled annotation is overloaded, and is used for two separate and distinct purposes.

  • Use @AuraEnabled on Apex class static methods to make them accessible as remote controller actions in your Lightning components.
  • Use @AuraEnabled on Apex instance methods and properties to make them serializable when an instance of the class is returned as data from a server-side action.

For more details, please refer to lightning:datatable example

Can we Include One Lightning component to another ?

Yes we can include one Lightning component inside another Lightning component

How can we use Lightning Components with the Salesforce1 Mobile App ?

We can create a custom Lightning tab that points to our component and include that tab in our Salesforce1 Mobile navigation.

How can we use a lightning component in a VisualForce Page?

A Lightning component can be embed in any webpage using a very powerful and flexible feature, Lighting out. When used with Visualforce some complexity becomes simpler.
Lightning component can be added to Visualforce page in three steps:

  1. We have to first Add the Lightning Components for Visualforce JavaScript library to your targetted Visualforce page using the tag.
  2. Next we have to create and refer a Lightning app which is used to the component dependencies.
  3. Lastly we need to write a JavaScript function which will finally create the the component on the page using $Lightning.createComponent()

For more details, please refer Use Lightning Components in Visualforce Pages

Can we integrate Lightning components with another framework like Angular?

Yes, we can integrate lightning with any 3rd party framework.

Can we include external JavaScript/CSS libraries like jQuery, bootstrap in components?

Yes, we can use multiple libraries in our lightning component like JQuery, Bootstrap, custom CSS and custom Javascript libraries using static resource.

What is use of aura:method tag in salesforce lightning?

We can use <aura:method> to define a method as part of a component’s API. This enables you to directly call a method in a component’s client-side controller instead of firing and handling a component event. Using <aura:method> simplifies the code needed for a parent component to call a method on a child component that it contains.

How to ensure FLS while working with Lightning Component?

FLS and CRUD are not automatically enforced in the lightning component whenever any object is referenced in the Apex Controller and the component will display the fields and records for which the users do not have access. Therefore we should manually enforce the FLS and CRUD in the Apex Controller. Also when we use Lightning Data service  it takes care of FLS and CRUD for us.

How can we display loading spinner in lightning component?

Spinners are CSS loading indicators that should be shown when retrieving data or performing slow computations. lightning:spinner displays an animated spinner image to indicate that a request is loading. This component can be used when retrieving data or performing an operation that takes time to complete.

aura:waiting and aura:donewaiting can be used for controlling the loading spinner.

For more details please refer to below post lightning spinner

How can we conditionally display content in lightning component?

We can use aura:if to conditionally display content in lightning component. For more details refer to below post aura:if in lightning component

What is the use of force:hasRecordId interface?

or

How to get current record id in lightning component?

Add the force:hasRecordId interface to a Lightning component to enable the component to be assigned the ID of the current record. The current record ID is useful if the component is used on a Lightning record page, as an object-specific custom action or action override in Lightning Experience or the Salesforce app, and so on. This interface has no effect except when used within Lightning Experience, the Salesforce mobile app, and template-based communities.

For more details refer below link force:hasRecordId

What is a FlexiPage in lightning?

FlexiPage represents the metadata associated with a Lightning page. A Lightning page represents a customizable screen made up of regions containing Lightning components.
A Lightning page can contain upto 25 components. Flexi page are stored as xml file and can be deployed using metadata api or any deployment tool.

Lightning pages are referred as FlexiPages in API and referred as Lightning pages elsewhere in SFDC documentation.

How can we deploy lightning components?

Lightning components can be deployed similar to any other component using changeset, ant migration tool, eclipse or any other migration tool.

What Is Lightning Data Service?

Use Lightning Data Service to load, create, edit, or delete a record in your component without requiring Apex code. Lightning Data Service handles sharing rules and field-level security for you. In addition to not needing Apex, Lightning Data Service improves performance and user interface consistency. Main advantage of using lightning data service is that we can perform basic operations without Apex code.

For more details refer to below link Lightning Data Service

What is Locker Service in Salesforce Lightning?

Locker Service is a powerful security architecture for Lightning components. Locker Service enhances security by isolating Lightning components that belong to one namespace from components in a different namespace. Locker Service also promotes best practices that improve the supportability of your code by only allowing access to supported APIs and eliminating access to non-published framework internals.

For more details please refer below link: Locker Services

What are value providers in Salesforce Lightning ?

Value Providers in lightning Component encapsulate related values together and used to access data. In Salesforce lightning, we have two value providers for a component they are v (View) and c (Controller).

  • v is component attribute set which helps to access component attribute values in markup
  • c is component controller helps us to link with event handlers and action for the component

What are List of Global value providers in lightning?

  • $globalID
  • $Browser
  • $Label
  • $Locale
  • $Resource

 

How to create popup in lightning component?

Modals/Popup Box are used to display content in a layer above the app. This paradigm is used in cases such as the creation or editing of a record, as well as various types of messaging and wizards.

For more details, refer to below link Modal/Popup Lightning Component Salesforce

What are different Levels of data access in Salesforce?

Organization level security

For your whole org, you can maintain a list of authorized users, set password policies, and limit logins to certain hours and locations.

Object level security

Access to object-level data is the simplest thing to control. By setting permissions on a particular type of object, you can prevent a group of users from creating, viewing, editing, or deleting any records of that object. For example, you can use object permissions to ensure that interviewers can view positions and job applications but not edit or delete them.

Field level security

You can restrict access to certain fields, even if a user has access to the object. For example, you can make the salary field in a position object invisible to interviewers but visible to hiring managers and recruiters.

Record level security

You can allow particular users to view an object, but then restrict the individual object records they’re allowed to see. For example, an interviewer can see and edit her own reviews, but not the reviews of other interviewers. You can manage record-level access in these four ways.

  • Organization-wide defaults
  • Role hierarchies
  • Sharing rules
  • Manual sharing

What is Organization-wide defaults?

Organization Wide Defaults(OWD) in salesforce is the baseline level of access that the most restricted user should have. Organizational Wide Defaults are used to restrict access. You grant access through other means like(sharing rules, Role Hierarchy, Sales Teams and Account teams, manual sharing, Apex Sharing ). In simple words Organization Wide Defaults(OWD) specify the default level of access users have to each other’s records.

For more details please level to below post Organization Wide Defaults(OWD) in salesforce

What is role hierarchy?

It gives access for users higher in the hierarchy to all records owned by users below them in the hierarchy. Role hierarchies don’t have to match your organization chart exactly. Instead, each role in the hierarchy should represent a level of data access that a user or group of users needs.

What are Sharing Rules?

Sharing Rules are automatic exceptions to organization-wide defaults for particular groups of users, so they can get to records they don’t own or can’t normally see. Sharing rules, like role hierarchies, are only used to give additional users access to records. They can’t be stricter than your organization-wide default settings.

What is Manual sharing?

It allows owners of particular records to share them with other users. Although manual sharing isn’t automated like org-wide sharing settings, role hierarchies, or sharing rules, it can be useful in some situations, such as when a recruiter going on vacation needs to temporarily assign ownership of a job application to someone else.

Some more questions for Salesforce security interview questions post.

What is Profile

Each user has a single profile that controls which data and features that user has access to. A profile is a collection of settings and permissions. Profile settings determine which data the user can see, and permissions determine what the user can do with that data.
  • The settings in a user’s profile determine whether she can see a particular app, tab, field, or record type.
  • The permissions in a user’s profile determine whether she can create or edit records of a given type, run reports, and customize the app.

Profiles usually match up with a user’s job function (for example, system administrator, recruiter, or hiring manager), but you can have profiles for anything that makes sense for your Salesforce org. A profile can be assigned to many users, but a user can have only one profile at a time.

What are standard profiles?

  • Read Only
  • Standard User
  • Marketing User
  • Contract Manager
  • System Administrator

 

What is Permission Set?

A permission set is a collection of settings and permissions that give users access to various tools and functions. The settings and permissions in permission sets are also found in profiles, but permission sets extend users’ functional access without changing their profiles.

Permission sets make it easy to grant access to the various apps and custom objects in your org, and to take away access when it’s no longer needed.

Users can have only one profile, but they can have multiple permission sets.

 

What is “View all” and “Modify all” permission?

View all and Modify all permissions are usually given to system administrator. When you grant “View All” or “Modify All” for an object on a profile or permission set, you grant any associated users access to all records of that object regardless of the sharing and security settings.

In essence, the “View All” and “Modify All” permissions ignore the sharing model, role hierarchy, and sharing rules that the “Create,” “Read,” “Edit,” and “Delete” permissions respect. Furthermore, “Modify All” also gives a user the ability to mass transfer, mass update, and mass delete records of that specific object, and approve such records even if the user is not a designated approver.

These tasks are typically reserved for administrators, but because “View All” and “Modify All” let us selectively override the system, responsibilities that are usually reserved for the administrator can be delegated to other users in a highly controlled fashion.

 

Is it possible to restrict permission for users using permission set?

No, Permission Set always extends the permission. It does not restrict permission to users.

If a user does not have access to a specific record type, will they be able to see the records that have that record type?

Yes, Record type controls only visibility of record on UI but not its access to users. If user does not have access to record type then user will not be able to create records for that record type using UI. But user will we able to see records if they have appropriate permission to do so.
For more details about salesforce interview questions and answers, please refer to below posts:

 

Permanent link to this article: http://www.sfdcpoint.com/salesforce/salesforce-interview-questions-and-answers/

Maximum Trigger Depth Exceeded Error Salesforce

Maximum Trigger Depth Exceeded Error Salesforce

Maximum Trigger Depth Exceeded Error Salesforce occurs mainly due to recursion in the trigger. Recursion can occur because of many reasons. Recursion occurs when the same code is executed again and again. It can lead to an infinite loop and which can result in governor limit sometime. Sometimes it can also result in unexpected output.

In the following trigger, we are checking if contact last name is not equal to SFDC, then we are preparing set of account id. Now let’s assume that we are updating account record in this trigger and there is one more trigger which updates contact record when accounts are updated

trigger SampleTrigger on Contact (after update){
    Set<String> accIdSet = new Set<String>(); 	
    for(Contact conObj : Trigger.New){
        if(conObj.LastName != 'SFDC'){
            accIdSet.add(conObj.accountId);
        }
    }
    // Use accIdSet in some way to update account
}

We will get an error in the above example if there is recursion Maximum Trigger Depth Exceeded Error.

Solution to resolve Maximum Trigger Depth Exceeded Error Salesforce

To avoid these kind of situation we can use public class static variable. We can solve this issue, you can set a condition on trigger so it will not be called recursively.

In RecursiveTriggerHandler class, we have a static variable that is set to true by default.

public class RecursiveTriggerHandler{
    public static Boolean isFirstTime = true;
}

In the following trigger, we are checking if the static variable is true only then trigger runs. Also, we are setting a static variable to false when trigger runs for the first time. So if the trigger will try to run second time in the same request then it will not run.

trigger SampleTrigger on Contact (after update){
    Set<String> accIdSet = new Set<String>();
    if(RecursiveTriggerHandler.isFirstTime){
        RecursiveTriggerHandler.isFirstTime = false;
        for(Contact conObj : Trigger.New){
            if(conObj.name != 'SFDC'){
                accIdSet.add(conObj.accountId);
            }
        }
        // Use accIdSet in some way to update account
    }
}

For more details refer to Avoid recursive trigger in salesforce using static variable

Permanent link to this article: http://www.sfdcpoint.com/salesforce/maximum-trigger-depth-exceeded-error-salesforce/