You are here:
Trigger Handlers by Object
Review the names, descriptions, and trigger conditions of the trigger handlers associated with each object.
Required Editions
| Available in: Lightning Experience |
| Available in: Enterprise and Unlimited Editions with Life Sciences Cloud, Life Sciences Cloud for Customer Engagement Add-on license, and the Life Sciences Customer Engagement managed package. |
Account
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the Account object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| NewAccountSampleLimitInitHandlerforHCO | Initializes the HCO accounts for the Provider Sample Limit Template. | afterInsert |
| NewAccountSampleLimitInitHandler | Initializes the HCP accounts for the Provider Sample Limit Template. | afterInsert |
AccountPlan
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the AccountPlan object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| AccountPlanDeleteChildrenHandler | Handles the deletion of Account Plan Children records. | beforeDelete |
| AccountPlanChangeStatusHandler | Updates the completion percentage of the Account Plan records based on updates in the related Account Plan Objective records. | beforeInsert, beforeUpdate |
AccountPlanObjective
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the AccountPlanObjective object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| SetAccPlanPercentCompleteHandler | Updates the completion percentage of the Account Plan Objective records based on updates in the related Action Plan records. | beforeInsert, afterInsert, beforeUpdate, afterUpdate, afterDelete |
AccountPlanParticipant
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the AccountPlanParticipant object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| AccountPlanToParticipantSharingHandler | Shares Account Plan and hierarchical records with participants. | afterInsert, afterUpdate, afterDelete |
ActionPlan
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ActionPlan object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| SetAccObjectPercentCompleteHandler | Updates the completion percentage of the Action Plan records to 100% when the parent Account Plan’s status is changed to Completed. | beforeInsert, afterInsert, beforeUpdate, afterUpdate, afterDelete |
| ActionPlanDeleteChildrenHandler | Deletes all the action plans related to a parent account plan when the account plan is deleted. | beforeDelete, afterDelete |
| SetSprintPercentCompleteHandler | Updates the completion percentage of the sprint based on the average completion percentages of the related action plans. | afterInsert, afterUpdate, afterDelete |
| SetGoalAsgmtPercentCompleteHandler | Updates the Completion Percentage of Goal Assignment records. | beforeInsert, afterInsert, beforeUpdate, afterUpdate, afterDelete |
ActivityPlan
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ActivityPlan object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ActivityPlanTerritoryValidationHandler | Validates the alignment of territories with activity plans and displays an error message if the conditions aren’t met. | beforeInsert, afterInsert, beforeUpdate, afterUpdate, beforeDelete, afterDelete, afterUndelete |
| ActivityPlanValidationHandler | Identifies and prevents duplicate activity plan records and displays an error message if the conditions aren’t met. | beforeInsert, afterInsert, beforeUpdate, afterUpdate, beforeDelete, afterDelete, afterUndelete |
| PAPATerritoryUpdateHandler | Adjusts the activity plan goals and creates the corresponding sharing record for the adjusted territory. | beforeInsert, beforeUpdate, afterInsert |
| PAPAApproveProcessHandler | Prevents users from creating more than the allowed number of provider activity plan adjustment requests. | beforeInsert, beforeUpdate |
ActivityPlanTerritory
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ActivityPlanTerritory object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ActivityPlanTerritoryModHandler | Validates and prevents an update of the Territory field in an Activity Plan Territory record or deletion of the Activity Plan Territory record if the associated activity plan is active or the status of the activity plan is not In Progress. If either condition is met, an error is displayed on the record page, preventing the update or deletion. | beforeInsert, afterInsert, beforeUpdate, afterUpdate, beforeDelete, afterDelete, afterUndelete |
| ActivityPlanTerritorySharingHandler | Manages the creation of sharing records upon territory alignment and supports the update and deletion of sharing records to reflect territory re-alignment or removal. | beforeInsert, afterInsert, beforeUpdate, afterUpdate, beforeDelete, afterDelete, afterUndelete |
ALL
Review the names, descriptions, and trigger conditions of the trigger handlers associated with all objects.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| StagePathPermissionsHandler | Enforces permissions defined in Life Sciences workflows. Validates whether users can create, edit, or delete records or work with related files at the current stage in the workflow path. Shows an error message if users don’t have permission to perform actions at that workflow stage. | afterInsert, beforeUpdate, beforeDelete |
AppAlertTerritory
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the AppAlertTerritory object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| NotificationTerritorySharingHandler | Creates sharing records once a territory has been assigned to an alert. | afterInsert, afterUpdate |
AssessmentTask
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the AssessmentTask object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| SetActionPlanPercentCompleteHandler | Updates the completion percentage of Action Plan records. | afterInsert, afterUpdate |
| AssessmentTaskDeleteAPItemHandler | Deletes all the assessment tasks related to an action plan when the action plan is deleted. | beforeDelete |
| AssessmentTaskSharingHandler | Shares Assessment Task records with assignees. | afterInsert, afterUpdate |
Case
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the Case object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| CaseMSLQueueHandler | Monitors and manages case status changes. Handles the medical inquiry queue of the medical science liaison users before a case record is updated. When an inquiry is submitted and the status changes to Submitted, the trigger handler assigns the case to the appropriate MSL queue. When the status changes to Assigned, the trigger handler reassigns ownership to the current user for handling the inquiry. | beforeUpdate |
| CaseChangeOwnershipHandler | Handles the sharing of the medical inquiry records with the sales representatives after a case record is updated. When a case transitions to Submitted or Responded status, the handler creates CaseShare records to give read access to the case creator or owner. This process maintains data transparency in inquiry management workflows by ensuring that the original creator or owner retains visibility into the case, even if ownership changes. | afterUpdate |
| CaseShareToCreatorHandler | Handles the change of ownership of the medical inquiries between the sales representative and the medical science liaison users after a case record is updated. When a case's OwnerId changes, the ownership change automatically cascades to all related inquiry objects, such as InquiryQuestions and SubjectAssignments. The handler queries for cases with updated ownership, retrieves the related records, and updates the Owner on these child objects, ensuring data consistency. | afterUpdate |
CommSubConsentCmplSnpsht
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the CommSubConsentCmplSnpsht object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ConsentGiverSnapshotHandler | Validates if the consent giver is valid. | beforeInsert |
| ConsentSnapshotSharingHandler | Shares the consent snapshot with territories that are aligned with the account. | afterInsert |
CommSubscription
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the CommSubscription object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ConsentNameCommSubHandler | Updates Communication Subscription Consent records when related Communication Subscription record names are changed. | beforeUpdate |
CommSubscriptionConsent
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the CommSubscriptionConsent object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ConsentGiverConsentHandler | Validates if the consent-giver account exists and it's the same for the snapshot record. | beforeInsert, beforeUpdate |
| ConsentSharingHandler | Shares consent with territories that are aligned with the account. | afterInsert |
| ConsentUniqueRecordHandler | Handles changes to CommSubscriptionConsent and maintains unique records. | beforeInsert |
ContactPointAddress
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ContactPointAddress object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| AccountAddressPrimaryHandler | Ensures that each account maintains only one primary contact point address. It gets triggered whenever a contact point address record is created or updated, guaranteeing that the one primary rule is always enforced. | beforeInsert, afterInsert, beforeUpdate, afterUpdate |
| RelatedContactPointAddressHandler | Validates contact point address hierarchy rules to ensure child addresses are associated with person accounts and parent addresses are associated with business accounts. | beforeInsert, beforeUpdate |
ContactPointEmail
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ContactPointEmail object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ContactPointEmailPopulateHandler | Updates healthcare provider records to maintain an accurate list of associated email addresses whenever contact point email records are created, modified, removed, or restored. This ensures the EmailIds field on the healthcare provider record reflects the current related email addresses and avoids unnecessary processing. | afterInsert, afterUpdate, afterDelete, afterUndelete |
ContactPointPhone
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ContactPointPhone object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ContactPointPhoneHandler | Updates healthcare provider records to maintain an accurate list of associated phone numbers whenever contact point phone records are created, modified, removed, or restored. This ensures the PhoneNumbers field on the healthcare provider record reflects the current related telephone numbers and prevents redundant processing. | afterInsert, afterUpdate, afterDelete, afterUndelete |
ContactPointSocial
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ContactPointSocial object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ContactPointSocialPopulateHandler | Updates healthcare provider records to maintain an accurate list of associated social media handles whenever contact point social records are created, modified, removed, or restored. This ensures the SocialIdentifiers field on the healthcare provider record reflects the current related social handles and prevents unnecessary execution. | afterInsert, afterUpdate, afterDelete, afterUndelete |
ContentDocument
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ContentDocument object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ConsentContentDocumentHandler | Handles changes to ContentDocument. | afterInsert, afterUpdate, afterDelete, afterUndelete |
| ContentDocumentLockHandler | Prevents delete operation to Documents linked to Submitted Visits or related entities. | beforeUpdate, beforeDelete |
ContentDocumentLink
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ContentDocumentLink object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ConsentContentDocumentLinkHandler | Handles changes to ContentDocumentLink. | beforeInsert, beforeDelete |
| ContentDocumentLinkLockHandler | Prevents insert/delete operation to Document Links for Submitted Visits or related entities. | beforeInsert, beforeDelete |
Estimated Expense
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the Estimated Expense object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| EstimatedExpenseHandler | Validates that all estimated expenses for the same expense type on a field event are unique. If no duplicates, auto-populates the parent category field based on the selected line item. | beforeInsert |
EventMgmtParticipantRole
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the Event Management Participant Role object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| EventMgmtParticipantRoleHandler | Verifies that each Event Management Participant Role record has a unique combination of values in the Role and Standard Role fields. | beforeInsert, beforeUpdate |
EventMgmtParticipantType
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the Event Management Participant Type object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| EventMgmtParticipantTypeHandler | Verifies that each Event Management Participant Type record has a unique combination of values in the Type and Standard Type fields. | beforeInsert, beforeUpdate |
EventMgmtPtcpTypeRoleMap
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the Event Management Participant Type Role Mapping object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| EventMgmtPtcpTypeRoleMapHandler | Verifies that each Event Management Participant Type Role Mapping record has a unique combination of Event Management Participant Type, Event Management Participant Role, and Managed Event Type. | beforeInsert, beforeUpdate |
Expense
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the Expense object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ExpenseLockHandler | Prevents insert/update/delete operation on Expense if it is locked. | beforeInsert, beforeUpdate, beforeDelete |
| ExpenseMonetaryCapsHandler | Tracks monetary caps for Expense records when expenses are modified or deleted. | beforeInsert, afterUpdate, beforeDelete |
| RecalculateExpPtcpOnExpChangeHandler | Recalculates the portions of an expense allocated to each participant after the amount is updated. This handler runs only if the expense is evenly distributed. | afterUpdate |
ExpenseParticipant
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ExpenseParticipant object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ExpenseParticipantNameHandler | Stores the Account/Contact Participant name as the Expense Participant Name. | beforeInsert |
| ExpenseParticipantLockHandler | Prevents insert/update/delete operation on ExpenseParticipant/Allocations if it is locked. | beforeInsert, beforeUpdate, beforeDelete |
| ExpenseParticipantMonetaryCapsHandler | Recalculates the monetary cap utilization of the associated Provider Activity Goal Measure record when an Expense Participant record is created, updated, or deleted. | afterInsert, afterUpdate, beforeDelete, beforeInsert, beforeUpdate |
Expert
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the Expert object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ExpertDuplicateValidationHandler | Prevents multiple Expert records from being associated with an account. | afterUpdate, afterUndelete, afterInsert |
| ExpertPopulateHealthcareProviderHandler | Sets IsSpeaker on the Healthcare Provider record to true when an Expert record is created. When an active expert for a healthcare provider is deleted, the trigger handler sets the IsSpeaker field to false. | afterInsert, afterDelete |
GoalAssignment
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the GoalAssignment object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| GoalAssignmentDeleteHandler | Deletes Goal Assignment records. | beforeDelete |
| SetTerrBusPlanPrcntCompleteHandler | Updates the Completion Percentage of Territory Business Plan records. | beforeInsert, afterInsert, beforeUpdate, afterUpdate, afterDelete |
HealthcareProvider
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the HealthcareProvider object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| HealthcareProviderHandler | Manages updates to healthcare provider records after creation, restoration, or modification. This trigger fetches and updates related email addresses, phone numbers, social identifiers, specialties, and NPI from their respective related records, while also preventing self-calling updates. | beforeInsert, beforeUpdate |
| HealthcareProviderAffiliationHandler | Creates a primary affiliation between a parent organization and an account on the Healthcare Provider object. If an existing affiliation is found, the handler will just set or unset the primary flag on that record. The role for the new affiliation defaults to the selected value from the active picklist on the provider affiliation; if no default role is selected, the handler throws a custom error. | afterInsert, afterUpdate |
| HealthcareProviderExpertHandler | Manages the expert related to the primary healthcare provider when the HealthcareProvider record's IsSpeaker field is set to true, and blocks updates to it if the IsSpeaker field is set to false while an active Expert record is associated with it. | afterInsert, afterUpdate |
HealthcareProviderNpi
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the HealthcareProviderNpi object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| HealthcareProviderNpiHandler | Updates healthcare provider records to maintain the correct National Provider Identifier (NPI) whenever healthcare provider NPI records are created, modified, removed, or restored. This ensures the NationalProviderIdentifier field on the healthcare provider record reflects the current associated NPI and avoids unnecessary execution. | beforeInsert, afterInsert, beforeUpdate, afterUpdate, afterDelete, afterUndelete |
HealthcareProviderSpecialty
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the HealthcareProviderSpecialty object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| HealthcareProviderSpecialityHandler | Updates healthcare provider records to maintain an accurate list of associated specialty types whenever healthcare provider specialty records are created, modified, removed, or restored. This ensures the Specialties field on the healthcare provider record reflects the current related specialties and avoids redundant processing. | beforeInsert, afterInsert, beforeUpdate, afterUpdate, afterDelete, afterUndelete |
InventoryCntProdtBatchItem
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the InventoryCntProdtBatchItem object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| InventoryCountPBILockHandler | Prevents modifications to Inventory Count Product Batch Item records when the associated inventory count assessment is locked. | beforeUpdate, beforeDelete |
| InventoryCntPBIValidationHandler | Prevents update/delete operation on InventoryCntProdtBatchItem's if unresolved Product disbursement records are present for the same product. | beforeInsert, beforeUpdate |
InventoryCountAssessment
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the InventoryCountAssessment object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| InventoryCountAssessmentLockHandler | Prevents modifications to Inventory Count Assessment records when they're in a locked state, and prevents the creation of duplicate "Initial" type inventory count assessments. | beforeInsert, afterInsert, beforeUpdate, beforeDelete |
InventoryOperation
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the InventoryOperation object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| InventoryOperationLockHandler | Prevents modifications to Inventory Operation records when they're in a locked state. | afterInsert, beforeUpdate, beforeDelete |
| InventoryOperationSyncTxnHandler | Prevents the creation of Return, Adjustment, Transfer In, and Transfer Out type operations when the inventory operation is in its final state, and checks for pending sync transactions before updating the Inventory Operation records. | beforeInsert, beforeUpdate |
LifeScienceEmail
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the LifeScienceEmail object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| EmailQueueImmediateHandler | Handles emails that are sent immediately instead of from a batch job. | afterInsert, afterUpdate |
| EmailQueueRecipientHandler | Populates additional information for email recipients. | beforeInsert, beforeUpdate |
| EmailQueueSenderHandler | Populates additional information for the email sender. | beforeInsert |
| EmailAttachmentHandler | Populates email attachments. | beforeInsert |
| SyncEmailResponseStatusToObjectHandler | Updates the invitation status on related records based on the email response status. | afterUpdate |
LifeSciMarketableProduct
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the LifeSciMarketableProduct object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| LifeSciMarketableProductMetadataHandler | Creates or updates the ProductMetadata field value in the Life Science Marketable Product object. | afterInsert, afterUpdate, beforeDelete, afterDelete |
LifeSciStageOperation
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the LifeSciStageOperation object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| LifeSciStageOpCtrlByHandler | Manages the IsControlledByField on a LifeSciStageObject based on the status of its associated stage operations. If an operation belonging to an active path exists, the handler sets this field to true. | afterInsert, beforeDelete, afterUndelete |
LifeSciStagePath
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the LifeSciStagePath object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| LifeSciStagePathCtrlByHandler | Manages the IsControlledByField on a LifeSciStageObject based on the status of its associated stage paths. If an active path exists, the handler sets this field to true. | afterInsert, afterUpdate, beforeDelete, afterUndelete |
Location
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the Location object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| LocationUserDupHandler | Prevents duplicate primary user assignments to inventory locations. | beforeInsert, beforeUpdate |
| LocationUserSharingHandler | Shares records with the primary user assigned to an inventory location. | beforeInsert, beforeUpdate, afterUpdate |
ManagedEvent
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ManagedEventParticipant object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| CreateMngEventPtcpHandler | Validates permissions and ownership, tracks event status, and auto-creates participants with appropriate roles when a managed event is inserted. | beforeInsert, afterInsert |
| MngEventBusinessHoursHandler | Checks whether the event record is scheduled within the event's business hours. | beforeInsert, beforeUpdate |
| MngEventComplianceStatementsHandler | Populates the compliance statement related to a managed event and sets the agreement status. | beforeInsert |
| MngEventDateTimeValidationHandler | Validates whether the managed event date and time overlaps with the event owner’s time off territory periods or holidays. | beforeInsert, beforeUpdate |
| MngEventMonetaryCapsHandler | Recalculates the monetary caps utilization of the associated Provider Activity Goal Measure record when a managed event's status or one of its controlling fields changes. | afterUpdate |
| MngEventTerritorySharingHandler | Creates sharing records for the territory related to a managed event. | afterInsert, afterDelete |
| SubjectAssignmentComplianceHandler | Validates start date time changes so that no two events have the same participants for the same subject assignment and event start and end dates. | afterUpdate |
ManagedEventParticipant
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ManagedEventParticipant object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| AttendeeQuotaCountOfAttendeesHandler | Manages and enforces colleague attribution quotas for attendees and non-profiled attendees. Corrects a colleague's quota count and updates the invitation quota, or throws an error if the quota is exceeded. | beforeUpdate, afterInsert, afterUpdate, afterDelete |
| ColleagueSurveySharingHandler | Shares survey invitations with managed event colleagues. | afterInsert, afterDelete, afterUpdate |
| MngEventParticipantDuplicateHandler | Checks if a managed event participant is added multiple times to a managed event. If the participant is already added, it returns an error message. | beforeInsert, beforeUpdate |
| MngEventParticipantExpertRefHandler | Populates the Managed Event Participant record's Participant ID field with the ID of the newly created Expert record when the mobile app syncs with the web, after a healthcare provider is nominated as an expert on offline mode in the mobile. | beforeInsert |
| MngEventParticipantInvitedByHandler | Populates the Invited By ID field with information about the user who creates the managed event participant record when the participant type is attendee or non-profiled attendee. | beforeInsert |
| MngEventParticipantSharingHandler | Creates sharing records for the user or the territory related to a managed event participant. | afterInsert, afterUpdate, afterDelete |
| MngEventPartMonetaryCapsHandler | Manages monetary cap validations for Managed Event Participant records by validating limits and recalculating caps when the participant records are updated. | afterInsert, afterUpdate |
| MngEventPartTOTValidationHandler | Prevents meeting conflicts by validating managed event participant acceptance against time-off territory records. | beforeUpdate |
| MngEventPtcpSetAttendeeQuotaHandler | Sets the invitation quota for a contributor colleague participant based on the managed event’s colleague attendee quota. | beforeInsert, beforeUpdate |
| MngEvtParticipantFieldPopulationHandler | Automatically populates the date and time at which an invitation is sent to a managed event participant. | beforeInsert, beforeUpdate |
| WriteInToAttendeeHandler | Converts reconciled write-in participants to attendees, updates the record type, and populates required attendee data to ensure accurate tracking. | beforeUpdate |
| WriteInToColleagueHandler2 | Converts a write-in participant to a colleague when a Managed Event Participant record is updated. | beforeUpdate |
| WriteInToExpertHandler | Converts a a write-in participant to an expert when a manual participant-to-expert reconciliation is completed or when a participant ID is set with the ID of an expert. | beforeUpdate |
ManagedEventResource
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ManagedEventResource object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| MngEventResourceLocationHandler | Adds the first confirmed location or address on a Managed Event record from the resources available for an event. | afterInsert, afterUpdate |
| MngEventResourceValidationHandler | Verifies that a managed event isn't associated with both venue and healthcare organization resource types. | beforeInsert, beforeUpdate |
ManagedEventResourcePreference
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ManagedEventResourcePreference object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| MngEventResourcePrefLocationHandler | Adds the first confirmed location or address on a Managed Event record from the resource preferences available for an event. | afterInsert, afterUpdate |
MedicalInsight
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the MedicalInsight object. To learn more about Medical Insights visibility and sharing, see Manage Medical Insight Sharing and Visibility.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| PublishMedicalInsightEventHandler | Publishes MedicalInsightEvent platform events whenever a medical insight record is created, updated, or deleted. This facilitates real-time event streaming and integration with external systems. | afterInsert, afterUpdate, afterDelete |
| RecalculateParentLinkedInsightsHandler | Updates the rollup summary fields on parent medical insight records when child insights are modified. This includes updating the ChildMedicalInsightCount, UpvoteCount, and LastUpvotedDate fields to make sure roll-up summaries are accurate. | afterInsert, afterUpdate, afterDelete |
| MedicalInsightSharingHandler | Shares medical insights records with users in the same territory and profile as the record owner, with read-only access, when the record is created. To use your own sharing settings or create custom sharing rules, turn off the MedicalInsightSharingHandler trigger. | afterInsert |
| InsightCascadeDeleteTriggerHandler | Automatically deletes child medical insight records when a top-level parent record is deleted. This cascade deletion prevents orphan records and keeps the insight hierarchy clean. | beforeDelete |
Presentation
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the Presentation object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| PresentationSharingHandler | Recalculates how Presentation Page records are shared after a presentation is deleted. | beforeDelete |
PresentationForum
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the PresentationForum object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| PresentationForumLockHandler | Prevents creating, editing, or deleting Presentation Forum records if the related presentation is locked. | beforeInsert, beforeUpdate, beforeDelete |
PresentationLinkedPage
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the PresentationLinkedPage object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| PresentationLinkedPageSharingHandler | Recalculates how Presentation Page records are shared after Presentation Linked Pages are added or removed. | beforeInsert, beforeDelete |
ProductBatchItem
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProductBatchItem object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ProductBatchItemOwnershipHandler | Shares records in product batch item to sales rep in ProductBatchItem.AssigneeId. | afterInsert |
ProductDisbursement
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProductDisbursement object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ProductDisbursementInventoryOpCreation | Creates a corresponding Inventory Operation record when a disbursement is made. | afterInsert, afterUpdate |
| ProductDisbursementSubmitLockHandler | Prevents modifications to Product Disbursement records when the related Visit record is in a locked state, that is, when the visit is signed or submitted. | beforeInsert, beforeUpdate, beforeDelete |
ProductGuidance
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProductGuidance object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ProductGuidanceDeactivationHandler | Removes sharing if the Product Guidance record was deactivated. | afterUpdate |
ProductionBatch
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProductionBatch object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ProductBatchItemUpdateByLotHandler | Shares Product Batch Item records with the assignee or the current user if the Assignee ID is not specified. | afterUpdate |
ProductRequest
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProductRequest object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ProductRequestLockHandler | Prevents modifications to Product Request records when they're in a locked state. | beforeUpdate, beforeDelete |
ProductRequestLineItem
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProductRequestLineItem object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ProductRequestLineItemLockHandler | Updates the ordered quantity in the Territory Product Quantity Allocation record when a product request line item is modified. | beforeInsert, beforeUpdate, beforeDelete |
| PrdReqLineItmUpdateAllocationHandler | Prevents modifications to Product Request Line Item records when the associated product request is locked. | afterInsert, afterUpdate |
ProductTerrDtlAvailability
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProductTerrDtlAvailability object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ProductTerrDtlAvailabilityHandler | On trigger of these events the Product Guidance records shared with Territory are deleted. | afterUpdate, afterDelete |
ProductTerritoryAvailability
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProductTerritoryAvailability object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ProductTerritoryAvailabilityExclHandler | Deletes ProductGuidance share records when an Exclusion rule is created in ProductTerritoryAvailability. | afterInsert, afterUpdate |
ProductTransfer
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProductTransfer object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ProductTransferLockHandler | Prevents modifications to Product Transfer records when the associated inventory operation is locked. | beforeUpdate, beforeDelete |
| ProductTransferValidationHandler | Prevents invalid Transfer In and Transfer Out operations by checking transfer directions, and source and destination locations. | beforeInsert, beforeUpdate |
| ReceivedProductAllocationHandler | Updates Territory Product Quantity Allocation records when a product transfer is received. | afterInsert, afterUpdate |
| TransferOutTriggerHandler | Creates a Transfer In record when a user receives a product transfer due to another user submitting a Transfer Out record. | afterInsert, afterUpdate |
ProviderAcctProductInfo
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProviderAcctProductInfo object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ProviderAcctProductInfoHandler | Sets the value of the Territory field on the provider account product information record to Null whenever a record is created or updated. | beforeInsert, beforeUpdate |
ProviderAcctTerritoryInfo
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProviderAcctTerritoryInfo object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| AccountTerritoryFieldsHandler | Handles a valid territory check for an account and manages Provider Account Territory Information Sharing. | beforeInsert, afterInsert, beforeUpdate |
| ATFPreferredAddressHandler | Updates the Preferred Address field on the Provider Account Territory Information object from the account's Primary address in the Contact Point Address Object. This preferred address then displays in the Account Territory Fields component on the Account Dashboard. | beforeInsert, beforeUpdate |
| NewAlignmentConsentSharingHandler | Creates sharing records for Consent and Snapshot records based on territory assignments. | afterInsert, afterUpdate |
| PATIRejectionHandler | Deletes provider account territory info sharing and object territory association records when the status of the associated provider account territory info records changes to Rejected. | beforeUpdate |
ProviderActivityGoal
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProviderActivityGoal object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ProviderActivityGoalHandler | Validates and prevents the creation of duplicate Provider Activity Goals by ensuring the combination of Activity Plan and Account is unique. The trigger performs this validation when you create or update a Provider Activity Goal record. If a duplicate combination is found, an error is displayed, preventing the creation or update of the record. | beforeInsert, afterInsert, beforeUpdate, afterUpdate, beforeDelete, afterDelete, afterUndelete |
ProviderAffiliation
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProviderAffiliation object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| AffiliationUniquenessGenericHandler | Ensures a unique combination of fields configured in the field set of the Provider Affiliation object, preventing duplicates and maintaining accurate records. | beforeInsert, beforeUpdate |
| AffiliationUniquenessHandler | Ensures affiliation uniqueness by enforcing a unique combination of account, related account, and role values. This prevents duplicate affiliations and maintains data integrity. | beforeInsert, beforeUpdate |
| HardAffiliationHandler | Assigns the affiliation type of provider affiliation records as either hard or soft. Primary Affiliations are designated as Hard Affiliations. The HardAffiliationHandler trigger handler also ensures that duplicate Hard type affiliations between the same two accounts aren't created. Sets the affiliation type of workplace affiliations between an HCP and an HCO to Hard. It also sets the affiliation between an account and its related account to Hard when the related account is the preferred workspace of the account's provider account territory info (PATI) record. Lastly, it sets the affiliation type of reciprocal affiliations to None. |
beforeInsert, afterInsert, beforeUpdate |
| AffiliationReciprocalHandler | Manages the creation, updating, and deletion of reciprocal affiliations. It ensures that the inverse affiliation is maintained whenever a ProviderAffiliation is created, updated, or deleted. Reverse Affiliations are only created if the Influence Type field on the Provider Affiliation object is selected as either Unidirectional, Bidirectional, or Neutral. | afterInsert, afterUpdate, beforeDelete |
| AffiliationPrimaryChangeHandler | Ensures a single primary affiliation between an account and a related healthcare organization account. When a new primary affiliation is created, the trigger deselects the primary flag on any prior affiliations with the same Account and Related Account. Additionally, it updates the associated Healthcare Provider's Primary Organization Account to the affiliation's Related Account, or creates a new Healthcare Provider record if one doesn't exist, populating it with the affiliation's Account and Related Account. | afterInsert, afterUpdate |
| AffiliationAccountUpdateHandler | Prevents the modification of the account and the related account after an affiliation is created. | beforeUpdate |
ProviderVisit
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProviderVisit object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| PVUpdateChildFieldsHandler | Maintains data consistency for group visits by syncing child provider visit records with the parent provider visit records. Automatically updates key fields (Planned Visit Start Time, Planned Visit End Time, and Channel) when the parent visit is modified. | afterUpdate |
| PVLockHandler | Prevents editing provider visit data based on the visit's status and signature state to maintain data integrity. | beforeUpdate, beforeDelete |
| RemoteSessionInvitationPVHandler | Manages remote session invitations by creating video calls, email notifications, and session keys for provider visit records. | afterInsert, afterUpdate, beforeDelete |
ProviderVisitChangedEvent
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProviderVisitChangedEvent object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| VisitChangedEventShareHandler | Creates visit shares with the users who have access to the associated account. Provider visit records are shared automatically through their relationship to the parent visit. | afterInsert |
| PVChangedEventUpdateAccountTerrInfo | Processes provider visit changed events and updates provider visit related fields on Provider Account Territory Information records. | afterInsert |
ProviderVisitDtlProductMsg
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProviderVisitDtlProductMsg object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ProviderVisitDtlProductMsgLockHandler | Locks the ProviderVisitDtlProductMsg record when Visit is Submitted or Signed. | beforeInsert, beforeUpdate, beforeDelete |
ProviderVisitMarketingItem
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProviderVisitMarketingItem object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ProviderVisitMarketingItemLockHandler | Locks the ProviderVisitMarketingItem record when Visit is Submitted or Signed. | beforeInsert, beforeUpdate, beforeDelete |
ProviderVisitProdDetailing
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProviderVisitProdDetailing object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ProviderVisitProdDtlNameHandler | Generates and populates the Product Hierarchy Name field for the Provider Visit Product Detailing record. | beforeInsert, beforeDelete |
| ProviderVisitProdDtlLockHandler | Locks the ProviderVisitProdDetailing record when Visit is Submitted or Signed. | beforeInsert, beforeUpdate, beforeDelete |
ProviderVisitProdDiscussion
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProviderVisitProdDiscussion object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ProviderVisitProdDiscussionLockHandler | Locks the ProviderVisitProdDiscussion record when Visit is Submitted or Signed. | beforeInsert, beforeUpdate, beforeDelete |
ProviderVisitRqstSample
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the ProviderVisitRqstSample object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| ProviderVisitRqstSampleLockHandler | Locks the ProviderVisitRqstSample record when Visit is Submitted or Signed. | beforeInsert, beforeUpdate, beforeDelete |
| CalculateShippedQuantityHandler | Manages Provider Visit Request Sample shipped quantity on Visit. | afterUpdate |
PrvdVstSmplLmtTransaction
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the PrvdVstSmplLmtTransaction object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| SampleLimitTransactionHandler | Processes Sample Limit Records using Rule which comes from Web and Mobile as Provider Visit Sample Limit Transaction records. | afterInsert |
Subject
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the Subject object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| TopicValidationHandler | Prevents the creation of circular parent-child relationships when updating Subject records for medical insights. This makes sure a valid single-parent hierarchy structure. | beforeUpdate |
SubjectAssignment
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the SubjectAssignment object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| RecalculateInsightTopicNameHandler | Updates the TopicNames field on the related medical insight record whenever a Subject Assignment is created or deleted. This makes sure the processed insight accurately reflects the set of topics currently assigned to the record. | afterInsert, afterDelete |
SurveySubject
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the SurveySubject object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| SurveyInvitationSharingHandler | Applies survey sharing logic on the Survey Subject object. When survey subject records are created or updated, this trigger handler automatically creates survey invitation share records based on one of three strategies: Account-Based Sharing: When a survey subject is linked to an account, the trigger handler automatically creates survey invitation share records for accounts listed in the related account's account share records. This sharing logic doesn't apply to records where the rowCause field is set to Owner. Life Sciences Marketable Product-Based Sharing: When you link a survey subject record to a Life Sciences marketable product, the corresponding survey invitation share records are created for either accounts or territories based on the product territory availability records. The availability of the product is determined by the product territory availability object, which includes an alignment type field with options such as territory subordinates, territory inclusion, or territory exclusion. Territory-Based Sharing: When a survey subject record is linked to a territory, survey invitation share records are created for that territory and its subordinates. |
beforeInsert, afterInsert, afterUpdate |
Territory2
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the Territory2 object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| Territory2Handler | Prevents the deletion of a Territory2 record when related records like ProviderAcctTerritoryInfo, Inquiry, ContactPointBestContactTime, TerritoryAcctRcmdAction, TerritoryAccountScore, TerritoryAcctProdMsgScore, TerritoryUserDowntime, or TerritoryBusinessPlan records reference it. | beforeDelete |
TerritoryAcctRcmdAction
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the TerritoryAcctRcmdAction object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| TerrAcctRcmdActionSharingHandler | Shares the territory account recommended action records with the specified territory. | afterInsert, afterUpdate |
| TerrAccRcmActStatusUpdateHandler | Updates the status of the territory account recommended action when a visit is created. | afterInsert, afterUpdate |
TerritoryBusinessPlan
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the TerritoryBusinessPlan object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| TerritoryBusinessPlanDeleteHandler | Deletes Territory Business Plan records. | beforeDelete |
| TerritoryBusPlanChangeStatusHandler | Updates the statuses of Territory Business Plan records. | beforeInsert, beforeUpdate |
TerritoryContentTmplAsgnt
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the TerritoryContentTmplAsgnt object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| EmailTemplateTerritorySharingHandler | Updates territory sharing based on Territory Content Template Assignment records. | afterInsert, afterUpdate, afterDelete |
TerritoryUserDowntime
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the TerritoryUserDowntime object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| TUDUpdateHandler | Updates the start time and end time of time off territory records based on the time slot interval configuration. | beforeInsert, beforeUpdate |
| UDBHValidationHandler | Prevents the creation of time off territory records with start and end times outside of the org's business hours. | beforeInsert, beforeUpdate |
| TUDSharingHandler | Shares a user's time off territory records with other users in the same territory, giving them read-only access. | afterInsert |
| TUDVisitValidationHandler | Prevents the creation of time off territory during a visit. | beforeInsert, beforeUpdate |
| TUDHolidayValidationHandler | Prevents the creation of time off territory records on holidays. | beforeInsert, beforeUpdate |
| TUDOverlapHandler | Prevents the creation of overlapping time off territory records. | beforeInsert, beforeUpdate |
| TUDEventValidationHandler | Prevents the creation of time off territory during a general event. | beforeInsert, beforeUpdate |
UserReaction
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the UserReaction object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| UserReactionMedicalInsightHandler | Updates the UpvoteCount field on Medical Insight records when User Reaction (upvote) records are created or deleted. Duplicate user reactions from the same user on the same medical insight aren't allowed. You can't insert user reactions with type as downvote. | afterInsert, beforeInsert, afterDelete |
To learn more about Medical Insights visibility and sharing, see Manage Medical Insight Sharing and Visibility.
Visit
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the Visit object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| VisitLockHandler | Prevents editing visit data to maintain data integrity. Visits are locked when their status is Completed. Signing any visit in a group visit hierarchy locks critical fields on all visits in that hierarchy. Child visits inherit the parent visit's lock state. | beforeInsert, beforeUpdate |
| VisitTimeOffValidationHandler | Prevents scheduling a visit that conflicts with a time-off territory to support scheduling efficiency and accurate visit reporting. | beforeInsert, beforeUpdate |
| VisitLifeScienceAccountListLinkHandler | Clears the Life Science Account List field on the provider visit record if the Planned Start Time is changed on a visit created by applying a routine. | beforeUpdate |
| VisitHolidayValidationHandler | Prevents scheduling a visit on holidays or outside of business hours to maintain compliance with company policies. | beforeInsert, beforeUpdate |
| VisitPopulateEndTimeHandler | Calculates and sets the visit's Planned End Time by adding the default duration defined in the "Set blank date/time in Planned Start Time" Visit Administration setting in the Admin Console. | beforeInsert, beforeUpdate |
| FutureVisitLimitValidationHandler | Prevents scheduling visits beyond the limit specified in the "Future Visit Limit in Days" setting in Visit Administration in the Admin Console. | beforeInsert, beforeUpdate |
| VisitUpdateChildFieldsHandler | Maintains data consistency in group visits by synchronizing child visit records with their parent visits. Automatically updates key fields (Planned Visit Start Time, Planned Visit End Time, and Channel) when the parent visit is modified. Manual edits to these fields on a child visit are overwritten the next time the parent visit is saved while this handler is active. | afterUpdate |
| VisitDelayReasonHandler | Clears the previously entered reason for delay if a user changes the visit date and time and the date no longer exceeds the submission delay threshold. | beforeUpdate |
| VisitCascadeDeleteHandler | Deletes attendee visits automatically when the parent group visit is deleted, maintaining data integrity. No warning or confirmation dialog appears before the deletion. Deletion is blocked if the parent visit has a status of Completed, or if any child visit in the group is signed. | beforeDelete |
| VisitSurveyInviteCascadeDeleteHandler | Deletes survey invitations linked to a visit when a visit is deleted, and prevents deleting them if the visit is submitted to maintain data integrity. | beforeDelete |
| RemoteSessionInvitationVisitHandler | Manages remote session invitations by creating video calls, email notifications, and session keys for visit records. | afterUpdate, beforeDelete |
| VisitMyBestTimeValidationHandler | Prevents scheduling visits outside of best times defined for the account address and user's territory, improving scheduling efficiency and aligning with account availability. | beforeInsert, beforeUpdate |
| VisitChangePrimaryAccountHandler | Performs validations, updates related records, and prepopulates fields in the visit to maintain data consistency when the primary account is changed. | beforeInsert, beforeUpdate, afterUpdate |
Visitor
Review the names, descriptions, and trigger conditions of the trigger handlers associated with the Visitor object.
| Trigger Name | Description | Trigger condition |
|---|---|---|
| VisitHolidayValidationHandler | Prevents the creation or the update of a visit during a holiday or outside configured call business hours. Requires Call Business Hours and First Day of Week to be set in Planner Administration. | beforeInsert, beforeUpdate |
| VisitorLockHandler | Prevents insert/update/delete operation on Visitor if it is locked. | beforeInsert, beforeUpdate, beforeDelete |
| VisitorShareHandler | Shares the Visit record with the Visitors (employees). | afterInsert, afterUpdate, afterDelete |
| VisitTimeOffValidationHandler | Validates that a visit does not conflict with the user's Time Off Territory (TOT) records. With TOT Call Rules enabled, only TOT types marked "Not Allowed" for the Call dimension block. | beforeInsert, beforeUpdate |
