+ Start a Discussion

Packaging and custom FLS



Could someone please advise on how FLS on standard objets custom fields is applied when installing a managed package? I am a bit disappointed by the difference between what I'm seeing in documentation and what I'm getting as the result.


We have external id text fields for accounts and contacts which we then use for integration with our systems, let's say: Account.Custom_ID__c and Contact.Custom_ID__c. We are installing this package to both new SF environments and SF environments that may already have the same custom fields for contacts and accounts. Though 'installed' custom fields have namespace prefix and thus their names are different from the ones that had previously existed in these SF orgs, it seems that their visibility depends on it. I have tried different  combinations of SF orgs and step 2 security levels  for installation and here are my conclusions:


  1. Grant access to admins only. Expected: all custom fields from the package are visible for System Administrator profile. In reality: custom fields are not visible to any profile (if these fileds already exist in this SF org) OR some chaotic set of profiles (not only administrator and not only custom profiles) has visibility checked for this field (otherwise).
  2. Grant access to all users. Expected: all custom fields from the package are visible for all custom profiles. In reality: the same as for previous option.
  3. Select security settings. Here I should be able - in theory - copy some of profile settings from the custom profiles that I included into package. In reality: if these fileds already exist in this SF org then they (the new ones) are not visible to any profile, otherwise they are visible to all profiles. Regardless of the mapping I've chosen.

Sources of information that I used:

Installing a Package 

Salesforce Packaging Guide


Please let me know which part of it I am getting wrong.

Thanks in advance.


The settings (your list above) that an Admin can choose from after installing your App, really pertain to the App itself. Since you're installing your App into another customers Org, the Admin should review any of the existing Profiles and make changes based on what is needed.


Many ISVs will include one or more "sample" profiles based on role that customers can either use out -of-the-box or use as a template. Also, Permission Sets are another area to look at for your App. In either case, I would recommend that you provide instructions or help that walks a new customer through the configuration process post install.


Hi BoSoxFan


Thanks a lot for your answer but I don't totally understand from your answer if setting CRUD and FLS settings is possible during the installaton. https://na7.salesforce.com/help/doc/en/distribution_installing_packages.htm here it is said that I must be able to do this, isn't it?


You say:

The settings (your list above) ... really pertain to the App itself.

What is the difference?




Are you working with a Managed Package or Unmanaged Package?


We are working with managed package.