Answers - Salesforce Trailblazer Community
Ask Search:
Bina MBina M 
How to remove 'Import' button from List view of Contacts/Accounts? We don't want our users to import records. I tried to remove it from the  Search Layout but did not see the option for 'Import' button there.

User-added image
Again, checking Profile level permission "Allows non-admin users to import Custom Objects using Data Import Wizard" under system permission won't work for Standard objects.
Is there any way to remove 'Import' button from list view?
Best Answer chosen by Bina M
Bina MBina M
@Ines Garcia- Thank you! I figured out that unchecking 'Import personal accounts and contacts' under App Permissions actually worked in my case for Custom Profiles.
Laura CombsLaura Combs 
I don't think I'm wording this well but I'll try.

When my students log into chatter, their default is to post to followers and company highlights. Is there a way to default them to a specified group? I found a very old article from 8 years ago about this but it doesn't look like it would support much and I'm hoping there has been an improvement since then:

Thanks Trailblazers!
Best Answer chosen by Laura Combs
Prabhat SharmaPrabhat Sharma
Hi Laura,

There are a few ways to achieve this and would require some customization (Apex) to achieve it. Below are two approaches,

Approach 1
  • Create a scheduler class than runs every 5 mins. It queries all the User Login details who have logged in within the last five minutes(or 2 minutes for bare minimum). Post to relevant chatter group based on a mapping that can be stored in either custom setting or custom metadata.  
Approach 2
  • Create a custom component and place it on the home page. Whenever the user logs in and lands on the home page, logic can be executed at the backend to trigger the chatter post using the same mapping stores in custom setting/metadata.  
NOTE: This would require a developer to develop the functionality. 

Hope this helps. 

Andrew LakinAndrew Lakin 
I am looking to create public calendars (for exmaple, our inteneral release schedule dates). Looks like this is available in classic but not lightning:

In addition, I am not able to find an idea for this to upvote. The only one I've found has been closed because it says delivered, however, its only to share users calendars with each other in lightning:
Best Answer chosen by Andrew Lakin
Prateek SharmaPrateek Sharma
Hi Andrew, 

It seems to be limitation, you can view your public calendars in Salesforce Classic but Lightning don't given that option.

Idea is created for that.
Almel MendozaAlmel Mendoza

User-added image
Best Answer chosen by Almel Mendoza
Amit SinghAmit Singh
Reported to the Team. Thanks for letting us know :)
Casey RioCasey Rio 
I have a few users who have fields that are typically displayed as links that are now only showing as text (URLs, email addresses, etc.) Any idea what could be causing this? It's odd that it's only for a random few users and is not consistent with assigned user profiles.

Best Answer chosen by Casey Rio
Casey RioCasey Rio
Michael MMichael M 
We have a custom object ("Pre-Leads") where we generate potential leads and store their data. I need to create a "create Lead" button to display on those records, which automatically creates a Lead record and populates a number of the fields (e.g. name, date of birth) with those already populated in the "Pre-Lead". What is the best way to do this?
Best Answer chosen by Michael M
Andrew RussoAndrew Russo

This areticle should help with your question its new in spring20. Aslong as you are in lightning it will work perfectly.

Ronda SchopperRonda Schopper 
I need help finding a way to setup an email alert in the system based off of a percentage of leads in the open status on an Account. We currently have a report setup that gathers each Account's open lead percentage. But we need help with how we actually get the system to automatically email the account owners based off of the percentage. I'm hoping this is something that is possibly within Salesforce. Thanks!
Best Answer chosen by Ronda Schopper
Steve DoddSteve Dodd
Hi Ronda,

I had the chance to take a look at this, and I figured out a solution that I think might work. Let me say ahead of time that I was not able to get the "Lead Counter" to work for Leads that are imported (bulk imports) or when a Lead is deleted (i.e. subtract one of the Leads from the count). I would say you would probably need a trigger to be able to perform those specific actions.

But here is what I did...let me know if you can use it and I'd be happy to share more screen-shots with you.

I added a lookup relationship field (to Account) on the Lead object, just as you said you have already. 

Next, I created four custom fields on the Account object, all of which are Number format (no decimal places):
1) Total Open Leads
2) Total Lead Count    
3) Total Open Leads (Process Step)
4) Total Lead Count (Process Step)

