Ask Search:
Kate ColsonKate Colson 
I had a beast of a time making sure that my external customer users could see cases from their account in our Community Plus portal.  I did not feel that the documentation provided was clear on where I could look to see what settings were incorrect. I spent a lot of time with sharing settings, correctly setting them up per the documentation. It turned out that you must create a view in your production environment (in my situation, cases view) that was "wide open", and then use sharing rules to open up visibility to an account using sharing settings.  I'll post my documentation here. Hopefully it will save someone else 6 hours of frustration :) 
Best Answer chosen by Kate Colson
Kate ColsonKate Colson
Documentation reflects Ensuring your customers see their appropriate cases in Customer Community Plus. It is written with the assumption that you have community plus licenses and used Napili as a template provided by Salesforce. It assumes that you have already set up the community and are having problems making sure your customers only see cases from the account they are affiliated with as a Contact.


The cases shown in the Customer communities relies on a view set up in the cases object in the production instance of Salesforce. In laymen’s terms, the instance that your team uses every day.

Case View in Production Instance

The view should be “wide-open” we will use sharing settings to determine what users from each company will actually see of the cases that are contained in the view.
  1. Go to Cases -> Create New View
  2. Name the View “My Community Cases” the Unique name will be My_Community_Cases
  3. Under Specialty Filter Criteria select the radio button “All Cases”
    1. If you only want your customers to see cases that are “Open” or Cases that are of a certain status, you can use the “Filter By Additional Fields” to narrow down what the view will output.
    2. You do have the ability to have multiple case lists in Communities. This would allow you to have “Open Cases” on the Home page, and Closed cases somewhere else. If this is what you want to offer, repeat creating views using the instructions in this section.  You can use the “Save As” function to speed up the creation of the views.
    3. Decide what fields you want your customers to have the ability to view, and the order you want them to see them in. If you are using Napili, the recommended Template for those setting up a service type of community using SFDC templates, the Case list is not very wide.  There might be coding you can do to make more columns visible.  We will not get into that with this documentation. So choose the columns visible to your customers sparingly.
    4. Under Step.4  in the view set up screen, select the radio button “Visible to certain groups of users”
      1. Search “Public Groups”
      2. From the drop down pull over (Add) “All Customer Portal Users”
        1. “All Customer Portal Users is added as soon as you become Community Users by SFDC / purchase Community Licenses
      3. Save the View and take note of the Unique Name, (Item 2 in this section)

Case View in Community Builder

  1. Go to Community Builder: Setup ->Type “Communities” into the Quick Find box -> Select All Communities
  2. Select the “Builder” link from the Community you are setting up case visibility
  3. The Community will open up in Builder mode
  4. From the left had menu select the page editor (second option)
  5. If you have not already, drop the Case List Lightning Component into the page you are editing
  6. When you click on the Case List –or when you first drag and drop it into your page a small “Case List” box appears. The only * (mandatory field) is the Case Filter Name or ID.  This will default to “AllOpenCases”, this is where you need to drop in your unique case view name from “Case View Production Instance” section 2.
  7. Make sure you select “Publish” so that the changes will take affect. The community should also be active.

Sharing Settings

You are going to use sharing settings in your production environment to restrict what your external community users will be able to see in the view. There is an assumption in the below process that you have already added at least one customer contact to your community.  Salesforce creates a “Role” for those users. You are going to use this Role in sharing settings.
  1. Go to Setup-> Type Sharing Settings into the quick find box -> Select the Sharing Settings under “Security Controls”
  2. You will see the Organization-Wide Defaults.
    1. If it is not already, change the Default External Access on Accounts to “Private”
    2. Double check to make sure that the Contact standard object, the Opportunity standard object and the Case standard object are also set to Private (typically this is automatic because they are controlled by the account).
    3. If you are going to allow your customer users to view any other objects (e.g., work orders, assets, etc) also move those to private in the Default External Access.
