Passing Data to a Flow Using the Process.Plugin Interface

Process.Plugin is a built-in interface that allows you to process data within your organization and pass it to a specified flow. The interface exposes Apex as a service, which accepts input values and returns output back to the flow.
Tip

Tip

We recommend using the @InvocableMethod annotation instead of the Process.Plugin interface.

  • The interface doesn’t support Blob, Collection, sObject, and Time data types, and it doesn’t support bulk operations. Once you implement the interface on a class, the class can be referenced only from flows.
  • The annotation supports all data types and bulk operations. Once you implement the annotation on a class, the class can be referenced from flows, processes, and the Custom Invocable Actions REST API endpoint.

When you define an Apex class that implements the Process.Plugin interface in your organization, the Cloud Flow Designer displays the Apex class in the Palette.

Process.Plugin has these top-level classes.
  • Process.PluginRequest passes input parameters from the class that implements the interface to the flow.
  • Process.PluginResult returns output parameters from the class that implements the interface to the flow.
  • Process.PluginDescribeResult passes input parameters from a flow to the class that implements the interface. This class determines the input parameters and output parameters needed by the Process.PluginResult plug-in.

When you write Apex unit tests, instantiate a class and pass it into the interface invoke method. To pass in the parameters that the system needs, create a map and use it in the constructor. For more information, see Using the Process.PluginRequest Class.

Previous
Next