Apex Developer Guide
Summer '26 (API version 67.0)
Spring '26 (API version 66.0)
Winter '26 (API version 65.0)
Summer '25 (API version 64.0)
Spring '25 (API version 63.0)
Winter '25 (API version 62.0)
Summer '24 (API version 61.0)
Spring '24 (API version 60.0)
Winter '24 (API version 59.0)
Summer '23 (API version 58.0)
Spring '23 (API version 57.0)
Winter '23 (API version 56.0)
Summer '22 (API version 55.0)
Spring '22 (API version 54.0)
Winter '22 (API version 53.0)
Summer '21 (API version 52.0)
Spring '21 (API version 51.0)
Winter '21 (API version 50.0)
Summer '20 (API version 49.0)
Spring '20 (API version 48.0)
Winter '20 (API version 47.0)
Summer '19 (API version 46.0)
Spring '19 (API version 45.0)
Winter '19 (API version 44.0)
Summer '18 (API version 43.0)
Spring '18 (API version 42.0)
Winter '18 (API version 41.0)
Summer '17 (API version 40.0)
Spring '17 (API version 39.0)
Winter '17 (API version 38.0)
Summer '16 (API version 37.0)
Spring '16 (API version 36.0)
Winter '16 (API version 35.0)
Summer '15 (API version 34.0)
Spring '15 (API version 33.0)
Winter '15 (API version 32.0)
Spring '14 (API version 30.0)
Release Notes
Actions
Apex Cursors
Chatter Answers and Ideas
Moderate Chatter Private Messages with Triggers
Moderate Feed Items with Triggers
Experience Cloud Sites
External Services
Getting Flow Variables
Making Callouts to External Systems from Invocable Actions
Extend Invocable Action Configuration in Flow Builder
Implementing the Process.Plugin Interface
Using the Process.PluginRequest Class
Using the Process.PluginResult Class
Using the Process.PluginDescribeResult Class
Process.Plugin Data Type Conversions
Sample Process.Plugin Implementation for Lead Conversion
Formula Evaluation in Apex
Permission Set Groups
Support Classes
Territory Management 2.0
Apex Reference
Sample Process.Plugin Implementation for Lead Conversion
In this example, an Apex class implements
the Process.Plugin interface and converts a lead
into an account, contact, and optionally, an opportunity. Test methods for the plug-in are
also included. This implementation can be called from a flow via a legacy Apex action.
We recommend using the @InvocableMethod annotation instead of the Process.Plugin interface.
- The interface doesn’t support Blob, Collection, and sObject, data types, and it doesn’t support bulk operations. After you implement the interface on a class, the class can be referenced only from flows.
- The annotation supports all data types and bulk operations. After you implement the annotation on a class, the class can be referenced from flows, processes, and the Custom Invocable Actions REST API endpoint.
- Legacy Apex actions aren’t supported in auto-layout in Flow Builder. Legacy Apex actions are only available to be added in free-form in Flow Builder. Existing actions can be edited in both auto-layout and free-form mode.
- You can customize how invocable actions created with @InvocableMethod appear in Flow Builder by using the InvocableActionExtension metadata file. Control parameter order, add picklists, create custom headers, and build partial custom property editors.
Tip