---
schema_version: "1"
id: a884c59fef075fa9d602bed4034b9393aadb7d371b9c462665ffc83ebf891333
title: ApexTrigger
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/object_reference/sforce_api_objects_apextrigger.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_apextrigger.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: 463d2f85b8aa6365b84e523ebf388f57536619d5239c1f81c65a0627ac88e97d
description: Represents an Apex trigger.
---
# ApexTrigger

Represents an Apex trigger.

## Supported Calls

create(), delete(), describeSObjects(), getDeleted(), getUpdated(), query(), retrieve(), search(), update(), upsert()

## Fields

| Field | Details |
| --- | --- |
| ApiVersion | 
Type

double

Properties

Create, Filter, Sort, Update

Description

The API version for this trigger. Every trigger has an API version specified at creation.



 |
| Body | 

Type

textarea

Properties

Create, Nillable, Update

Description

The Apex trigger definition.

Limit: 1 million characters.





 |
| BodyCrc | 

Type

double

Properties

Create, Defaulted on create, Filter, Nillable, Sort, Update

Description

The CRC (cyclic redundancy check) of the class or trigger file.



 |
| IsValid | 

Type

boolean

Properties

Create, Defaulted on create, Filter, Group, Sort, Update

Description

Indicates whether any dependent metadata has changed since the trigger was last compiled (true) or not (false).



 |
| LengthWithoutComments | 

Type

int

Properties

Create, Filter, Group, Sort, Update

Description

Length of the trigger without comments



 |
| Name | 

Type

string

Properties

Create, Filter, Group, idLookup, Sort, Update

Description

Name of the trigger.

Limit: 255 characters





 |
| NamespacePrefix | 

Type

string

Properties

Filter, Group, Nillable, Sort

Description

The namespace prefix that is associated with this object. Each Developer Edition org that creates a managed package has a unique namespace prefix. Limit: 15 characters. You can refer to a component in a managed package by using the namespacePrefix\_\_componentName notation.

The namespace prefix can have one of the following values.

- In Developer Edition orgs, NamespacePrefix is set to the namespace prefix of the org for all objects that support it, unless an object is in an installed managed package. In that case, the object has the namespace prefix of the installed managed package. This field’s value is the namespace prefix of the Developer Edition org of the package developer.
- In orgs that are not Developer Edition orgs, NamespacePrefix is set only for objects that are part of an installed managed package. All other objects have no namespace prefix.





 |
| Status | 

Type

picklist

Properties

Create, Filter, Group, Restricted picklist, Sort, Update

Description

The current status of the Apex trigger. The following string values are valid:

- Active—The trigger is active.
- Inactive—The trigger is inactive, but not deleted.
- Deleted—The trigger is marked for deletion. This is useful for managed packages, because it allows a class to be deleted when a managed package is updated.

![Note](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/images/icon_note.png)

#### Note

Inactive is not valid for ApexClass. For more information, see the [Metadata API Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.264.0.api_meta.meta/api_meta/ "HTML (New Window)") .















 |
| TableEnumOrId | 

Type

picklist

Properties

Create, Filter, Group, Nillable, Restricted picklist, Sort, Update

Description

Specifies the object associated with the trigger, such as Account or Contact.



 |
| UsageAfterDelete | 

Type

boolean

Properties

Create, Filter, Update

Description

Specifies whether the trigger is an after delete trigger (true) or not (false).



 |
| UsageAfterInsert | 

Type

boolean

Properties

Create, Filter, Update

Description

Specifies whether the trigger is an after insert trigger (true) or not (false).



 |
| UsageAfterUndelete | 

Type

boolean

Properties

Create, Filter, Update

Description

Specifies whether the trigger is an after undelete trigger (true) or not (false).



 |
| UsageAfterUpdate | 

Type

boolean

Properties

Create, Filter, Update

Description

Specifies whether the trigger is an after update trigger (true) or not (false).



 |
| UsageBeforeDelete | 

Type

boolean

Properties

Create, Filter, Update

Description

Specifies whether the trigger is a before delete trigger (true) or not (false).



 |
| UsageBeforeInsert | 

Type

boolean

Properties

Create, Filter, Update

Description

Specifies whether the trigger is a before insert trigger (true) or not (false).



 |
| UsageBeforeUpdate | 

Type

boolean

Properties

Create, Filter, Update

Description

Specifies whether the trigger is a before update trigger (true) or not (false).



 |
| UsageIsBulk | 

Type

boolean

Properties

Create, Filter, Update

Description

Specifies whether the trigger is defined as a bulk trigger (true) or not (false).

![Note](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/images/icon_note.png)

#### Note

This field is not used for Apex triggers saved using Salesforce API version 10.0 or higher: all triggers starting with that version are automatically considered bulk, and this field will always return true.















 |

## Usage

Although Apex classes and triggers have the Create and Update field properties, a runtime exception occurs if you try to create, update, or delete them using the API. Instead, use the Salesforce Extensions for Visual Studio Code or the Ant Migration Tool to create or update Apex classes or triggers. Apex classes and triggers can’t be created, edited, or deleted in a production org. See [Deploying Apex](https://developer.salesforce.com/docs/atlas.en-us.264.0.apexcode.meta/apexcode/apex_deploying.htm).

#### See Also

- [ApexClass](https://developer.salesforce.com/docs/atlas.en-us.object_reference.meta/object_reference/sforce_api_objects_apexclass.htm "Represents an Apex class.")
- [_Developer Guide_: Apex Developer Guide](https://developer.salesforce.com/docs/atlas.en-us.264.0.apexcode.meta/apexcode/ "
    Developer Guide: Apex Developer Guide - html (New Window)")