5 Salesforce Quirks every Salesforce Admin should know – Part 1 0f 5 – Lead Master-Detail Relationships

I wanted to do a series of posts on those quirky things in Salesforce that you run into and when you do you end of doing one of these:

200-1

But, every Salesforce Admin should know about these. In this post, and the next 4, I’ll outline a few quirky features in Salesforce and how to avoid/use them to your benefit. Today, we start with Lead Master-Detail Relationships.

2016-12-31_0637

The long and short of it is that you can’t create a Master-Detail relationship on the Lead Object. If you’re really interested in the documentation that describes this here you go – https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/relationships_among_objects.htm

As always, I encourage you to vote on this Idea – https://success.salesforce.com/ideaView?id=08730000000Bq50

So, Master-Detail Relationships give us some great benefits like the ability to do Roll-Up Summaries for instance. Here’s some work arounds.

  1. Create a lookup field and make the field required
  2. Create a lookup field and use
  3. Create a Many-to-Many relationship via a Junction object
  4. Use an app like Lookup Helper (https://appexchange.salesforce.com/listingDetail?listingId=a0N30000009wj3REAQ) or Roll-Up Helper (https://appexchange.salesforce.com/listingDetail?listingId=a0N30000009i3UpEAI)
  5. Utilize Flow/Process Builder
  6. Apex

The important thing to remember, when you’re planning implementations around Leads you need to consider the Master-Detail Relationship limit in your design.

Multi-Select Picklist Formulas

Business Problem:

Most Salesforce Administrators have run into this issue from one time or another.  A Multi-Select Picklist is not accessible in formulae.  This is frustrating because Multi-Select picklists are great choices for data quality and user experience and it’s not always known at the planning stages that you will need to utilize the field in question for a formula.  
 
Formula Solution:
 

IF(
INCLUDES(Multi_Select_Picklist__c , “A”), “A”,
IF(
INCLUDES(Multi_Select_Picklist__c , “B”), “B”,
IF(
INCLUDES(Multi_Select_Picklist__c , “C”), “C”
, NULL
)
)
)

A while back, Salesforce.com released the use of the INCLUDES()function which is a function that checks a text based value and returns a boolean (true/false) value.  Since the database result of a Multi-Select Picklist is a text based value we can utilize the INCLUDES() function.  By database result, I mean how the value is actually stored in Salesforce.com.  When you save a Multi-Select Picklist it’s values are saved as text with comma’s separating the values you selected.  In the example above, If I selected all the values the value that is stored is actually “A, B, C”

But… what if I select more than one option in my Multi-Select Picklist?  In this case, you must build in each option included in a AND() Function.  Here’s an example:

IF(
AND(
INCLUDES(Multi_Select_Picklist__c , “A”),
INCLUDES(Multi_Select_Picklist__c , “B”)
)
, “A; B”, NULL
)

Using a Picklist in a Validation Rule

Business Problem:

It’s not uncommon for businesses to use picklists to ensure data quality and conformity.  This often comes up when working with Opportunities.  A good example of this is listing the Competitor that you lost a deal to in order to track who your biggest competitor is.
 
Formula Rule Solution:
 

AND(
ISPICKVAL(StageName,”Closed Lost”),
NOT(
ISPICKVAL( Competitor__c, “Competitor_Picklist_Value1”)),
NOT(
ISPICKVAL( Competitor__c, “
Competitor_Picklist_Value2“)),
NOT(
ISPICKVAL( Competitor__c, “
Competitor_Picklist_Value3“)
)
)

Let’s break this validation rule down.  In this rule I am introducing the NOT() function which is a great function for determining is something is NOT true… or false if you are following the logic.  However, the NOT() function only works with one parameter at a time.  Let me explain.

THIS IS POOR SYNTAX:

NOT(
ISPICKVAL( Competitor__c, “Competitor_Picklist_Value1”),
ISPICKVAL( Competitor__c, “Competitor_Picklist_Value2”),
ISPICKVAL( Competitor__c, “Competitor_Picklist_Value3”)

)


The NOT() function will only work with one parameter.

The odd thing here is that if your picklist is actually a multi-select picklist you don’t need all this mumbo-jumbo.  All you need is something that looks like this:

AND(
ISPICKVAL(StageName,”Closed Lost”),
ISBLANK(Competitor__c)
)

Next Birthdate Formula

Business Problem:

Often times businesses will want to track customers/clients birthdays.  However, it’s also nice to know that a birthday is coming up (in the future) instead of just the birthday date. 
 
Formula Rule Solution:

IF(
AND(
MONTH( Birthdate ) >MONTH(TODAY()),
DAY(Birthdate) + 1 > DAY(TODAY())
),
DATE( YEAR(TODAY()), MONTH( Birthdate), DAY(Birthdate)),
DATE( YEAR(TODAY())+1, MONTH( Birthdate), DAY(Birthdate))
)

 
 
* This formula works with any date field but Birthdate is the standard field name on Contacts
** Please note: Person Account fields are not yet available via formula’s so this PersonBirthdate will not work here.

Print the Month based on a Date Field

Business Problem:

Often times you might want to filter a report based on the Month of a specific date or you will need a field to display on a record based on a date field.  This is great for formula concatenations or reporting purposes
Formula Rule Solution:
IF(
Month(datevalue(Any_Date_Field_Here__c)) = 1, “January”,
IF(
Month(datevalue(Any_Date_Field_Here__c)) = 2, “February”,
IF(
Month(datevalue(Any_Date_Field_Here__c)) = 3, “March”,
IF(
Month(datevalue(Any_Date_Field_Here__c)) = 4, “April”,
IF(
Month(datevalue(Any_Date_Field_Here__c)) = 5, “May”,
IF(
Month(datevalue(Any_Date_Field_Here__c)) = 6, “June”,
IF(
Month(datevalue(Any_Date_Field_Here__c)) = 7, “July”,
IF(
Month(datevalue(Any_Date_Field_Here__c)) = 8, “August”,
IF(
Month(datevalue(Any_Date_Field_Here__c)) = 9, “September”,
IF(
Month(datevalue(Any_Date_Field_Here__c)) = 10, “October”,
IF(
Month(datevalue(Any_Date_Field_Here__c)) = 11, “November”,
IF(
Month(datevalue(Any_Date_Field_Here__c)) = 12, “December”,
NULL
))))))))))))
 
This is a relatively simple formula but let’s break this down anyways.  The Month() function takes a date field value and gives you the number representation of that date.  Therefore, if you want to display the actual Month in words you need an additional statement.  The Datevalue() function breaks a date field down further and allows Salesforce to turn the date into a number.  So, when you have the Month(Datevalue()) functions together you can get a Number representation from the Month field.

Opportunity Validation Rule to Require Multiple Fields Validation Rule

Business Problem:


Opportunities in Salesforce utilize a standard field called Probability which is tied to the stage and forecasting.  Once an Opportunity reaches certain probabilities businesses may want to require certain fields to have a value. 


Validation Rule Solution:


AND(Probability > 50,
OR(
ISNULL(First_Field__c),
ISNULL(Second_Field__c),
ISNULL(Third_Field__c)
)
)

This Validation Rule is relatively simple but there are a few gotcha’s that I want to breakdown here that can be big headache’s if you don’t know how they work.

First, the probability ignores the “%” symbol so you don’t need those in your formula.  Additionally, notice that I did not put a “,” behind the ISNULL(Third_Field__c) statement.  This is because this is the last statement in the OR() statement and you don’t need any additional commas inside that statement.

So why not put all this in one big AND() statement?

Here’s why.  If you put everything in an AND() statement everything must be true in order for the validation rule to trigger.  In the business case, First_Field__c,Second_Field__c, Third_Field__c each need to be filled out. However, if they are all included in the AND() Statement, if one of the fields is filled out the validation rule would not trigger.  Hence, the use of OR()!

Calculate a Currency based on a Picklist Value

Business Problem:

In some cases, businesses might use a Picklist Value to reference a number such as a month, quarter, term, or year. This Picklist value often correlates to a number. Sometimes businesses might want to make a calculation based on this number and an amount field or another currency field.

Formula Solution:

Data Type: Currency

IF(
ISPICKVAL( Term__c , “1”), Currency_Field__c * 1,
IF(
ISPICKVAL( Term__c , “2”), Currency_Field__c * 2,
IF(
ISPICKVAL( Term__c , “3”), Currency_Field__c * 3,
IF(
ISPICKVAL( Term__c , “4”), Currency_Field__c * 4
,NULL
)
)
)
)

Let’s break this formula down.

An IF() Statement is comprised of three variables, something variables to compare, an action if the variables to compare is true, and an action is the variables to compare is false.

IF(ISPICKVAL( Term__c , “3”), Currency_Field__c * 3,

In this case, the ISPICKVAL( Term__c , “3”) is the variable to compare Currency_Field__c * 3 is the action if true. Notice we don’t have an action if False set in this example. This is because we have several IF() statements, one for each of the picklist values in your picklist. At the end, you only need one action if all the IF() statements are false.  The last thing to remember is to always close all of your statements with closed parentheses and in the example, we have there are 4 close statements.

Why you should Volunteer as a Salesforce Mentor today

I’ve been lax in making posts lately because I’ve been working on a project to bring a Mentoring program to the Salesforce Community. Mentorship Central is a Salesforce community group that launched several months ago and now have recently launched a new matching site that allows people in the Salesforce ecosystem to volunteer as a Mentor, Mentee, or Both and find their ideal match.

I wanted to write a post today to share why I think people should volunteer as a Mentor. I have three arguments to convince anyone to volunteer as a Mentor.

Argument 1: Giving back is in the Salesforce Community genetics

The Salesforce community is a wonderful thing. You can find the answer to any question, assistance on a project, or even just post something funny. But at the heart of the community is giving back. Volunteering as a Mentor is just going a step further and the next natural progression in an evolution of a good community member.

Argument 2: You will learn something

You might think that the Mentor/Mentee relationship is a one-way street where the Mentor is just imparting information to the Mentee. The Mentor/Mentee relationship is much more than that and the Mentor can learn just as much from the Mentee. Mentors get experience in coaching, teaching, as well as opportunities to have new situations presented to you that you might not see in your existing role.

Argument 3: It’s not a huge commitment!

As a Mentor, the average commitment is less than an hour a week! Come on, you can spare an hour! That doesn’t sound so bad.

 

Did I convince you? Volunteer today – https://mentorshipcentral-developer-edition.na30.force.com/s/

How I interview for Salesforce Roles

I originally wrote this as a guest blog post last month for CRM Marketplace.

 

Salesforce professionals with a wide range of technical and soft skills can be difficult to find. Often times these are the only things that we look at when hiring an employee or contractor resource. But technical acumen and soft skills aren’t the only thing I look at when hiring a Salesforce professional. That’s certainly not to say those attributes aren’t important, because they are. They just simply won’t be the focus of this post.
Whether you are hiring a Consultant, Administrator, Developer, Business Analyst, etc. you can’t just look at Technical ability and soft skills. There are three areas that I also evaluate during the hiring process that are outside of technical ability which I feel gives me a better sense of whether the hire will be successful or not.

Cultural Fit
Cultural fit questions are key to a good hire. I work at a startup so things change quickly and that’s part of our culture. When interviewing a candidate, I need to make sure that they prove to me that they adapt to change quickly and thrive in an unstructured environment. Maybe your organization is very structured and some people don’t work well in those environments. If you only restrict yourself to skill based questions you miss out on seeing if this person will “fit” into your organization.
Cultural Fit isn’t just your responsibility but it’s also the candidates. Your candidate should be asking you questions about what it’s like to work at your organization and what the culture looks like. If they don’t maybe it’s not that important to them. But do you really want someone on your team that doesn’t care about your organizations culture?

Life-Long Learning
I always ask candidates when was the last time they learned something new within the Salesforce ecosystem. Especially for the more senior candidates. As technology continues to expand those that don’t take it upon themselves to self-improve will be left behind. I want people on my team that value life-long learning and understand that you’re never done learning.
Sure, you might have gotten your Salesforce Developer certification back in 2008 but do you know anything about Wave Analytics? What’s the last Trailhead badge you earned? Have you attended any Salesforce training webinars recently?
In the Salesforce ecosystem we have so many opportunities to learn and continue to learn that we all should be taking advantage of those resources. The level of commitment to self-improvement a candidate shows is a strong indicator of future learning potential within your organization.

Creativity and Critical Thinking
Creativity is sometimes hard to gauge as is Critical Thinking. I generally approach this area of evaluation by asking a scenario based question and ask the candidate to walk me through their thought process. I generally hire Salesforce Technical resources that will be troubleshooting technical issues on the Force.com platform. To test this specific position, I give the candidate a scenario where a problem is presented and there are many potential root causes. This allows me to see not only what the candidate knows technically but also how they evaluate the problem and think through it.

For example, I often present candidates with this sort of question: My Visualforce page I just created isn’t visible on my community… Walk me through how you would find the root cause of this issue.
This is a good scenario because the question is specific and there are multiple sources for an answer as well as multiple ways to get to those answers.

As you hire Salesforce resources consider adding in questions that evaluate Cultural Fit, Lifelong Learning, and Creativity/Critical Thinking instead of just technical skills. If you do you will likely have a better hiring outcome because you are doing a much more well-rounded evaluation.