Bounce Management in Salesforce

When Bounce Management is activated and a user sends an email to an invalid email address, the email bounces back to Salesforce and the user is prevented from sending email to that address until it is validated.

A bounce warning appears next to the email address in lead, contact, and person account record.



Change Owner to multiple records in Salesforce

Use the Change Owner page-level button to assign a new owner for up to 200 selected leads, cases, or custom objects. You can access the button in the page-level action menu in a list view or related list in standard table mode, or in Related List Quick Links.


How to find how many users are following a topic in Salesforce?

From EntitySubscription sObject, we can find the number of followers for a specific record.

In case of topic, we have to enter the id of the topic record in the Parent Id to filter.

Sample SOQL:

SELECT Id, ParentId, SubscriberId, Subscriber.Email, Subscriber.name, Parent.Name FROM EntitySubscription WHERE ParentId = 'Id of the Topic'



Query to find the person who added the case team member in Salesforce

SOQL:

SELECT Id, ParentId, CreatedBy.Name, LastModifiedBy.Name, Member.Name FROM CaseTeamMember WHERE ParentId = 'Id of the case'

Sample Query:


System cannot find the path specified in CLI Data loader

When you get System cannot find the path specified in CLI Data loader setup,

1. Find the folder where data loader is installed.


2. Make sure JAVA JDK and JRE are installed into the same Program Files location.


"Insufficient User Permissions" "You have not been designated as a Marketing Cloud Connector user. Please contact your system administrator."

If you get  "Insufficient User Permissions" "You have not been designated as a Marketing Cloud Connector user. Please contact your system administrator."

1. Enable Marketing Cloud for AppExchange User check box for the Marketing Cloud user.

2. Enable Marketing Cloud for AppExchange Admin User check box for the Marketing Cloud user.


If you don't see the fields in the User detail page, add the fields to the page layout or run the below code to update the user in the developer console

update new User( Id = 'Id of the user', et4ae5_ExactTargetForAppExchangeAdmin__c = true, et4ae5_ExactTargetForAppExchangeUser__c = true);


How to get record id from lighting:recordForm in Salesforce?

Sample Code:

Component:


  1. <aura:component >  
  2.       
  3.     <div class="slds-box slds-theme_default">  
  4.           
  5.         <lightning:recordForm  objectApiName = "Opportunity"  
  6.                                layoutType = "Full"   
  7.                                columns = "2"  
  8.                                onsuccess = "{! c.handleSuccess }"/>  
  9.               
  10.     </div>  
  11.       
  12. </aura:component>  

Component Controller:


  1. ({  
  2.       
  3.     handleSuccess : function(component, event, helper) {  
  4.           
  5.         var params = event.getParams();  
  6.         alert(params.id);  
  7.           
  8.     }  
  9.       
  10. })  

Output:



Callable Interface in Salesforce

The System.Callable interface enables you to use a common interface to build loosely coupled integrations between Apex classes or triggers, even for code in separate packages. Agreeing upon a common interface enables developers from different companies or different departments to build upon one another’s solutions. Implement this interface to enable the broader community, which might have different solutions than the ones you had in mind, to extend your code’s functionality.

Sample Code:

public class SampleCallable implements System.Callable {
    
    String addPrefix(String str) {
        
        return 'Testing ' + str;
        
    }
    
    String addSuffix(String str) {
        
        return str + ' Testing';
        
    }
    public Object call( String action, Map < String, Object > args ) {
        
        switch on action {
            
            when 'prefix' {
                
                return addPrefix(String.valueOf(args.get('strValue')));
                
            }
            when 'suffix' {
                
                return addSuffix(String.valueOf(args.get('strValue')));
                
            }
            when else {
                
                return null;
                
            }
            
        }
        
    }
        
}

@isTest
private class SampleCallableTest {
    static testMethod void testCallable () {
        
        Callable extension = (Callable) Type.forName('SampleCallable').newInstance();
        
        String strPrefix = String.valueOf(extension.call('prefix', new Map < String, Object > {'strValue' => 'Sample'}));
        system.assertEquals('Testing Sample', strPrefix);
        String strSuffix = String.valueOf(extension.call('suffix', new Map < String, Object > {'strValue' => 'Sample'}));
        system.assertEquals('Sample Testing', strSuffix);
        
    }
    
}

How to run SOSL in Developer Console?

1. Open Developer Console and select Query Editor tab.

2. Enter the SOSL and click Query.