We'll call the last two fields  "staging area" fields, and by that I mean they are temporarily storing the value for Process Builder so it can update the new current counts as needed. You can name those two fields whatever you want, as long as you know what they're for. I named mine "Process Step" but there is no need to display them on the page layout anyway, so the name isn't too important.

User-added image

Then I created a process in Process Builder, with Lead as the starting object (* Start the process when a record is created or edited)

Node # 1 - Lead Status = Open
Criteria - Existing Lead is changed from any value (other than "Open) to "Open" (It's called 'Open - Not Contacted' in my Dev org)...OR...a new Lead is created with a status of "Open"
Immediate Action - 
    a) Update the temporary "Total Open Leads" field on Account (with a formula) by calculating the current number of 'Total Open Leads' + 1
    b) Update the 'Total Open Leads' field on the Account (as a Reference from the temporary "Total Open Leads" field)

* Action A occurs right away, and then Action B occurs immediately after that

Node # 2 - New Lead Created
Criteria - Lead Created Date = Lead Last Modified Date (so this part ONLY applies to brand new Leads)
Immediate Action - 
    a) Update the temporary "Total Lead Count" field on Account (with a formula) by calculating the current number of 'Total Lead Count' + 1
    b) Update the 'Total Lead Count' field on the Account (as a Reference from the temporary "Total Lead Count" field)

Node # 3 - Lead Status Changed (from Open) - so this part ONLY applies to existing Leads whose status is changed from "Open" to any other value
Criteria - Lead Status IsChanged equals TRUE...AND...Lead Status does not equal "Open"
Immediate Action - 
    a) Update the temporary "Total Open Leads" field on Account (with a formula) by calculating the current number of 'Total Open Leads' - 1
    b) Update the 'Total Open Leads' field on the Account (as a Reference from the temporary "Total Open Leads" field)

User-added image

Make sure you use EVALUATE THE NEXT CRITERIA (instead of STOP) for Specify What Happens After Evaluating This Criteria (after nodes 1 and 2) so the process will move on from Node Node Node 3 as needed, without stopping.

Lastly, I created a regular workflow rule to send an email notification to the Account Owner if the percentage of "Open" Leads on the Account is 3% or higher using a formula as the rule criteria (formula evaluates to true):
(Total_Open_Leads__c / Total_Lead_Count__c) > 0.03

User-added image

User-added image

If you are using Professional Edition and don't have workflow rules, you can use Process Builder to send the Email Alert.

I tested it quite a few times and it seems to work fine...I keep getting the email whenever the "Open" percentage goes above 3%. I've seen a variation of something similar to this using Process Builder + Visual Flow before, but I modified it from an older process that I had built using only Process's basically doing real-time Roll-Up Summaries without using Roll-Up Summary fields, and without having a Master-Detail relationship between the two objects.

Another thing I wanted to can create a formula field on Account (Data Type = Checkbox) that evaluates to TRUE if (Total_Open_Leads__c / Total_Lead_Count__c) > 0.03...and then you can just create an Account report filtered by Checkbox_Field__c = TRUE to give your team all of the Account records that meet the criteria, and maybe even give them a cool dashboard to use as well.

Note: It's important that those four custom fields you create on the Account are not Read-Only, and that anyone adding Leads or changing the status on Leads has access to the fields in their Profile because you want their actions in the Lead record to be able to fire the process when applicable, and the Users also need to be able to see the counts in a report. It's up to you whether or not you want to display the "Total Open Leads" and "Total Lead Count" fields on the Account page layout...I probably wouldn't because I would be worried someone might change them in error.

Also, if you build this in Process Builder - before implementing it - you would need to do an Update on the "Total Open Leads" and "Total Lead Count" fields (even if the number is 0) in your Account records. You could do it with Data Loader (if you are using Enterprise Edition or higher), and you can probably do it at night or over the weekend when the Users aren't working in the system. The counts will calculate automatically (by adding and subtracting) with your process going forward, but you will need to have the correct values in the records as a starting point.

That's everything I have for now...let me know if any of that is not clear or if I can answer any questions.

Steve D
Jaufret TurnerJaufret Turner 
This issue is pretty specific... 

