The Salesforce platform only supports one invocable method per Apex class. When a Flow calls an Apex action, it needs to know exactly which method
to invoke.
If multiple methods in the same class have the @InvocableMethod annotation, Salesforce cannot determine which method should be called.
This creates ambiguity that the platform resolves by throwing a runtime error.
The @InvocableMethod annotation is specifically designed to expose Apex methods to declarative automation tools like Flow Builder.
Each class acts as a single callable unit from the Flow perspective, so having multiple entry points violates this design principle.
This limitation is enforced at the platform level and cannot be overridden through configuration or workarounds.
What is the potential impact?
When a Flow attempts to call an Apex action from a class with multiple @InvocableMethod annotations, it will fail at runtime with an
error. This can cause:
- Flow execution failures that interrupt business processes
- User-facing errors in screen flows
- Failed automated processes that may leave data in an inconsistent state
- Difficulty troubleshooting since the error occurs at runtime rather than compile time