How to get domain URL using apex in Salesforce?

Use getOrgDomainUrl() in orgs with or without My Domain to retrieve canonical URLs. For example: https://yourDomain.my.salesforce.com, or, for orgs without My Domain enabled https://yourInstance.salesforce.com.

Sample Code:

system.debug('Domain URL is ' + System.Url.getOrgDomainUrl());

Output:


How to generate mock data for testing data load for Salesforce?

1. Go to https://www.mockaroo.com/.

2. Click Add Another Field to add additional columns.

3. Click Download Data button to download the data.


Mockaroo lets you generate up to 1,000 rows of realistic test data in CSV, JSON, SQL, and Excel formats


How to refer Custom Metadata Types in Advanced Formula Fields in Salesforce?

Create a custom metadata type, and reference its records in an advanced formula field. Store parameters for your formula in custom metadata types. If you need to make a change, you can do so in your custom metadata type instead of changing multiple, hard-coded formulas.


How to search for Records in the Kanban View in Salesforce?

Users can hone in on the records they need faster by searching the selected list view from within the Kanban view.
Enter a search term in the search box to see matching records.


How to get Kanban View for Recently Viewed Lists in Salesforce?

Users can switch to the Kanban view from the Recently Viewed list view of almost any object starting from Winter '19 release.


How to filter by Task Subject in Global Search Results in Salesforce?

On the search results page, click Tasks in the sidebar, and then refine the results with your filter.


Note:
You can’t choose “Call” from a dropdown list; type it instead.

How to check a Field’s References in Salesforce

Now you can see the references to a custom field, such as in a report or formula, with the click of a button. You can also communicate changes to others who use the field in a formula or other context.

For information on enabling this feature, contact Salesforce.



How to Save Your Chatter Posts as Drafts in Salesforce?

As you type a new post, Chatter saves your work to the My Drafts tab. Add files, links, images, mentions, hashtags, and any other rich text, because Salesforce saves it all.

You can select My Drafts and see the saved chatter posts.

How to Track the Platform Integration User in Salesforce?

Many internal Salesforce applications now automatically run their business processes as the Platform Integration User. Some records show as being created, last modified, or owned by this user. Using the Platform Integration User is an expected part of how Salesforce maintains an org, much like the Automated Process user. The Platform Integration User is traceable in the debug logs.

To track the Platform Integration User in the debug logs, create a user trace flag, and select Platform Integration from the Traced Entity Type dropdown list. A trace flag is now set on the Platform Integration User.

Filter Search Results by Number Range in Salesforce

1. Add Number or Currency field to the Search Filter Fields.


2. Search a keyword and select the object. Min and Max text boxes will allow us to search within the range.


How to track why Users Are Switching Back to Salesforce Classic?

Discover why your users aren’t adopting Lightning Experience by going to the source. A form prompts your users for feedback when they switch back to Salesforce Classic. Use the responses to educate users about productivity features and fine-tune your org customizations.

1. Go to Onboarding & Assistance.


2. Enable Switch to Salesforce Classic User Feedback form.


3. Select the Chatter Group where the Feedback Form value will be posted. Click Activate button to activate it.


Output:




List View Sharing in Salesforce

Have a list view with an amazing set of filters that you’d love to share with your team? Or maybe you have a list view that you only want a select few to access. Take collaboration to the next level by sharing your list views with user groups in your org.

1. Click Sharing Settings.


2. Select "Share list view with groups of users".


Change Your View with Display Density Settings

Two new Lightning Experience display density settings give you more control of how you want to view data without changing the page layout. Select one of the settings as the default, but users can choose their own display density at any time from the user profile menu.

Toggle Comfy and Compact View Salesforce:


Compact View:


Comfy View:



Recover Your Unsaved Text After Getting Timed Out Winter '19 Salesforce

Sometimes your Lightning Experience session is interrupted, whether you’ve been inactive too long or you lost your connection. You used to see the same timeout message, regardless of how your session ended. Now the message that pops up is specific to your scenario and tells you how to recover unsaved text.

Where: This change applies to Lightning Experience and the Salesforce app in all editions.

Why: If your session is interrupted, return to the page to copy unsaved text, like a Chatter post, so you don’t lose it during a new session.



How to sign up for Salesforce Winter '19 Pre-Release org?

1. Go to https://www.salesforce.com/form/signup/prerelease-winter19.jsp.

2. Enter all the information and click Start Free Trial button.


3. You will receive an email with credentials.