The scenario in the title systematically return an error: 
System.DmlException: Insert failed. First exception on row 1; first error: FIELD_INTEGRITY_EXCEPTION, Assigned To ID: id value of incorrect type: 00Gxxxxxxxxxx: [OwnerId]

Here is the code I am running:
Group g = [Select Id from Group where Type = 'Queue' AND NAME = 'Test queue' LIMIT 1];
ID qId = g.ID;
ID whatId = 'a0A1w000000BrPyEAK';
Date todayDate =;

List< Task > tskToInsert = new List< Task >();
tskToInsert = anotherClass.addTaskTEST( tskToInsert, qId, whatId, todayDate );

insert tskToInsert;

Where anotherClass.addTaskTEST() is a very simple function: 
public static List< Task > addTaskTEST( List< Task > currentTskList, Id queueId, Id whatId, Date todayDate )
        Task tsk = new Task( 
            OwnerId = queueId
        System.debug( 'Insert task: ' + tsk );
        currentTskList.add( tsk );

        return currentTskList;

If I add the task with user Id, no problem. 
If I add the task with a queue Id but all within the same method, no problem.

Thanks for your help!

Best Answer chosen by Jaufret Turner
Rakesh SharmaRakesh Sharma
I was getting the same error, and got it fixed by setting the <apiVersion>48.0</apiVersion> API version to 48
Peter ReidPeter Reid 
Hello, this is more of a general question here.  Attached are three pictures, one of my workflow rules (email), one of an inside look at the workflow rule (it is for email to case and sends an incoming email to the desired queue, based on which email address was sent an email), and the third picture is my case assignment rule.  The case assignment rule is not active, however the workflows are. 

My question, don't they essentially do the same thing?  Is it better practice to have the case assignment rule activated and in place and deactivate my workflow rules? or should I leave it be and delete the assignment rule I don't have active?

I will be adding more departments to this process and something tells me that I shouldn't just make tons of workflow rules over and over

Thank you in advance for your guidance!User-added imageUser-added imageUser-added image
Best Answer chosen by Peter Reid
The AdmiralThe Admiral

Hi Peter,

Let's say you only need initial 'assignment', then using Assignment Rules makes a lot of sense.  However, if you also want to 'assignments' during a Case lifecycle, you will have to use Workflow Rules (which means duplicating the rules).

It really depends if you want to use Assigment. The pattern I usually suggest is to use Assignment Rules to 'filter out' the garbage records (send them to a Queue, for example), then use Workflow Rules for your actual 'real' assignments. You only have 1 set of rules to maintain, and you can create a custom view on the Workflow Screen to show you only your 'Assignment' rules if you use a naming convention.

All your assignment rules will be in one place, managable all in one screen (with workflows & field updated you will end up creating multiples and cannot view them all the rules in one screen.) 

"Assigment rules they dictate which Salesforce user becomes the owner of a record, based on some criteria.
Workflow rules they make things happen like creating tasks, sending emails or updating fields based on things that happen to records that already exist in the system."

It is indeed better to choose one. Personally I use more assigment rules for leads and cases. Once the data has moved further in the system, workflow rules and process builder take over. 


Scott MillsapScott Millsap 
I'm trying to pull data from Salesforce into Tableau.  According to this developer document all of the tables/objects that I'm trying to pull should be available.  However, some of them are not visible when I log into Salesforce through Tableau.  Specifically Service Resources, Time Sheets, Time Sheet Entries, and Service Appointments are missing.  Interestingly Work Orders, and Cases ARE visible.

I'm logging in using a sys Admin account and this account is confirmed to be able to see information in these tables through the Salesforce UI; therefore, it's not a problem with the permissions of the account.

Any thoughts are much appreciated.  
Best Answer chosen by Scott Millsap
Scott MillsapScott Millsap
I did try opening a ticket with Salesforce and a ticket with Tableau. 

After a lot of finger pointing, it turns out that the issue is on the Tableau side.  Salesforce is currently on version 48 of their API.  Tableau 2019.3 is only using v37 of the API... and many of the Service Cloud objects are in v38 through v47.  E.g. Service Resources are in v38, Timesheets are in v47, etc.  Tableau is updating the API version they use in release 2020.1.  This version is currently in Beta and we have tested it.  It does pull these object.  Not clear when this will be generally released.