Category Archives: Uncategorized

Data Skew in Salesforce

Data is getting generated at an explosive pace nowadays and we are running out of storage solutions in order to manage that data. Researches by multiple magazines and portals suggest that 90 percent of the total data in the world was created in the last two years only. This pace continues to increase day by day and we are slowly approaching a state where we would not be able to deal with this data. Salesforce is no exception in this case where organization instances are having large amount of records related to the business process needs. When this plethora of data is not managed properly, we slowly approach a state which is termed as Data Skew.

What is Data Skew?

Data Skew generally refers to a condition where data is distributed unevenly in a large data set. In Salesforce, data skew occurs when more than 10000 child object records are related to a single parent object record, or more than 10000 records of any object are owned by a single Salesforce user. This skewness leads to major performance hits and long running processes which are something that one should avoid.

ShubhamPic1

Types of Data Skew in Salesforce

Three types of data skew exist in Salesforce which are as follows:

  1. Account Skew
  2. Ownership Skew
  3. Lookup Skew

 

1. Account Skew

This type of Salesforce data skew comes into existence when you have large number of child records present under a single account record. This is a very common scenario as it is quite tempting to place all your unwanted or unassigned records under an account named ‘Miscellaneous’ or ‘Unassigned’. As easy and correct as it may look, it can cause major issues such as record locking and sharing performances. This is mainly because certain standard objects like Opportunity and Account, have special data relationships which maintain record access under private sharing models. The problems that you will face in a state of Account skew are:

  • Record Locking: When we are performing an update operation on large number of child records in separate threads, the system locks the child being updated as well as the parent record in order to maintain database integrity for each update. Hence, the parent record might be locked by one thread while some other thread is trying to update the same.
  • Sharing Problems: When we have many child associations with a single parent record, a simple change in sharing setting might lead to a chain of time-consuming processes. Even a meagre change like updating the owner of a parent record may lead to all the sharing rules on the child records being recalculated as well as recalculation of the role hierarchy.

Possible Way for Avoiding Account Skew:

There is only one way to avoid Account skew, that is by distribution of such child records across multiple accounts rather than accumulation on a single record. Having an even distribution of child records across parent accounts fool proofs our organization against performance hits due to account skew.

 

2. Ownership Skew
Ownership data skew is another type of date skew which is very common in Salesforce. This issue occurs when more than 10000 records are owned by a single Salesforce user. Since every record inside Salesforce needs to have an owner, it is quite common in organizations to make a default owner or queue, to which all the unassigned or unused records go to. It is a preferred solution for many organizations in such use case, but little do they know that though this might work for small data sets, this will fail when we are dealing with large data. This increases the probability of performance issues whenever some change to the sharing settings or some similar operation occurs. For example, if a user owns large number of records and he/she is moved around in the role hierarchy, then the sharing rules for all the records owned by that user will be reevaluated and that will result in a long running operation.

Possible Ways for Avoiding Ownership Skew:

  • The best way to avoid this kind of skew will be even distribution of such records among multiple users rather than having a single user for all.
  • If you are compelled to stay put with this solution, then the performance impacts can be reduced by not assigning the user (record owner) to a role.
  • If the owner must have a role, then try to keep the user on top of the role hierarchy. This will avoid the user being passed around the role hierarchy.
  • Make sure that the user is not a member of any public group which is acting as the source for a sharing rule.

 

3. Lookup Skew
Lookup skew is similar to Account skew but can affect a broader number of objects. This happens when large number of records are associated to a single record in the lookup object. Since lookup fields can exist on standard as well as custom fields, lookup skew problem can arise on any custom object in the organization. This happens regardless of whether that lookup exists on a single object or across multiple objects.

Possible Ways for Avoiding Lookup Skew:

  • One method is to distribute the skew across multiple lookup fields. The main cause of the problem is that large number of records are lookup to the same record. By providing additional lookup values to distribute the skew, record lock exceptions can be minimized or even eliminated.
  • Remove unnecessary workflow rules or process builders on the objects in order to reduce the record saving time. Also, make sure that the synchronous apex code and triggers are well optimized.
  • In case the number of lookup values are low and definite, you can use picklist values to represent the lookup values rather than using lookup fields.

 