How to find metadata difference between two Saleforce orgs before the deployment?

1. Go to clickdeploy.io and sign in with your developer edition or production login.


2. Go to Organizations and click Add Organization to add source and target organizations.


3. Go to Deployments and click New Deployment.


4. Add the components to find the difference.


Roll Up Summary field filters in Salesforce

1. You can’t use long text area, multi-select picklist, Description fields, system fields like Last Activity, cross-object formula fields, and lookup fields in the field column of roll-up summary filters. 

2. Make sure that the filter for your roll-up summary doesn't encounter a formula field that results in “#Error!”. If one of your filter criteria uses a formula field that results in an error, no matches are returned for that filter criterion. For example, your roll-up summary filter is “Formula Field equals 10”. Two records contain errors, and one contains the value “10” in that field. In this case, your summary includes only the record with the value “10.”

How to Set field values on lightning:recordEditForm ?

Sample Code:

Sample.cmp:

  1. <aura:component implements="force:appHostable" >  
  2.       
  3.     <aura:attribute name="AccountId" type="String"/>  
  4.       
  5.     <div class="slds-box slds-theme_default">  
  6.           
  7.         <lightning:input type = "text" value = "{! v.AccountId }" label = "Account Id"/><br/>  
  8.         <lightning:button label = "Create Opportunity" variant = "brand" onclick = "{! c.navigateToNewRecForm }"/>  
  9.       
  10.     </div>  
  11.       
  12. </aura:component>  

SampleController.js:

  1. ({  
  2.   
  3.     navigateToNewRecForm : function(component, event, helper) {  
  4.           
  5.         var evt = $A.get("e.force:navigateToComponent");  
  6.         evt.setParams({  
  7.             componentDef : "c:NewRecordForm",  
  8.             componentAttributes: {      
  9.                   
  10.                 AccountId : component.get("v.AccountId")  
  11.                   
  12.             }  
  13.         });  
  14.         evt.fire();  
  15.           
  16.     }  
  17.       
  18. })  

NewRecordForm.cmp:

  1. <aura:component controller="NewRecordFormController">  
  2.       
  3.     <aura:attribute name="AccountId" type="String"/>  
  4.     <aura:attribute name="AccountRec" type="Account"/>  
  5.       
  6.     <aura:handler name="init" value="{!this}" action="{!c.doInit}"/>  
  7.       
  8.     <div class="slds-box slds-theme_default">  
  9.           
  10.         <lightning:recordEditForm  objectApiName = "Opportunity"  
  11.                                    onsuccess = "{! c.handleSuccess }">  
  12.             <lightning:inputField fieldName="Name" value="{! v.AccountRec.Name }"/>  
  13.             <lightning:inputField fieldName="StageName"/>  
  14.             <lightning:inputField fieldName="CloseDate"/>  
  15.             <lightning:inputField fieldName="AccountId" value="{! v.AccountRec.Id }"/>  
  16.           
  17.             <lightning:button class="slds-m-top_small"   
  18.                               variant="brand"   
  19.                               type="submit"   
  20.                               name="Create" label="Update" />  
  21.               
  22.         </lightning:recordEditForm>  
  23.               
  24.     </div>  
  25.       
  26. </aura:component>  

NewRecordFormController.js:

  1. ({  
  2.   
  3.     doInit: function (component, event, helper) {  
  4.           
  5.         var action = component.get('c.getAccount');  
  6.         action.setParams({  
  7.               
  8.             acctId : component.get("v.AccountId")  
  9.               
  10.         });  
  11.         action.setCallback(this, function(response) {  
  12.               
  13.             var state = response.getState();  
  14.             if ( state === 'SUCCESS' && component.isValid() ) {  
  15.                   
  16.                 component.set('v.AccountRec', response.getReturnValue());  
  17.                   
  18.             }   
  19.               
  20.         });  
  21.         $A.enqueueAction(action);  
  22.           
  23.     },  
  24.       
  25.     handleSuccess : function(component, event, helper) {  
  26.           
  27.         var params = event.getParams();  
  28.         alert(params.response.id);  
  29.           
  30.     }  
  31.       
  32. })  

NewRecordFormController.apxc:

  1. public class NewRecordFormController {  
  2.       
  3.     @auraEnabled  
  4.     public static Account getAccount(String acctId) {  
  5.           
  6.         return [ SELECT Id, Name FROM Account WHERE Id =: acctId ];   
  7.           
  8.     }  
  9.   
  10. }  

Output: