Which standard objects don't support triggers?
Following Standard objects don't support trigger, I have gathered so far as of Spring' 17 release.
- AcceptedEventRelation
- AccountContactRelation
- AccountCleanInfo
- AccountContactRole
- AccountFeed
- AccountHistory
- AccountOwnerSharingRule
- AccountPartner
- AccountShare
- AccountTag
- AccountTeamMember
- AccountTerritoryAssignmentRule
- AccountTerritoryAssignmentRuleItem
- AccountTerritorySharingRule
- ActionLinkGroupTemplate
- ActionLinkTemplate
- ActivityHistory
- AdditionalNumber
- AllowedEmailDomain
- Announcement
- ApexClass
- ApexComponent
- ApexLog
- ApexPage
- ApexTestQueueItem
- ApexTestResult
- ApexTestResultLimits
- ApexTestRunResult
- ApexTestSuite
- ApexTrigger
- AppMenuItem
- Approval
- Article Type__DataCategorySelection
- Article Type__Feed
- AssetFeed
- AssetOwnerSharingRule
- AssetShare
- AssetTag
- AssignedResource
- AssignmentRule
- AsyncApexJob
- AttachedContentDocument
- AttachedContentNote
- AuraDefinition
- AuraDefinitionBundle
- AuthConfig
- AuthConfigProviders
- AuthProvider
- AuthSession
- BackgroundOperation
- BackgroundOperationResult
- Bookmark
- BrandTemplate
- BusinessHours
- BusinessProcess
- CallCenter
- CampaignFeed
- CampaignInfluence
- CampaignInfluenceModel
- CampaignMemberStatus
- CampaignOwnerSharingRule
- CampaignShare
- CampaignTag
- CaseArticle
- CaseContactRole
- CaseFeed
- CaseHistory
- CaseMilestone
- CaseOwnerSharingRule
- CaseShare
- CaseSolution
- CaseStatus
- CaseTag
- CaseTeamMember
- CaseTeamRole
- CaseTeamTemplate
- CaseTeamTemplateMember
- CaseTeamTemplateRecord
- CategoryData
- CategoryNode
- CategoryNodeLocalization
- ChatterActivity
- ChatterAnswersReputationLevel
- ChatterConversation
- ChatterConversationMember
- ChatterMessage
- ClientBrowser
- CollaborationGroupFeed
- CollaborationGroupMemberRequest
- CollaborationGroupRecord
- CollaborationInvitation
- CombinedAttachment
- Community (Zone)
- ConnectedApplication
- ContactCleanInfo
- ContactFeed
- ContactHistory
- ContactOwnerSharingRule
- ContactShare
- ContactTag
- ContentAsset
- ContentDistributionView
- ContentDocumentFeed
- ContentDocumentHistory
- ContentFolder
- ContentFolderItem
- ContentFolderLink
- ContentFolderMember
- ContentHubItem
- ContentHubRepository
- ContentNote
- ContentVersionHistory
- ContentWorkspace
- ContentWorkspaceDoc
- ContractContactRole
- ContractFeed
- ContractHistory
- ContractHistory
- ContractLineItemHistory
- ContractStatus
- ContractTag
- CorsWhitelistEntry
- CronJobDetail
- CronTrigger
- CurrencyType
- CustomBrand
- CustomBrandAsset
- Custom Object__Feed
- CustomPermission
- CustomPermissionDependency
- DandBCompany
- Dashboard
- DashboardComponent
- DashboardComponentFeed
- DashboardFeed
- DashboardTag
- DataAssessmentFieldMetric
- DataAssessmentMetric
- DataAssessmentValueMetric
- DatacloudCompany
- DatacloudContact
- DatacloudDandBCompany
- DatacloudOwnedEntity
- DatacloudPurchaseUsage
- DatacloudSocialHandle
- DatedConversionRate
- DcSocialProfile
- DcSocialProfileHandle
- DeclinedEventRelation
- Division
- DivisionLocalization
- Document
- DocumentAttachmentMap
- DocumentTag
- Domain
- DomainSite
- DuplicateRule
- EmailDomainKey
- EmailMessageRelation
- EmailServicesAddress
- EmailServicesFunction
- EmailStatus
- EmailTemplate
- EmbeddedServiceDetail
- EntitlementFeed
- EntitlementHistory
- EntitlementTemplate
- EntityHistory
- EntityMilestone
- EntitySubscription
- EnvironmentHubMember
- EventFeed
- EventLogFile
- Lightning Error Event Type
- Lightning Interaction Event Type
- Lightning Page View Event Type
- Lightning Performance Event Type
- Login Event Type — LOGIN_STATUS Values
- EventRelation
- EventTag
- EventWhoRelation
- ExternalDataSource
- ExternalDataUserAuth
- FeedAttachment
- FeedLike
- FeedPollChoice
- FeedPollVote
- FeedPost
- FeedRevision
- FeedTrackedChange
- FieldHistoryArchive
- FieldPermissions
- FiscalYearSettings
- FlexQueueItem
- FlowInterview
- FlowInterviewOwnerSharingRule
- FlowInterviewShare
- Folder
- FolderedContentDocument
- ForecastingAdjustment
- ForecastingFact
- ForecastingItem
- ForecastingOwnerAdjustment
- ForecastingQuota
- ForecastingType
- ForecastingUserPreference
- ForecastShare
- Goal
- GoalFeed
- GoalHistory
- GoalLink
- GoalShare
- GoogleDoc
- Group
- GroupMember
- HashtagDefinition
- Holiday
- IdeaReputation
- IdeaReputationLevel
- IdeaTheme
- KnowledgeableUser
- KnowledgeArticle
- KnowledgeArticleVersion
- KnowledgeArticleVersionHistory
- KnowledgeArticleViewStat
- KnowledgeArticleVoteStat
- LeadCleanInfo
- LeadFeed
- LeadHistory
- LeadOwnerSharingRule
- LeadShare
- LeadStatus
- LeadTag
- LimitAllocationPerApp
- LineitemOverride
- LinkedArticleFeed
- LinkedArticleHistory
- ListView
- ListViewChart
- ListViewChartInstance
- LiveAgentSessionHistory
- LiveAgentSessionOwnerSharingRule
- LiveAgentSessionShare
- LiveChatBlockingRule
- LiveChatButton
- LiveChatButtonDeployment
- LiveChatButtonSkill
- LiveChatDeployment
- LiveChatSensitiveDataRule
- LiveChatTranscriptHistory
- LiveChatTranscriptOwnerSharingRule
- LiveChatTranscriptShare
- LiveChatTranscriptSkill
- LiveChatUserConfig
- LiveChatUserConfigProfile
- LiveChatUserConfigUser
- LoginEvent
- LoginGeo
- LoginHistory
- LoginIp
- LookedUpFromActivity
- MacroInstruction
- MailmergeTemplate
- MatchingRule
- MatchingRuleItem
- MetadataPackage
- MetadataPackageVersion
- Metric
- MetricDataLink
- MetricDataLinkHistory
- MetricFeed
- MetricHistory
- MetricsDataFile
- MetricShare
- MilestoneType
- Name
- NamedCredential
- NavigationLinkSet
- NavigationMenuItem
- NavigationMenuItemLocalization
- Network
- NetworkActivityAudit
- NetworkMember
- NetworkMemberGroup
- NetworkModeration
- NetworkPageOverride
- NetworkSelfRegistration
- NewsFeed
- OauthToken
- NoteAndAttachment
- NoteTag
- ObjectPermissions
- ObjectTerritory2AssignmentRule
- ObjectTerritory2AssignmentRuleItem
- ObjectTerritory2Association
- OpenActivity
- OperatingHours
- OperatingHoursFeed
- OperatingHoursHistory
- OpportunityCompetitor
- OpportunityContactRole
- OpportunityFeed
- OpportunityFieldHistory
- OpportunityHistory
- OpportunityLineItemSchedule
- OpportunityOverride
- OpportunityOwnerSharingRule
- OpportunityPartner
- OpportunityShare
- OpportunitySplitType
- OpportunityStage
- OpportunityTag
- OrderFeed
- OrderHistory
- OrderItemFeed
- OrderItemHistory
- OrderOwnerSharingRule
- Organization
- OrgWideEmailAddress
- OwnedContentDocument
- PackageLicense
- PackagePushError
- PackagePushJob
- PackagePushRequest
- PackageSubscriber
- PartnerNetworkConnection
- PartnerNetworkRecordConnection
- PartnerNetworkSyncLog
- PartnerRole
- Period
- PermissionSet
- PermissionSetAssignment
- PermissionSetLicense
- PermissionSetLicenseAssign
- PlatformAction
- PresenceUserConfig
- PresenceUserConfigProfile
- PresenceUserConfigUser
- Pricebook2History
- PricebookEntry
- ProcessDefinition
- ProcessInstance
- ProcessInstanceHistory
- ProcessInstanceStep
- ProcessInstanceNode
- ProcessInstanceWorkitem
- ProcessNode
- Product2Feed
- ProductEntitlementTemplate
- Profile
- ProfileSkillEndorsementFeed
- ProfileSkillEndorsementHistory
- ProfileSkillFeed
- ProfileSkillHistory
- ProfileSkillShare
- ProfileSkillUserFeed
- ProfileSkillUserHistory
- PushTopic
- QuantityForecast
- QuantityForecastHistory
- QueueRoutingConfig
- QuestionDataCategorySelection
- QuestionReportAbuse
- QuestionSubscription
- QueueSobject
- QuickTextHistory
- QuickTextOwnerSharingRule
- QuickTextShare
- QuoteDocument
- QuoteFeed
- RecentlyViewed
- RecordType
- RecordTypeLocalization
- ReplyReportAbuse
- Report
- ReportFeed
- ReportTag
- ReputationLevel
- ReputationLevelLocalization
- ReputationPointsRule
- ResourceAbsence
- ResourceAbsenceFeed
- ResourceAbsenceHistory
- RevenueForecast
- RevenueForecastHistory
- RuleTerritory2Association
- SamlSsoConfig
- Scontrol
- ScontrolLocalization
- SearchPromotionRule
- SecureAgent
- SecureAgentsCluster
- SecurityCustomBaseline (Beta)
- SelfServiceUser
- ServiceAppointment
- ServiceAppointmentFeed
- ServiceAppointmentHistory
- ServiceAppointmentOwnerSharingRule
- ServiceAppointmentShare
- ServiceChannel
- ServiceChannelStatus
- ServiceContractFeed
- ServiceContractHistory
- ServiceContractOwnerSharingRule
- ServiceContractShare
- ServicePresenceStatus
- ServiceResource
- ServiceResourceCapacity
- ServiceResourceCapacityFeed
- ServiceResourceCapacityHistory
- ServiceResourceFeed
- ServiceResourceHistory
- ServiceResourceOwnerSharingRule
- ServiceResourceShare
- ServiceResourceSkill
- ServiceResourceSkillFeed
- ServiceResourceSkillHistory
- ServiceTerritory
- ServiceTerritoryFeed
- ServiceTerritoryHistory
- ServiceTerritoryMember
- ServiceTerritoryMemberFeed
- ServiceTerritoryMemberHistory
- SessionPermSetActivation
- SetupAuditTrail
- SetupEntityAccess
- SignupRequest
- Site
- SiteDomain
- SiteHistory
- Skill
- SkillProfile
- SkillRequirement
- SkillRequirementFeed
- SkillRequirementHistory
- SkillUser
- SlaProcess
- SolutionFeed
- SolutionHistory
- SolutionStatus
- SolutionTag
- SOSDeployment
- SOSSession
- SOSSessionActivity
- SOSSessionHistory
- SOSSessionOwnerSharingRule
- SOSSessionShare
- Stamp
- StampAssignment
- StaticResource
- TagDefinition
- TaskFeed
- TaskPriority
- TaskRelation
- TaskStatus
- TaskTag
- TaskWhoRelation
- TenantSecret
- Territory2Model
- Territory2ModelHistory
- Territory2Type
- TestSuiteMembership
- ThirdPartyAccountLink
- TimeSlot
- TimeSlotHistory
- TopicFeed
- TopicLocalization—Beta
- TwoFactorInfo
- TwoFactorMethodsInfo
- TwoFactorTempCode
- UndecidedEventRelation
- UserAccountTeamMember
- UserAppInfo
- UserAppMenuCustomization
- UserAppMenuCustomizationShare
- UserAppMenuItem
- UserConfigTransferButton
- UserConfigTransferSkill
- UserCustomBadge
- UserCustomBadgeLocalization
- UserFeed
- UserLicense
- UserLogin
- UserMembershipSharingRule
- UserPackageLicense
- UserPreference
- UserProfile
- UserProfileFeed
- UserProvisioningConfig
- UserProvisioningRequestOwnerSharingRule
- UserProvisioningRequestShare
- UserRecordAccess
- UserRole
- UserShare
- UserTeamMember
- UserTerritory
- VerificationHistory
- VoiceCall
- VoiceCallList
- VoiceCallListItem
- VoiceCallListShare
- VoiceCallShare
- VoiceMailContent
- VoiceMailContentShare
- VoiceUserLine
- VoiceUserLineShare
- VoiceVendorInfo
- VoiceVendorLine
- VoiceVendorLineShare
- Vote
- WebLink
- WebLinkLocalization
- WorkAccess
- WorkAccessShare
- WorkBadgeDefinitionHistory
- WorkBadgeDefinitionShare
- WorkCoaching
- WorkCoachingFeed
- WorkCoachingHistory
- WorkCoachingShare
- WorkFeedback
- WorkFeedbackHistory
- WorkFeedbackQuestion
- WorkFeedbackQuestionHistory
- WorkFeedbackQuestionSet
- WorkFeedbackQuestionSetHistory
- WorkFeedbackQuestionSetShare
- WorkFeedbackQuestionShare
- WorkFeedbackRequest
- WorkFeedbackRequestFeed
- WorkFeedbackRequestHistory
- WorkFeedbackRequestShare
- WorkFeedbackShare
- WorkGoal
- WorkGoalCollaborator
- WorkGoalCollaboratorHistory
- WorkGoalFeed
- WorkGoalHistory
- WorkGoalLink
- WorkGoalShare
- WorkOrder
- WorkOrderFeed
- WorkOrderHistory
- WorkOrderLineItem
- WorkOrderLineItemFeed
- WorkOrderLineItemHistory
- WorkOrderShare
- WorkPerformanceCycle
- WorkPerformanceCycleFeed
- WorkPerformanceCycleHistory
- WorkPerformanceCycleShare
- WorkReward
- WorkRewardFund
- WorkRewardFundHistory
- WorkRewardFundShare
- WorkRewardFundType
- WorkRewardFundTypeHistory
- WorkRewardFundTypeShare
- WorkRewardHistory
- WorkRewardShare
- WorkThanksShare
- WorkType
- WorkTypeFeed
- WorkTypeHistory
UPDATED list, with a script to retrieve all non-triggerable objects on demand.
Run this and check the debug log to find out which standard objects are not triggerable:
Map<String, Schema.SObjectType> gd = Schema.getGlobalDescribe();
List<Schema.DescribeSObjectResult> standardObjDescs = new List<Schema.DescribeSObjectResult>();
for (Schema.SObjectType sobj : gd.values()) {
Schema.DescribeSObjectResult sobjDesc = sobj.getDescribe();
if (!sobjDesc.isCustom()) {
standardObjDescs.add(sobjDesc);
}
}
List<String> triggerableList = new List<String>();
List<String> NOTtriggerableList = new List<String>();
for (Schema.DescribeSObjectResult schemaDesc : standardObjDescs) {
String sobjStruct = JSON.serialize(schemaDesc);
DescribeSobjectResultJSON sobjProps = (DescribeSobjectResultJSON)JSON.deserialize(sobjStruct, DescribeSobjectResultJSON.class);
if (sobjProps.triggerable) {
triggerableList.add(sobjProps.name);
} else {
NOTtriggerableList.add(sobjProps.name);
}
}
NOTtriggerableList.sort();
for (String notTrigble : NOTtriggerableList) {
System.debug(notTrigble);
}
public class DescribeSobjectResultJSON {
public String name {get;set;}
public Boolean triggerable {get;set;}
}
(I remembered that you can expose private object properties that the API doesn't expose via getters by serializing and deserializing, so you can run the following script that uses the triggerable property on Schema.DescribeSObjectResult to get the list.)
Add to @Santanu Boral 's helpful list:
- AggregateResult
- ApexEmailNotification
- ApexPageInfo
- AssetHistory
- AuraDefinitionBundleInfo
- AuraDefinitionInfo
- Community
- CustomObjectUserLicenseMetrics
- DataStatistics
- DataType
- DatacloudAddress
- EntityDefinition
- EntityParticle
- FieldDefinition
- ForecastingCategoryMapping
- ForecastingTypeToCategory
- GrantedByLicense
- InstalledMobileApp
- Knowledge__DataCategorySelection
- Knowledge__ViewStat
- Knowledge__VoteStat
- MacroShare
- OrderShare
- OwnerChangeOptionInfo
- PicklistValueInfo
- PlatformCachePartition
- PlatformCachePartitionType
- Publisher
- QuoteTemplateRichTextData
- RelationshipDomain
- RelationshipInfo
- SearchLayout
- SecureAgentPlugin
- SecureAgentPluginProperty
- SiteFeed
- StreamingChannelShare
- TenantUsageEntitlement
- Territory2ModelFeed
- TodayGoal
- TodayGoalShare
- TopicLocalization
- UserEntityAccess
- UserFieldAccess
- UserListView
- UserListViewCriterion
Though seeing how long this list is, it might make more sense to do a search than reference a comprehensive list...