Note: the following steps must be done every time a contact from a NEW account, an account that has not been set up for these sharing rules, is created.  There is a way to use Apex code to automate this process. However, if you are not offering visibility to cases, etc through Communities to many accounts, this step is easy and can be set up when you are setting up new accounts with the capability to have contacts use the customer community portal.
  1. Scroll down to the related list section of this page to Account Sharing Rules.
  2. Select New
  3. Use the Account Name to create a name for the Label. E.g., Customer Name Community Visibility
  4. Select “Based on Criteria”
  5. Use the Account Name field, equals, and then enter the account name for the criteria
  6. In Step 4 decide who will get to see these records.
    1. From the drop down select “Portal Roles and Subordinates”
    2. The second drop down will show you a role name that coincides with the name of the account where you ‘ve just granted access to a contact.
  7. In Step 5 decide what visibility / control they will have over Account / Contracts/ Opportunities / Cases. If anything is labeled private, the customer contacts will still not have the ability to see those records. A best practice for most orgs is “Read Only” access to Accounts and Contracts and “Read Only” or “Read/Write” access to Cases.
  8. Select Save


  1. Go to the contact that you have set up in your production instance
  2. Use the Manage External User to log in as the contact you gave access to
  3. Confirm that the user can only see records from their assigned Account
Grant OngstadGrant Ongstad 
I created a custom report type using accounts and duplicate record items and am building a report to see the when users have been prompted about a duplicate record (account). Is there a way to see on the report when a user ignored the request? Versus when the user went through with the suggestion? I have read the documentation but have not encountered this specific flag.
Best Answer chosen by Grant Ongstad
Jeff MayJeff May
No.  You can't get 'the results' since if the User decides NOT to create a duplicate, there is no duplicate record to track the 'response' on.
Salinda HorrocksSalinda Horrocks 
I need to set up a profile for all of our managers to be able to edit any opportunity (despite who owns it) however they can't be allowed to delete unless they own it. I am new to salesforce and not quite sure what permissions need to be altered to do this.  Any help would be much appreciated.  
Best Answer chosen by Salinda Horrocks
Naveen DhanarajNaveen Dhanaraj
Hi salinda,
Based on your wish You can Create Permission set or profile for Managers to achieve this

If you had Existing Profile for Managers
1.)Remove Delete and Modify all Permission for Opportunity
2.)Create Permission set For Users with Existing Profile.

If you dont have Existing Profile,
Create New Profile for Managers and Give Permission for Opportunity such as Read, Create,Edit,View all.
No need of Permission set.

If you would like to give permission for the Records they own Then create "Roles"
Use This,
User-added image

Karen WheelerKaren Wheeler 
Hi. I'm trying to create an update process using the process builder and I'm not getting an error, but it isn't actually doing anything (testing in Sandbox).

I have a custom object on the Account page layout called "Promotions". There is a custom numeric field in that section called "Current # Cases or Coupons" that I want populated or updated to reflect the data when a custom field within the Account object called Monthly Cases is updated IF the Promo Start Date is >= TODAY() and the Promo End Date is <= TODAY().

My Starting object is Customer/Office and it is set to start the process when a record is created or edited. I have not selected the Recursion option.

My Criteria is set to execute when conditions are met.  My set conditions are a field [Account].Monthly_Cases__c (which is a custom numeric field). The operator is "Is Changed", Boolean with a True value. Conditions are set to "All of the conditions are met".  I have not set the option to execute the actions only when specified changes are made to the record.

The "True" arm of my flow: Record: [Account].Promotions__r (which is a custom object placed on the Account page layout. The field I want updated is in this Promotions section.) The criteria for updating records is that updated records meet all conditions.

I want to filter on two fields in the Promo section: Promo Start Date >= (Formula) TODAY() and Promo End Date <= (Formula) TODAY(). The field to update is a numeric field under Promotions called "Current # Cases or Coupons" with a type of Reference and a value of [Account].Monthly_Cases__c.

No errors, no nothing. It just isn't updating. Any suggestions would be greatly appreciated!!
Best Answer chosen by Karen Wheeler
Sathishkumar PeriyasamySathishkumar Periyasamy
Assuming that is causing issue. Please change the Critria and test with single record. This approach just for testing to make sure process builder is working or not.

User-added image
Joy SmithJoy Smith 
Need help with an Age formula
When a product is shipped, we add a date stamp to a standard field.
Now, I need to know how long has been outstanding so I'm creating a formula field and it's not working.

