Skip to main content


Chaper - 0 Get start with Customer relationship management (CRM)

 Customer relationship management (CRM) In our day to day work we might come across a term called Customer relationship management or CRM, some might be thing what is CRM, How it works, How it can boost your business and so on.. Actually if you start thinking about something it will never ends and that's how human mind works. I'll be describing everything regarding CRM and will provide some best in class CRM suggestions. What is CRM? CRM is a technology for managing all your company's relationships and interactions with customers and potential customers. Goal of CRM: Improve business relationships Stay connected to customers Manage customer relationships Customer lifecycle 360 view Streamline processes Improve profitability What does a CRM system do? On very high level and for your understanding I'll list down few CRM capabilities but CRM can do more than these  Helps you find new customers Organizing customer and prospect information Collecting a customer's website

Object/Action name present in Org with Queryable/Retrieveable/Searchable and many more Status in Query

We always want to know what are the objects present in salesforce so we can utilize any existing if needed or to understand the structure more. Here are few ways which help you to do that. Basic Code to get all object without any query: Schema.DescribeSObjectResult objResult = o.getDescribe();             String obj = objResult.getName();                 System.Debug(objResult.getName()); Basic code to get Object record count, don't run for all object you might get exception of 101 SOQL. Try to run this in a loop of first 100 then 100-200 and more based on need. {             Schema.DescribeSObjectResult objResult = o.getDescribe();             String obj = objResult.getName();             Integer count = 0;             q = 'SELECT Count() FROM ' + obj;             try{                 count = Database.countQuery(q);             }catch(Exception e){                 continue;             }             mapdata.put(objResult.getName(),count);             System.Debug(objResult

