Answers - Salesforce Trailblazer Community
Ask Search:
jonghoon baejonghoon bae 
How to disable the Send a List Email button in Lightning Experience?
It's in the list view screen.
But, I can't disable it.
I can't find it in the page layout.
Can anyone tell me how to do that?
Best Answer chosen by jonghoon bae
Amit SinghAmit Singh
Go to Profile -> System permission and then uncheck "Allow sending of List Emails" Permission
User-added image
Sarah PaulsonSarah Paulson 

Hello, I create a trigger and I want to know if its possible to add an image on the addError message.

So when the trigger will activate then the image should show. As far as I read it's better to save your image in your Documents tab and then fetch the ID of your image. I did that but I only see on my screen the name of my image and not the image itself...hmmm

Best Answer chosen by Sarah Paulson
Sarah PaulsonSarah Paulson
I've done it.

for(Contact c : Trigger.New){ 
           c.addError('<img id="theImage" src="" width="850px" height="100px" alt="Description of image here"/>  <p>Image Examplet</p>', false); 
Henry SchneiderHenry Schneider 
Hi there, 

I am trying to write a Process that will Auto Convert Leads when they are updated with a certain field.

My goal is, for Leads that match certain criteria, they will each be converted into 1 new Account and 1 new Contact (an Opportunity is not necessary). 

I have defined the criteria for this process, but I am unclear on how to configure the Action that will be taken. 

I used the directions found here:

...and added the Apex Class called 'Convert Leads' to my Sandbox. 

Then, in Process Builder, I made my Process take this Action. But I am unsure as to how I should define the Converted Status (should it be a String, "Yes") and Lead ID (should be a reference to the Lead's ID, right?). 

User-added image

Does anyone have a suggestion for how to complete this Process?

Best Answer chosen by Henry Schneider
Marc D. BehrMarc D. Behr
Can you open the dveloper console and then try to update a lead? That will allow you to get a log file that shows what happened and will make debugging easier
Bill StevensBill Stevens 
I have a user trying to edit a case and getting insufficient privileges.
However, that user can edit another case that is very similar.
Both have the same owner (a queue).
Both have the same record type.
Both have the same Type.
Both have the same Status.

Any ideas of where I can look for the reason causing a block on one case but editability of one almost identical?
Best Answer chosen by Bill Stevens
Eric PraudEric Praud
Hi Bill,

Can you switch to classic and add the sharing button on the page layout.
Click on it on the case this user can edit and you may be able to see why he can edit it (sharing rule, case team, etc). You can then maybe find the difference
Elad IdanElad Idan 
One of my users has created a workflow that requires emails from users on a lookup field from a related object.
My solution was to create an email field on the account and populate it whenever a case is created or edited.
Since we reached the related object limit on formula fields, and our developed is too busy with high priority items to write a trigger, we have decided to create a process flow to accomplish this.

Since the use is not always populated on the related object, I've made sure to create conditions on the flow to account for any possible null values as follows: isnull equals false
OR case.customer_site__r.account_manager__c isnull equals false
OR case.customer_site__c. isnull equals false

Yet when I try to save a case without a relationship i get the following error:
An error occurred at element myDecision (FlowDecision).
The flow failed to access the value for myVariable_current.Customer_Site__r.Account_Manager__c because it hasn't been set or assigned.

Farther, if I try to save an site with a customer site and no account manager, I get the following error:
An error occurred at element myDecision (FlowDecision).
The flow failed to access the value for myVariable_current.Customer_Site__r.Account_Manager__r.Email because it hasn't been set or assigned.

It seems to me that the conditions are designed to avoid exactly these errors, but yet I am getting them. Any help with understanding this behavior will be much appreciated!
Best Answer chosen by Elad Idan
Mayank SrivastavaMayank Srivastava
Deepak's approach for using a formula field has worked well for me in the past but like you mentioned, it's not an option. 
One other think that you could try (involves creating a new hidden custom field) is have multiple nodes for catching the NULL field values.

First node criteria:
case.customer_site__c   isnull   equals   true
Immediate Action: Update hidden field to any random value

Second node criteria:
case.customer_site__r.account_manager__c   isnull   equals   true
Immediate Action:  Update hidden field to any random value

Third node criteria:    isnull    equals    true
Immediate Action:  Update hidden field to any random value
Final node criteria: Whatever is needed
Immediation Action: Update email field

I know it's a bit of a dirty hack but might get things done.
I cannot pass step 3 of this Superbadge.
It requires setting up an approval process.
I think I have done everything correctly

User-added image

However I get this error :

A Volunteer Shift Worker record created for another user is not in their approval queue, or it does not have the correct status automatically assigned.
Best Answer chosen by M B
pratima shrivastavpratima shrivastav
Object : Volunteer Shift Worker

Criteria 1 :
Conditions are met :
Volunterr_c is not null
IsShiftVolunteer is false

Action if criteria 1 is true :
Launch Approval Process : Confirm Volunteer Shift
skip entry criteria = true
Submitter : Current User

Criteria 2 :
Conditions are met :
IsShiftVolunteer equals TRUE

Action if criteria 2 is true :
Update Status to Confirmed
User-added imageUser-added image

Matthew PatrylukMatthew Patryluk 
Hi there,

I currently work with person accounts, and am looking for a way to track my historic interaction timeline with a client.
Id like a consolidated timeline where I can log every time I send them an email, text, call, speak to them, etc.

So what I would need is a field where, when I save the newest entry, it adds to a growing list of history displayed between the contact and I.

I've tried to find the answers through research but I'm a bit stumped, and any guidance would be appreciated!

Best Answer chosen by Matthew Patryluk
Steve MolisSteve Molis
That sounds like the Activity History related list
Arpita BoseArpita Bose 
Can anyone please explain the use of VLOOKUP() function in salesforce with a good example, other than the common ZIP_CODE_c ?
As I am new to salesforce, this function is very confusing for me.

Best Answer chosen by Moderator ( 
Deepak AnandDeepak Anand
Hey Arpita,

Forget about the Zip Code example. Lets take an another one for now.

Suppose that you are creating Employee(a custom object) records in the SF org. Now since Employees are very important records, you do not want the users to create duplicate Employee again and again. For example, say one User already created an Employee Record with name - Arpita Bose. Now, an another User who does not know about this tries to create an another Employee record with the same name - Arpita Bose. and hence there is a potential duplication. This should not be allowed. 

So you have two options now:
  1. Add a Validation Rule on the Employee which checks whether there are any existing Employee records with the same name if so stop the User from saving it. Here comes the role of VLOOKUP.
  2. Create an Apex Trigger(before Insert, before Update) which runs a SOQL query to get all the Employee records in the Org with same name as of the one thats getting created now. If the number of records is 1 then stop the User from creating the Employee using an addError method. This will require considerable development effort.
Now, since we are interested in VLOOKUP lets see as of how we can do the same. Create a Validation Rule as below:

(4) Name = VLOOKUP(
(1) $ObjectType.Employee__c.Fields.Name ,  
(2) $ObjectType.Employee__c.Fields.Name ,  
(3) Name)

Now, our basic requirement is to check if an another Employee with the same Name exists or not. So its obvious we are looking into the Name field. The logic is quite simple compare the Name (4) on the Current Record and the Name on that Employee record that matched with the same Name as of the one that we are creating now. Hence we use the equality operator (=). 

Lets look into the VLOOKUP side. You could express the VLOOKUP formula as below: "Look into the Name(2) field on all the Employee Records and return value in it's Name (1) field if the it happens to be same as the Name (3) on the Current Record." 

The SFDC Document define VLOOKUP as follows:

VLOOKUP(field_to_return, field_on_lookup_object, lookup_value)
Searches an object for a record where the specified field matches the specified lookup_value. If a match is found, returns another specified field value.

Points to Remember:
  1. VLOOKUP only available on Custom Objects. Vote for this idea:
  2. VLOOKUP only available in Validation Rules.
  3. VLOOKUP can only be done on the Name fields.
  4. The field_to_return must be an auto number, roll-up summary, lookup relationship, master-detail relationship, checkbox, date, date/time, email, number, percent, phone, picklist, text, text area, or URL field type.
  5. The field_on_lookup_object must be the Record Name field on a custom object.
  6. The field_on_lookup_object and lookup_value must be the same data type.

Hope this helps!

Best Wishes,

Matthew HayesMatthew Hayes 
We have a validation rule that isn't working.  We are just trying to limit entry to numbers between 1 and 36.  Here is the validation rule
(Number_of_Coverage_Periods_Paid__c > 0 || Number_of_Coverage_Periods_Paid__c < 37)

It won't let us enter any values.  Thanks
Best Answer chosen by Matthew Hayes
Eshu KannaEshu Kanna
Thanks Kris. I appriciate :) 

Matthew, you can use the formula with out AND and that should work without any issues. 

if you got helped, please mark the answer as best answer, so that we can save this to answered data base insted of keeping this open. 

Thank you,
Kate GilleyKate Gilley 
We have some records (accounts) that are "Customers" and some that are associate businesses to the customers.  Showing which associates a customer has is relatively easy, but ideally I dont want to list the same business multiple times for each customer it is associated with and also want to look at the associate record and see which of our "customers" it is related to?  ie create a 2-way link between these accounts.

I hope you know what I mean! please let me know if you think you can help or need more explanation.

Thank you.
Best Answer chosen by Kate Gilley
Steve MolisSteve Molis
It sounds like something that could be done off the shelf using Account Partner Roles => (

Or maybe a simple custom Junction Object => (