System Objects
About System Objects
The System Objects are built into the foundations of the platform. They're optimized for high performance and functionality.
System objects are customizable, but some functionality is fixed. (Custom Objects, in contrast, are created by platform developers. They are fully configurable, and become available when custom applications are developed or installed.)
Property Limitations
The following Property options are not available in System Objects:
- Display Styles - Only Sectional Layout and Horizontal Tabbed Layout are supported
- Record Locator can not be changed
- Cannot make an object Active or Inactive
- Inactive objects are not used in an application
- Data in an Inactive object cannot be viewed, edited or deleted
- Cannot set the object to be Web Enabled;
- Note: Web Enabled objects can use the Web Forms tool
- The Help URL is set by default, and cannot be changed
Other Considerations
- Object Inheritance is not supported
- Lookup fields to System Objects do not include Record Selection Criteria or Post-selection Javascipt
- System Objects cannot be deleted, but can be hidden from view
- Fields associated with the Record Id are clickable in System Objects
- Clicking the link to an Account Name, Contact Name, or other System Objects opens the record for viewing
- By contrast, Custom Objects provide a Details link to open the record for viewing
Main System Objects
The main System Objects are listed here, showing the names that appear in the UI, along with the object-type identifiers used in the APIs.
System Object
(As shown in the UI)Object Identifier
Reference Information Customization Capabilities Access Profiles ACCESSPROFILE REST API:accessProfile Resource Application Access APPLICATION_ACCESS REST API:applicationAccess Resource Case cases REST API:record Resource Virtually unlimited ability to Customize Objects Task tasks REST API:record Resource Virtually unlimited ability to Customize Objects Role ROLE REST API:role Resource none User USER REST API:user Resource - APIs
- Java API#Objects to manage USER records (one of the standard System Objects)
- getLoggedInUserInfo to get information on the current user
- Manage User Fields
- Create new fields
- Modify labels of existing fields
- Manage User Rules
- Create login rules
- Use a restricted set of Event Rules
- Set up Scheduled Rules
Team TEAM REST API:team Resource - Manage Team Rules
- Use a restricted set of Event Rules
- Set up Scheduled Rules
User Team USER_TEAM REST API:userTeam Resource none - APIs
Note:
USER_TEAM is the Junction Object that allows a User to belong to multiple Teams, and a Team to have multiple Users.
Related System Objects
These system objects are related to records in other objects. By default. these objects are not visible as independent entities in the UI, because end users and even designers have little need to see them. In general, then, the records they contain are seen only when viewing the records they are related to.
They can be made visible when needed, however, and they can be accessed programmatically.
System Object Object Identifier Reference Information Attachments attachments In each record, the Multi Object Lookup field related_to references the object and record that the item relates to. For example: "cases:345rjkz921", where 345rjkz921 is the ID of a record in the cases object. Learn more:
History history Tasks tasks
Considerations:
- Add Attachments and Tasks to those objects, respectively.
(When an item is added or removed, an entry is automatically added to the history of the referenced record.) - Search those objects to get a list or records. Filter the list to get the items that relate a particular record.
- Add Private Notes to the History object directly, specifying the category field with value="29"
- To get a list of Private Notes attached to a record, search the History object. Filter the list to:
- Return only those items where the related_to field matches the record of interest
- Return only those items where the category field has the value 29.
- Add Attachments and Tasks to those objects, respectively.
Learn more:
- See the Java Code Samples for sample code that works with Related System Objects
- Java record handling APIs to search and manage records
- REST record Resource to search and manage records using REST APIs using an external program or JavaScript
(Use the same patterns as in the Java code samples.)
Viewing "Hidden" System Objects
Developers who are working with the Related System Objects generally need to inspect their fields and properties. Developers may also need to view the records they contain, when debugging. The procedures for doing so are described below.
The same procedures apply to other System Objects that are hidden by default: Users, Teams, and the User_Team object. (A variety of other System Objects are working behind the scenes, as well. You'll see them as you follow these procedures.)
Tip:
You can easily add Fields to the Users object, and add Rules to both Users and Teams, without going to these lengths. See the Customization Capabilities for the main system objects, earlier on this page.
To make a hidden System Object visible:
- > Customization > Resource Sharing
- Application: Your App
- Resource Type: Objects
- Move the System Object from the Available column to Selected
- Click [Save]
- The object now appears in the list of objects that are part of the current application, where it's fields and other properties can be inspected--including the object name. (The object ID is also available in the Object Properties but in most all of the APIs, the object name works just as well as the ID, and it's a lot more readable. (There are only a few APIs that require the object ID. Those are carefully noted.)
- Generally, that's all of the information you'll need to write your code. But sometimes, it's helpful to view the records in that object--mostly for debugging. That can be done, as well.
To view the records in a System Object:
- Make the object available as a tab:
- > Customization > Objects > {object} > Object Properties
- Click [Edit]
- Check the box: Available as a Tab
- Click [Save]
- The object is now one of the choices that will be available when you set Tab Preferences, next.
- Make the tab visible:
- The object now appears as a tab in the UI, and its records can be viewed.
To view data in fields that aren't shown:
- Make a new form or edit an existing form
- Add the fields you want to see
- The data is now visible when you view a record using that form.
Standard Object Fields
These fields are predefined in all Objects. They:
- Created automatically when an object is created.
- Populated automatically when a record is added or updated in the GUI.
- Required when a record is added or updated using an API.
Label Field Name REST Search Name Display Type Description Object ID object_id object_id Number Unique identifier for the object. (This field is always present, but is only displayed when examining Object metadata (the data that defines the object). Record ID id id Number Unique record identifier Owner owner_id OWNERID String Unique identifier of the record's owner Created By created_id CREATEDID String Unique identifier of the user who created the record Date Created date_created DATECREATED String Date the record was created: - UTC Format in the REST API.
- User's Date Format in the GUI and the Java API.
Modified By modified_id MODIFIEDID String Unique identifier of the user who last modified the record Date Modified date_modified DATEMODIFIED String Date the record was last modified: - UTC Format in the REST API.
- User's Date Format in the GUI and the Java API.
See also: Standard Parameters