Conclusion

Data plays a crucial role in the business architecture of large organizations and hence these problems are very common. By taking a few steps while designing our architecture, the data skew problems can be avoided. Having a distributed data is still the best bet for getting rid of these skews and their repercussions.

Posted in Uncategorized. Tagged with , , , .

What’s behind the Virtual Machines?

Are Virtual machines making our world more virtual?

These days virtual machines are running everywhere on the internet, from Microservices to big modules of code running on these virtual machines. We might not know the difference between an application running on a single server or multiple parts running of the same application running on multiple instances of virtual machines, that’s the best part about virtual machines. We might not get the difference, but they will make us get the most of our hardware resources.
Virtual machine is hardware level virtualization, a VM provides a real computer emulation and are implemented using software emulation programs. The end user gets the same experience of an operating system hosted on physical hardware with a virtual machine running on a machine. Virtual machines use the hardware more efficiently and increases the productivity than a single OS running on a dedicated hardware. Multiple VM’s running on the same hardware can perform different jobs at the same time can effectively improve resource utilization.

A virtual machine monitor (VMM) or a Hypervisor is a program that runs on a machine and helps the host in creating multiple virtual machines that can be run simultaneously, pooling all the resources of the host machine and sharing among the virtual machines. A Hypervisor can manage multiple instances of different types of operating systems like MacOS, Linux or Windows, running on multiple instances in a single physical hardware all at the same time. Hypervisor will manage the distribution of CPU, memory, bandwidth or disk space among those instances. Regardless of the type of hypervisors, virtual machines and the guest operating system will work without any difference.

There are two types of Hypervisors  as listed below: Continue reading

Posted in Uncategorized.

Salesforce Deployment Tools

A typical development process requires building, testing, and staging before releasing to a production environment. During this development cycle, one might migrate many times, either to keep development organizations in sync or to move changes through development organizations toward production and this is what we call Salesforce deployment.

Salesforce deployment is the migration of metadata from one Salesforce organization to another. If you are looking to enhance your Salesforce DevOps (Continuous Integration and Continuous Deployments) practices, this blog could get you started with the basics.

There are number of deployment tools available each having its own pros and cons. Some of them are listed below:

Change sets

Continue reading

Posted in apex develeopment, Apex Development, force.com app development, salesforce development, Salesforce DevOps, salesforce integration, sfdc, Uncategorized. Tagged with , , , , .

“Playing with the Sentiments”-a blog on Sentiment Analysis

People have always had an interest in what other people think, or what opinion they hold. Since the inception of the internet, increasing numbers of people are using websites and social media platform for expressing their opinion. Due to platforms such as Facebook, Twitter etc., it has become feasible to analyze and extract the public opinion on a certain topic, news story, product, or brand. Opinions that are mined from such services can be valuable. Data mined from these sources can be analyzed and presented accordingly to easily identify the online mood (positive, negative or neutral). This allows individuals or business to be proactive as opposed to reactive when a negative conversational thread is emerging. Alternatively, positive sentiments can be leveraged to identify product advocates as well to shape the business strategy by seeing the parts of the strategy that are working.

Salesforce Sentiment Analysis

Sentiment Analysis

Continue reading

Posted in Learn Salesforce, salesforce certified, salesforce consultant, Salesforce Einstein, Uncategorized. Tagged with , , , .

FullCalendar Plugin in Salesforce Lightning Component

Fullcalendar plugin is quite a useful tool for many calendar related application. It has been widely used with various javascript applications and even visualforce pages.

However, this plugin is also compatible with lightning as it is entirely created using jQuery.

The first step in using this plugin with your lightning component is to download it and upload it as a zip folder to your dev org as a static resource.

Download link – https://fullcalendar.io/download/

Salesforce Lightning Component

Salesforce Lightning Widget for Calendar

Continue reading

Posted in Uncategorized.

Salesforce for Nonprofits