Platform Developer I Certification Maintenance (Winter '22)

 As we know Salesforce always add new features and based on that there are releases. This maintenance is all about Custom Metadata Type in apex. You no longer need to write a Salesforce Object Query Language (SOQL) to access custom metadata records in Apex. How: Use the new Apex getAll(), getInstance(recordId), getInstance(qualifiedApiName), or getInstance(developerName) methods to retrieve custom metadata type records.  Descriptions: getAll() Returns a map containing custom metadata records for the specific custom metadata type. The map's keys are the IDs (as String) of the records and the map's values are the record sObjects. getInstance(recordId) Returns a single custom metadata type record sObject for a specified record ID. getInstance(developerName) Returns a single custom metadata type record sObject for a specified developerName field of the custom metadata type object. getInstance(qualifiedApiName) Returns a single custom metadata type record sObject for a qualified AP

Exception: SObject row does not allow errors

There is a lot of things which salesforce do Out Of Box(OOB) but we do code some time, Sometimes triggers are used and some time we do use helper class. While dealing with apex code we do see some exceptions so today we will discuss about a specific error which is System.FinalException: SObject row does not allow errors. When: While using addError method with retrieved record from database. Example: List<Account> accList = [SELECT Id,Name                               FROM Account                               WHERE Id IN :Trigger.old];//Retrived data from Database     for(Account acc : accList){          if(acc.Name == 'Non Working Code'){              acc.addError('Exception:System.FinalException: SObject row does not allow');//will through exception          }       } Solution: for(Account acc :{         if(acc.Name == 'Working Code'){             acc.addError('This add error working fine.');         }     }

Enable and use Standard Salesforce Survey

Enable Surveys To enable survey we need to do some prerequisite:  Create a community (Use suitable Template) Provide access to Guest user Profile Follow the steps: 1. From Setup, enter Survey in the Quick Find box, then select Survey Settings. 2. Check which Experience Cloud site is selected as the default site to create public survey invitations. 3. Enter Sites in the Quick Find box, then select All Sites. 4. Open Experience Builder of the default site. 5. From Experience Builder, click Settings icon, and select General. 6. Click the profile name under Guest User Profile. Click Edit. OBJECT PERMISSIONS Survey Read Survey Invitations Read Survey Responses Read AND Create Provide access to create Survey: Enable Users with a Custom Profile to Create and Send Surveys OBJECT PERMISSIONS Surveys Read, Create, Edit, AND Delete Survey Invitations           Read, Create, Edit, AND Delete Survey Responses           Read, Create, Edit, AND Delete Sur

Platform Developer I Certification Maintenance (Winter '21)

1. How can a suspended event be resumed where it left off, to avoid missing any events that were published during the suspension? A. Refresh the event. B. Resume the event. C. Resume the event from New. D. Resume the event from Tip. 2. Which statement is true regarding events configured with the Publish Immediately behavior? A. Publish Immediately events count toward the Apex DML statement limit. B. EventBus.publish() returns how many platform events are configured to Publish Immediately. C. The events are published and do not depend on the successful completion of the transaction. D. Events published immediately prevent Apex callouts from being performed after publishing. 3. What is the minimum code coverage requirement in order to promote and release an unlocked package? A. 70% B. 75% C. 85% D. 90% 4. When using WITH SECURITY_ENFORCED in a SELECT clause, what happens if a field referenced in the clause is inaccessible to the user? A. The query succeeds, but no data is returned. B. Th

Know More About Person Account (B2C Account)

 Enable Person Accounts 1. Make sure you meet the following prerequisites. The account object has at least one record type. User profiles that have read permission on accounts have read permission on contacts. The organization-wide default sharing is set so that either Contact is Controlled by Parent or both Account and Contact are Private. 2. From Setup, enter Account Settings in the Quick Find box, and then select Allow Customer Support to enable Person Accounts. Salesforce will verify your org meets the prerequisites, then send you an email with additional information. If you don’t see a message verifying you meet the prerequisites, go back to first step. 3. Contact Salesforce Customer Support by logging a case to enable Person Accounts. Refer to the email we sent about what to include in the case. 4. After Person Accounts is enabled, a person account record type is created. You can create additional record types for person account if needed. 5. Assign the person account record type

Salesforce Naming Conventions Best Practices

 Everyone want their code to be well structured but sometime due to few things we focus on functionality but forget to maintain format. A well formatted code increases readability, understanding and ultimately maintainability of the code base. Post Fix / Suffix: Here is some example of Postfix and Suffix we are using in our project. Functional Type Name Suffix Examples Trigger Trigger AccountTrigger Trigger Handler TriggerHandler AccountTriggerHandler Trigge Action TriggerAction AccountTriggerAction VF Controller Controller AccountController VF Controller Extension Ext AccountExt Service Class Service AccountService Model / Wrapper Class Wrapper AccountWrapper Web Service (SOAP) Ws AccountToolsWs Web Ser

Salesforce’s latest Spring ’20 Release - February 17, 2020

Salesforce’s latest Spring ’20 Release is all set to globally available on February 17, 2020. Recently, Salesforce has given a preview of the Release to get a primary look at some of the CRM’s latest features. The new features span across mobile, industry solutions, content management, AI, and much more.  Top Highlights Platform With Salesforce CMS Enhancements, users can now create content and surface it throughout Salesforce. Content can be added to service portals on Community Cloud, landing pages in B2C Commerce, emails sent via Marketing Cloud, and much more. With Salesforce CMS B2B Commerce, B2B Commerce sites can be enhanced with rich content built in the CMS. With Spring ’20, developers can now access API enhancement in the Lightning Platform that includes higher default daily API limits and new, usage-based entitlements for REST and SOAP API requests, ensuring key operations are not interrupted. Application developers will now have more opportunities with Lightning Scheduler a

Audit Fields and it's Detailed Description

Audit Fields: CreatedById reference ID of the  User  who created this record.  CreatedById  fields have  Defaulted on create  and  Filter  access. CreatedDate dateTime Date and time when this record was created.   CreatedDate  fields have  Defaulted on create  and  Filter  access. LastModifiedById reference ID of the  User  who last updated this record.  LastModifiedById  fields have  Defaulted on create  and  Filter  access. LastModifiedDate dateTime Date and time when a user last modified this record.   LastModifiedDate  fields have  Defaulted on create  and  Filter  access. SystemModstamp dateTime Date and time when a user or automated process (such as a trigger) last modified this record. In this context, "trigger" refers to Salesforce code that runs to implement standard functionality, and not an Apex trigger.   SystemModstamp  fields have  Defaulted on create  and  Filter  access. The only audit field you cannot set a value for is systemModstamp. If you import data into