Standard field: Shipped
API Name: Shipped
Field Type: Date

I am creating a new AGE formula field.  Here's how my formula is but get an error message>
Shipped - Now()
Error message: Error: Incorrect parameter type for operator '-'. Expected Number, Date, received DateTime
Best Answer chosen by Joy Smith
Sunil SarillaSunil Sarilla
Hi Joy,
Please make sure, the formula return type is Number.
Medhanie HabteMedhanie Habte 

I am designing a process builder to send an email alert to contacts upon creation. Currently, I have this invoked to run each time a record is created. In addition, I have a second criteria that runs a scheduled email alert (5 days prior to a certain date field) for records meeting a certain criteria.

In our instance, we send an email each time a record is created, but if a contact hasn't responded, as indicated by a checkbox, we then send a reminder email later on.

Would it be best to simply consolidate the process builder into one criteria node with the email alert only running if the criteria equates to true. In essence, a reminder if something hasn't completed.

Here's what it looks like.

Our Process Builder
Best Answer chosen by Medhanie Habte
Mayank SrivastavaMayank Srivastava
A few things that you need to change:

1. The Process needs to be changed to fire on both create and edit of MTE. The reason being that if the Lead supervisor checks the box sometime in the future on an existing MTE, the process wouldn't detect that since it's only set to fire on creation.

2. Once you do #1, the first node's criteria should be changed to be a formula and include this statement:

This ensures that the #1 node only fires on creation.

The third node stays as is.

Once you make those changes, the process should work as expected.
Swapna MistrySwapna Mistry 
I want to create a Quick Action to create Products on my Opportunity page. 

I dont see Product as an option for Opportunity Action OR Global Actions. 

Is this not possible? 

User-added image

User-added image
Best Answer chosen by Swapna Mistry
Mayank SrivastavaMayank Srivastava
Nah, products object doesn't allow for creating actions. No way around that, unfortunately.
Brittney KernerBrittney Kerner 
We have a parent-child account structure and we only log our opportunities/contacts under the child account. However, we would like to see the opportunities/contacts of all child accounts under the parent. 

Can this be achieved through related lists and process builder?

I'm struggling to identify the criteria and actions in process builder to acheive this. 
Best Answer chosen by Brittney Kerner
Steve MolisSteve Molis
Okay so you basically need a custom Lookup(Account) field on the Contact and Opportunity objects.  Then use the Process Builder to insert the Account.ParentAccount into the Custom Lookup(Account) field using the Process Builder.  
Then add the custom Related Lists for Child Account Contacts and Opportunities to the Account Page Layout. 
Morgan MarcheseMorgan Marchese 
Simply put, I know that you can change the owner of an opportunity after saving it by pressing the [Change] button next to the Opportunity Owner in the Page Layout, but I am wondering if I can enable this lookup to be changeable during new record creation and true record edit. Is this possible?

If not, I was thinking maybe using Process Builder or Work Flow and introducing a secondary custom lookup field that updates the standard opportunity owner on save (if even that is possible) but I hate introducing additional fields if I don't have to. Thoughts? All input appreciated, thank you.
Best Answer chosen by Morgan Marchese
Morgan MarcheseMorgan Marchese

There is no way to do this dynamically out of box. All the other answers suggested using WFR with a field update however the field update requires that you specify a certain owner to ALWAYS assign opportunities to. In my case, I want to do it dynamically where it isn't always assigning the opp to the same user but instead allows the user to select from a picklist of available users and have the system change the opp owner to whomever is selected in the picklist on save.

This appears to only be possible through Apex Triggers, as detailed in the link that Pritam provided:

I am creating my own answer and marking it as Best Answer just so that future readers of this item will be aware that this is for a DYNAMIC Opportunity change on save, not a WFR that always sets the opp owner to the same user.
Jerrod KnappJerrod Knapp 
I have a date field on a custom object that needs to be updated when a related task is set to "Complete".  I have tried Process builders along with flows but can't seem to get it to fire.  Can someone point me to a solution?  Thanks in advance.
Best Answer chosen by Jerrod Knapp
Deepak AnandDeepak Anand
I am almost sure what the error would have been but can you take a look at your email and check what it was ?