When you create a custom object in Salesforce, Salesforce does automatically generate a few related system objects behind the scenes-
Suppose a custom object named Test_Obj is created. The following system objects might also be generated automatically: Test_Obj__ChangeEvent, Test_Obj__History, and Test_Obj__Share. However, the creation of these system objects depends on specific conditions, such as whether field history tracking or sharing rules are enabled.

- <CustomObject>__Share (Share Object)
- Used to support record-level sharing.
- Allows programmatic control over sharing access.
- Automatically created for all custom objects that have organization-wide default (OWD) sharing settings set to Private or Public Read Only.
- <CustomObject>__History (History Object)
- Created only if Track Field History is enabled on the custom object.

- Stores a history of changes to fields you’ve selected for tracking.
- Created only if Track Field History is enabled on the custom object.
- CustomObject>__ChangeEvent (Change Data Capture Object)
- Created automatically when Change Data Capture (CDC) is enabled for the custom object.
- Used to track data changes in near real-time for integrations.
Notes:
- These are not created immediately upon object creation unless specific features (like CDC or Field History Tracking) are enabled.
- They are system-generated objects used for platform functionality and integrations.
| Object Name | Created Automatically? | Condition |
| <CustomObject>__Share | Yes | If OWD ≠ Public Read/Write |
| <CustomObject>__History | No | Only if Field History Tracking is enabled |
| <CustomObject>__ChangeEvent | No | Only if Change Data Capture is enabled |
Hello! I need your advice. Please call me or send me a message on WhatsApp. Text me on Whatsapp for quick communication
Hello! We are interested in promising projects for investment. If you have an innovative idea or business model but lack the funding to implement it, we invite you to discuss support options. Call me on Whatsapp