Now a day the entire world is connected through technology. Salesforce for Nonprofits is one of the most powerful tools for any nonprofit organization as it helps in getting connected with the entire world. Built for the social and mobile era, Salesforce for Nonprofits will connect your entire organization— your partners, supporters, employees, and programs— so you can, deliver better programs and services, engage and strengthen your community, communicate more effectively, and raise more resources. (www.salesforce.org/nonprofit/, 2017)

To use salesforce for nonprofits, first you need to register to the “Power of us” program of salesforce. Once you are accepted in “Power of Us” program your organization will get your own salesforce instance with 10 free Enterprise Edition licenses along with the other products and services provided by salesforce. Through the “Power of us” program, qualified organization will receive the product and resources needed to effectively manage your organization and program.

Organization can purchase additional liquesces and services at a deep discounted price. All the amount received by Salesforce for these additional licenses, go right back into the foundation to allow salesforce to donate more to the nonprofit community. So, if you purchase additional licenses and invest in your own organizational success you are also investing to the overall success to the nonprofit community that uses salesforce.

As a part of the “Power of Us” Program you will get the benefits mentioned below:

    • 10 donated Enterprise Edition Sales or Service Cloud subscriptions
    • Discounts on additional subscriptions, products and/or services from Salesforce.org
    • Discounts on Salesforce training
    • Discounts on Salesforce events
    • Access to nonprofit and education specific user groups, events and webinars
    • Discounts on participating Apps and consulting partners from the AppExchange

