Newer Version Available
Custom and External Object Interactions
| Available in: both Salesforce Classic and Lightning Experience |
| Available in: Enterprise, Performance, Unlimited, and Developer Editions |
To determine the type and amount of CRUD that occurred on your packaged component, focus on:
- operation_type
- operation_count
Many user actions result in CRUD, such as platform events, Apex REST API requests, or scheduled job executions. Each action is related to a log_record_type, and each log record has some standard fields that are always populated with data. For example, an Apex REST API request with a log_record_type of ApexRestApi always has url, api_version, http_method, and http_status_code data. Many actions produce log records with supplemental fields that are often populated. For example, an Apex REST API request sometimes has request_status, referrer_uri, and api_type data.
CRUD from Apex REST API Requests
To analyze an Apex REST API request that resulted in a CRUD operation on your packaged component, look for a log_record_type of ApexRestApi. Then use these fields to dig into the details of the Apex REST API interaction.
| Standard Data | Supplemental Data |
|---|---|
|
|
CRUD from Apex SOAP API Requests
To analyze an Apex SOAP API request that resulted in a CRUD operation on your packaged component, look for a log_record_type of ApexSoap. Then use these fields to explore the details of the Apex SOAP API interaction.
| Standard Data | Supplemental Data |
|---|---|
|
|
CRUD from REST API Requests
To analyze a REST API request that resulted in a CRUD operation on your packaged component, look for a log_record_type of RestApi. Then use these fields to understand the details of the REST API interaction.
| Standard Data | Supplemental Data |
|---|---|
|
|
CRUD from SOAP API Requests
To analyze a SOAP API request that resulted in a CRUD operation on your packaged component, look for a log_record_type of API. Then use these fields to uncover the details of the SOAP API interaction.
| Standard Data | Supplemental Data |
|---|---|
|
|
CRUD from Bulk API Requests
To analyze a Bulk API request that resulted in a CRUD operation on your packaged component, look for a log_record_type of BulkApiV1 or BulkApiV2. Then use these fields to discover the details of the Bulk API interaction.
| Standard Data | Supplemental Data |
|---|---|
|
|
CRUD from Scheduled Job Executions
To analyze a scheduled job execution that resulted in a CRUD operation on your packaged component, look for a log_record_type of CronJob. There are no additional package usage log fields to describe scheduled job executions.
| Standard Data | Supplemental Data |
|---|---|
| none | none |
CRUD from Platform Events
To analyze a platform event that resulted in a CRUD operation on your packaged component, look for a log_record_type of PlatformEventConsumer. Then use these fields to discover the details of the platform event.
| Standard Data | Supplemental Data |
|---|---|
| none |
|
CRUD from Queueable Apex Executions
To analyze a queueable Apex execution that resulted in a CRUD operation on your packaged component, look for a log_record_type of QueuedExec. There are no additional package usage log fields to describe Apex executions.
| Standard Data | Supplemental Data |
|---|---|
| none | none |
CRUD from Standard User Interface Requests
To analyze a user interaction that resulted in a CRUD operation on your packaged component, look for a log_record_type of URI. Then use these fields to discover the details of the user interaction.
| Standard Data | Supplemental Data |
|---|---|
| url |
|
CRUD from Visualforce Remoting Requests
To analyze a Visualforce Remoting request that resulted in a CRUD operation on your packaged component, look for a log_record_type of VFRemoting. Then use these fields to explore the details of the Visualforce Remoting request.
| Standard Data | Supplemental Data |
|---|---|
|
|
CRUD from Visualforce Requests
To analyze a Visualforce request that resulted in a CRUD operation on your packaged component, look for a log_record_type of VisualforceRequest. Then use these fields to explore the details of the Visualforce request.
| Standard Data | Supplemental Data |
|---|---|
| url |
|
CRUD from All Other User Actions
To analyze any other user action that results in a CRUD operation on your packaged component, look for a log_record_type of UnassociatedCRUD. There are no additional package usage log fields to describe all other interactions.
| Standard Data | Supplemental Data |
|---|---|
| none | none |
Example
Let’s look at an example package usage log record and analyze the custom or external object interaction.
The Insurance_Agent packaged component of type CustomObject had CRUD performed as a result of a user action from the subscriber org My Customer Inc. Specifically, two records were inserted during a Visualforce Remoting request that the user performed at 2022-12-15 at 05:47 am UTC.
The key data in this analysis are:
| Question | Field | Value |
|---|---|---|
| What |
|
|
| Who |
|
|
| How | log_record_type | VFRemoting |
| How Much |
|
|
| When | timestamp_derived | 2022-12-15T05:47:35.945Z |
In this example, the Visualforce Remoting code isn’t owned by the package, so url, class_name, and method_name are tokenized.
If the Visualforce Remoting code is part of the package, you see actual values instead of tokens.