How is the limit applied?

Example scenario:

User with community profile has visibility to 10 custom objects, and one of those objects is generated by processing information stored on another custom object.

If this user accesses a Visualforce/lightning component with a controller class that does this processing for him, is it a violation of the 10 custom objects limit?

I don't think it is because the user isn't accessing the object directly, the system is (assuming the class doesn't enforce sharing settings), but I want to be sure about this.

1 Answer 1


There are no technical restraints regarding the ten object limit. This is actually mentioned in the documentation somewhere. However, if salesforce.com finds out (however that may be), you would be in violation of your contract and at risk for contractual breach.

In theory, this means you'd be forced to pay for the more expensive licenses that you would have paid for if you'd been upfront about needing more than 10 custom objects to begin with, backdated to the point where the breach of contract occurred.

As long as the users can only view data from ten different custom objects, they should be fine under the contract. For example, it would be particularly cumbersome if you couldn't write a trigger to update an 11th object they don't have access to when the trigger does so for users not under the 10 object limit.

Writing Visualforce pages to circumvent this "restriction" would be pointless, because there are no technical restrictions that would enforce this limit. However, do keep that limitation in mind when building your UI and code, because a breach of contract isn't ideal for your organization's pocketbook. You should not be exposing more than 10 custom objects total (not including Managed Package objects, as noted here).

  • 1
    Thank you for your answer. But to be more clear: the data I'm referring to is an object that is created by users with another profile, with different access. This particular object is not necessary for my limited user to see on the UI, but the system would need to be able to read that object's data to perform some calculations. If I create a class that does this, am I violating the limit, even though the user doesn't have direct access to the object? Also, master-detail relationships count as 2 objects or just one? May 8, 2017 at 15:08
  • 2
    @RenatoOliveira For calculations and backend housekeeping, it wouldn't count. The rules apply to objects the user can view, modify, or delete directly. Master-detail relationships are two objects if they need to see the detail (because Detail Read requires Master Read), or just 1 if they only need to see the Master. If you're in doubt about a specific circumstance you have, be sure to ask your AE and they can help clarify.
    – sfdcfox
    May 8, 2017 at 15:14
  • Thank you again. This last comment answers my question. :) May 8, 2017 at 15:16
  • Landed on this answer while being unable to understand this limitation myself. For the customer community plus it says "10 custom objects per license (custom objects in managed packages don’t count towards this limit, as long as they are made publicly available on AppExchange)". Does this mean if I purchase 10 customer community plus licenses, I am free to use 10 * 10 = 100 custom objects without any concerns ?
    – N_H1922
    May 31, 2021 at 16:20
  • @N_H1922 You can use up to 10 custom objects per community, so conceptually you could use 100 total custom objects, but only 10 per community maximum. You can't aggregate them together to give, for example, one user access to all 100 objects.
    – sfdcfox
    May 31, 2021 at 17:08

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .