Ask Search:
Tobias HaggeTobias Hagge 

When trying to send an email from a Case you are not the Case Owner off, it doesn't allow to send an email unless you have access to the Contact you select.

Now if you want to send an email and don't select any Contact (but use the additional to), it doesn't allow you to send the email due to insufficient privileges.

Any permissions that would get around this?
Best Answer chosen by Jayson ( 
Ben MBen M
Just ran into this problem. Get the user to login to salesforce in a private/incognito window and see if that fixes it. If so, then clear their browser cache and cookies and it should work.
Sybille CrimetSybille Crimet 
I am an administrator with all rights to create, edit, delete and view alld data. 
I want to delete a record related to an account first from the related list of the account and secondly directly from the concerned record.

I need to update the parent record (Account) before concerned record be deleted.

I have this apex Code in my trigger : 

apex trigger code before delete
when i click on the delete standard action i still get the following error : 
There's a problem saving this record. You might not have permission to edit it, or it might have been deleted or archived. Contact your administrator for help.

here is the check i've done : 
- use of trigger.Old instead of trigger.New
- the TECH_HasMainVAT is not readonly.
- Validation Rules conditions.

Thank in advance for your help !  
Best Answer chosen by Sybille Crimet
Amnon KruviAmnon Kruvi
Hi Sybille,

The problem is probably to do with your update syntax. It should be:
update company;
instead of:

And your usage of one = sign for comparison instead of two:
if (current.Is_Main_VAT__c == true)
instead of:
if (current.Is_Main_VAT__c = true)

However, this trigger suffers from other issues and does not conform to best practices. Please consider the following:
1. It is best practice to place trigger logic outside the trigger class itself, and inside a separate handler Apex class.
2. As far as trigger operations go, always surround the logic in try/catch to make sure it doesn't block the operation if the trigger fails
3. Your trigger only takes into account the first item being deleted, and not all items, by using Trigger.old[0]. This means if two records are deleted in the same operation, your trigger will only update the first one.

I recommend reading this article ( and applying best practices to your trigger. Otherwise, you are bound to encounter further issues on production.
Kate KitchoKate Kitcho 

Does anyone know specifically what this permission entails?

User-added image

The description does not offer any clarity and I haven't been able to find anything on this externally.

Thanks in advance!
Best Answer chosen by Kate Kitcho
Tommaso BolisTommaso Bolis
Data privacy records can help you track and store your customers’ consent. That permission allow users to access information like customer's consent.

Here more info about Store Customers’ Data Privacy Preferences (
can anyone help me in clearing this chanllengeUser-added image
Best Answer chosen by P RAVALI
Mayank SrivastavaMayank Srivastava
User-added image

If it isn't enabled, you need to enable it first and then do what I showed in my first screenshot.
Marc SamsonMarc Samson 
Dear community,

I’ve searched around but can’t seem to find a concrete / authoritative answer to this question.
Hypothetical context;
  • A company has multiple Salesforce Organizations for different divisions.
  • This same company has one single MS Cloud Organization (with a single AAD tenant and O365 Exchange Online)
  • One of the Salesforce Organizations has enabled Lightning synch through the OAuth connector.

So, the Lightning Synch app is already nestled into AAD i.e. the configuration has already been done by an O365 Global admin and the Salesforce Lightning app has full access.
If I want to connect other Salesforce Organizations to this same AAD / O365, will I have to get the Global Admin to input the credentials for each implementation? Concretely – does each Lightning synch configuration for each individual Salesforce Organization within the same company, behave like a new integration / configuration with AAD / O365 and will all the steps have to be repeated?

Many thanks for your time!
Best Answer chosen by Marc Samson
Guy KeshetGuy Keshet
AFAIK - yes, your admin will have to repeat the integration steps in each org.
you are connecting different instances and they will each require their own unique domain for the integration (otherwise, by doing one integration you'll allow EVERY salesforce instance to connect to your org...)
Dan CliffordDan Clifford 
Suddenly this morning, the two people assigned to the RD Manager security profile cannot access any contacts, accounts, or opportunities. What could cause this? We have made no global changes recently. Other users are not experiencing any problems. It's an issue in both Classic and Lightening.

User-added image

User-added image
User-added image
Best Answer chosen by Dan Clifford
Colby KaminColby Kamin
This is being widely reported. See here:
Joe MarsonJoe Marson 
Hi, one of my Users is unable to log into Salesforce. When I, an administrator, reset their password, they don't receive the verification code. Their email address is correct on their User record. This is in ProductionPost to Community. This user has checked their Inbox AND Junk Mail for a Verification Code. No Verification Code email from Salesforce in sight.

Has anyone else expereinced this issue?

A solution or some guidance would be greatly appreciated.
Best Answer chosen by Joe Marson
Daniel ProbertDaniel Probert
Hi Joe,

I had a similar issue recently and this article helped me resolve it.

Lakshmikanth SLakshmikanth S 
I have followed the instructions given in Trailhead and implemented Snap-ins button, Live Agent and Omni Channel in my Developer Edition org. I previously worked on the modules and had no problem with setting it up. I have also added the Live Agent button in a Lightning Community, but it always shows an error that the script resources violate the CSP settings.

User-added imageI checked the Security Settings in Community and CSP Security Level is set to "Allow Inline Scripts and Script Access to Whitelisted Third-party Hosts". I even tried disabling Strict CSP in Session Settings, but it didn't help either. Even if the Agent is logged in to Omnichannel, it always shows Agent Offline in Community due to this.

I have whitelisted the liveagent site, * and *, but nothing seems to change anything.

I tried with the same setup in IE and it shows the Agent Online in Community. Can someone please help?
Best Answer chosen by Lakshmikanth S
Sarah SchneiderSarah Schneider
I had this same issue and was able to get it working by going into Communities Workspace => Settings => Security, copying the root url of the resource that is throwing the CSP error (in your screenshot above, everything up until, clicking 'Add Trusted Site' under Trusted Sites for Scripts, and pasting the root url into the Trusted Site URL field. Then save / publish / refresh, now livechat is working for me.
Darshana PawarDarshana Pawar 
The sharing rule that shares Opportunities owned by Field Sales users with Inside Sales users does not appear to be setup correctly.
Best Answer chosen by Jayson ( 
Narender SinghNarender Singh
So first, you hadn't set the OWD of Opportunity object to Private. It was Public Read/Write.

Second, after changing OWD, when I ran the Apex tests, I got this:
System.AssertException: Assertion Failed: Inside Sales users should be able to read all Opportunities but the test did not find all records. #sadtrombone: Expected: 3, Actual: 2

Since the error was saying "should be able to read all Opportunities", so I checked the View All permission on the Inside Sales profile.

And done.

Strange thing - The SB asks you to NOT to check the View All permission, but the Apex Test error indicates otherwise. And marking the View All permission, passes the Apex Tests.
Best Answer chosen by Kathryn Baird
Chris EdwardsChris Edwards
Sure, Kathryn! Before we get on to the detail, my biggest, strongest, most important tip of all would be to test all of this out in your sandbox environment first before even thinking about making these changes in your live system! As you're on Enterprise Edition, you'll have a sandbox at your disposal so do use it.

Each step will be a little more in-depth than the brief summary below, but I've included links to docs, videos or knowledge articles where possible and I'd be happy to take any follow-up questions you may have. Here goes..!

1) Create two record types. Name them what you like but in my example I'll use Regular Contact and Hidden Contact. Regular Contact should be the master, so create this one first if you don't already have record types on your contact object. Take a look at and for guidance on creating record types. Give Standard Users (and presumably all other profiles) access to the two record types (

2) Clone your existing contact page layout, remove the address and phone number fields from it and save it. Then under Page Layout Assignment, ensure the the new layout without these fields is selected for the Standard User and Hidden Contact profile/record type combination.Further guidance:,,

3) EITHER manually change the record type of your specific contacts to Hidden Contact one by one ( OR create some standalone workflow logic to do that for you (for example: create a new checkbox field for Hidden Contact and create a workflow rule that detects this value becoming true and forces through a field update of the record type field to a new value of Hidden Contact -

4) Test this extensively to ensure that all use cases are satisfied. For example, check that all users can still access both types of contact, check that the Hidden Contacts are having their address and phone number fields hidden for Standard Users, check that Regular Contacts are still showing the fields for Standard Users, check that the workflow is functioning correctly to update the record type automatically when Hidden Contact is ticked. 

5) When you're comfortable that all your testing has been successful (and maybe think about getting someone else to sanity-check it), move your changes to your live environment either by repeating them step-by-step in the live system or by moving some or all of the new components via a change set (

Be sure to let us know how you get on and whether you'd like to ask any follow-up questions or share any obstacles you face along the way. Best of luck!