(http://www.salesforce.org/nonprofit_product/nonprofit-editions-pricing/ , 2017)

 

Pricing of the additional Licenses:
Nonprofit Success Pack (NPSP): Configured out of the box for nonprofits, NPSP sits on top of the Lightning Enterprise Edition and provides complete Salesforce Customer Relationship Management (CRM) and tools to help manage programs, donations, volunteers, and supporters all in one place.

 

Edition Standard Pricing Pricing for Non-Profit
Lightning Enterprise Edition $150 $36
Lightning Enterprise Edition + NPSP $150 $36
Lightning Unlimited Edition $300 $72
Lightning Unlimited Edition + NPSP $300 $72

 

Eligibility Criteria:

Salesforce.org offers a powerful, enterprise level suite of products with the potential to dramatically transform your organization. Salesforce has different criteria for different Countries depending on the law of that country. Basic criteria to be eligible to apply for the Power of Us program is, your organization must be recognized as a charitable, nonprofit, or nongovernmental organization in the country where you are located. Your organization must have a certificate of Trust or society issued by the government of the country.

To get the in-depth knowledge about the eligibility criteria please visit the link mentioned below:

http://www.salesforce.org/nonprofit/power-of-us/eligibility-guidelines/

 

How to register for “Power of Us” program:

Now before you go forward to invest your money in Salesforce the big challenge in front of you is to know whether Salesforce is an excellent choice for your organization or not, whether it is fulfilling all your organizational requirements or not. Salesforce comes forward to help you out with making a correct decision.

Salesforce offers a free 30 days’ trial for all its Nonprofit Service Packs mentioned above in the Pricing section. You can register for any of the available packs and get your free trial as soon as you register. To register for your free trial please visit the below mentioned link:

http://www.salesforce.org/nonprofit/get-started/

After using that free trial Salesforce instance, if you think that this pack is best suited for your organization then you can convert this trial account to a permanent account by applying on the below mentioned link:

https://powerofus.force.com/PowerOfUsApply

Here, first you need to login with your Salesforce trial account Username and Password. If you have more than one Salesforce trial, you must log in with the username and password of the trial that you want as your production account. If you need to select a different edition, please sign up for a new trial before submitting your application. Once your application has been approved for an account you had selected, you will no longer be able to switch your licenses to another Salesforce account or instance.

Fill in all fields on the application before submitting. If approved, your organization will receive a confirmation by email stating your acceptance into the Power of Us program.

 

 

References:

http://www.salesforce.org/nonprofit_product/nonprofit-editions-pricing/

http://www.salesforce.org/nonprofit/power-of-us/

http://www.salesforce.org/nonprofit/

 

Posted in salesforce administrator, salesforce certified, salesforce certified developer, Salesforce Challenges, Salesforce cloud Implementation, salesforce community implementation, salesforce consultant, salesforce Tips & Tricks, Salesforce.com, Uncategorized.

Why and how to keep your Salesforce Org clean of Duplicates

Mirketa Salesforce Org clean of Duplicates

Customer data is the soul of an organization. Quality data is priceless and acts as a driver of high productivity and good decision making. Managing Quantity and Quality parallelly has always been a challenge. Same is the case with data now-a days, as the data volumes grew rapidly, the data quality went down, posing a serious challenge in maintaining the sanctity of databases. This challenge of avoiding data duplicity and keeping the orgs clean is faced by almost every company and although it may seem like a trivial issue, the impact these duplicates have on businesses cannot be looked down upon.

All the marketing and service activities revolve around the customer database that a company has.
Duplicates prevailing in a system means:

    • Increased cost for marketing campaigns.
    • Bombarding the same customers with same information multiple times, eventually degrading the brand image in the minds of customers.
    • Reduced Operational Efficiency.
    • Confusion among the sales reps while processing requests.
    • Bad service experience encountered by the clients.
    • Bad Data leads to Badly informed business decisions.
    • Increased challenges in maintaining the database or moving the current system to a new one.

What causes these duplicates:

    • Human error – Sales Rep entering duplicates
    • Multiple sources capturing the same information
    • No instrument to restrict duplicates from entering the system

Some pointers on how you can keep your Salesforce org clean:

    • Think of all the ways the customer data enters your CRM system: Manual customer data Entry by Sales Reps, bulk customer data upload, Automated Lead Sources like web to lead etc. and ensure that you have them all covered to avoid duplicates entering your CRM system.
    • Keep a mandatory field on each Object which handles your customer data, one which is relevant to your business operation like a phone number or an email on Lead. For Standard fields have your tech. team enable Duplicate Rules & Matching rules to avoid duplicates formation and for Custom fields check ‘do not allow duplicates’ so that Salesforce won’t accept duplicity against that field on the Object and sales rep won’t be able to create duplicate records.
    • If your mandatory field is a picklist field, ensure that you enable restricted picklist for that field as Salesforce allow values coming in from external systems other than the field picklist values also.
    • Monitor the data that your CRM system is getting from multiple sources to keep an eye if anything wrong is happening around your data so to handle the situation in time. Generally, companies don’t realize this until they have loads of dirty data existing in their CRM systems and then try to recuperate from the damage.
    • Ensure that you have clean data while uploading data in bulk into your system.
    • Define all your lead sources clearly and distinctly, this can avoid a lot of confusion when leads start to pour-in from multiple channels.
    • Make sure your Sales Reps fill all the necessary customer details in the form and instruct them not to save a half-filled form.
    • Cloning the records should not be a general habit of the team, this leads to human error of saving the cloned records without making relevant changes and thus creating duplicates. You can even disable the Clone button from the layout if you want to.
    • Use standard Salesforce Reports for tracking duplicates entering your system (if any) are essential to your business or not.
    • With large volumes of data coming in your system, some duplicates are anyway bound to enter your database, one way or the other. Use a deduplication tool, this can really make your life easy by keeping your Salesforce org clean of duplicates.

Check out Advitya – The Perfect Duplicate management app for Salesforce. Advitya solves all your data duplicity problems and can save you time and effort in keeping your org clean.

Keeping your Salesforce Org clean is not a one-man job or a onetime activity. It calls for a collective effort and is an ongoing process, you strive to keep your Database clean and perfect which eventually gives you returns in terms of smooth Operations and Profits.

All the best in keeping your Org. clean!!

Posted in AGILE Tools, DataLoader, Learn Salesforce, MirketaInc, Salesforce, salesforce administrator, salesforce customization, Salesforce Support Packages, salesforce Tips & Tricks, Salesforce.com, sfdc, Uncategorized. Tagged with , , , , , , , , .