Invocable Actions
24 min
invocable actions are the flow callable equivalents of approvals pro's global methods docid 8c8dwhn2temdwypdq bj2 use them inside record triggered flows, screen flows, scheduled flows, and process builder (though process builder is deprecated — prefer flow) available actions action label api name purpose submit for approval appro invocablesubmitforapproval submits a record for approval approve approvals appro invocableapproveapproval marks one or more approvals as approved reject approvals appro invocablerejectapproval marks one or more approvals as rejected reassign approvals appro invocablereassignapproval reassigns approvals to a different user or group recall approvals appro invocablerecallapproval recalls a pending approval request warning namespace collision salesforce has a standard invocable action also named "submit for approval" (without the appro prefix) when building flows, always verify the api name in the action picker picking the wrong one submits to standard salesforce approvals instead of approvals pro — with no error at design time submit for approval api name appro invocablesubmitforapproval inputs name required type description record id ✓ string the record to submit usually {!record id} in a record triggered flow approval process name string pin a specific process omit to let approvals pro choose the highest priority eligible one outputs name type description success boolean true if the submission succeeded record id string echoes the input — useful for fault path logging error message string populated on failure (e g , no matching process) pattern auto submit when a checkbox is ticked trigger record updated on quote condition launch pricing approval c = true (changed) optimize actions and related records action submit for approval \ record id {!$record id} \ approval process name standard sales approval on error send custom error email with {!action errormessage} note if the record doesn't meet the process's entry criteria, the submission silently no ops — success is true but no approval is created if you need "submission required" enforcement, check for a new appro approval request c record in a follow up step approve approvals api name appro invocableapproveapproval inputs name required type description approval ids ✓ list collection of appro approval c record ids to approve approver user ✓ string user id to record as the approver usually the running user of the flow, but can be any active user id message string approval comment required if the step has make approval message required set piwi list list optional process instance work item ids (for mixing standard salesforce approvals into the same action) pattern auto approve low stakes requests trigger record created/updated on appro approval c condition appro approval step r appro approval step name c = "quick approval" and parent amount < 5000 optimize actions and related records action 1 create a text collection (approval ids) and add {!$record id} action 2 approve approvals \ approval ids {!approvalidscollection} \ approver user {!$user id} \ message "auto approved under $5k quick approval policy" reject approvals api name appro invocablerejectapproval inputs same shape as approve approvals status is implied by the action name use the message input to explain the rejection — critical for audit and rep feedback reassign approvals api name appro invocablereassignapproval inputs name required type description approval ids ✓ list collection of appro approval c ids to reassign new approver user or group id ✓ string user id or public group id that receives the approval message string reassignment comment required if the step has make reassignment message required pattern auto reassign after n days of inaction schedule a time based path in your flow that waits n days after the approval is assigned if still assigned, call reassign to the approver's manager or a backup queue recall approvals api name appro invocablerecallapproval inputs name required type description record id ✓ string id of the submitted record (not the approval — the parent record) approval process id string unused — reserved for future use leave blank pattern auto recall when the record changes mid approval trigger record updated on quote condition (any pricing sensitive field changed) and appro approval status c = 'pending' optimize actions and related records action recall approvals \ record id {!$record id} note a recall on change pattern should usually not auto resubmit let the user review what changed and resubmit themselves — otherwise you risk infinite recall/resubmit cycles on bulk edits fault path handling all invocable actions expose fault connectors in flow use them to log failures to a custom approval audit log object post a message to slack / chatter when a system triggered approval fails email the process owner (the conflict approver email template recipient is not fired on flow originated failures — you must handle them in the flow itself) running user context approvals pro invocables run in the context of the flow's running user (or the automated system user for record triggered flows) two consequences the running user must have submitrecordforapproval (for submit) or equivalent permissions for the action for system driven automation, ensure the default automated process user has the approvals pro permission sets email "from" addresses respect each approval email template's sender type setting — not the running user — unless sender type is set to currentuser see email templates docid\ b nl64xxgwt7sbht8m3xc bulk execution invocable actions are bulk safe pass collections of ids rather than looping over single records the engine batches dml and respects salesforce governor limits example get records → filter approvals where status = 'pending' and age > 14d pass the collection to reassign approvals in a single action call related global methods docid 8c8dwhn2temdwypdq bj2 — apex equivalents automation patterns docid\ tq b8u71vneelfvoomtix — end to end flow examples best practices → automation docid\ h8xc9gykfudb7auncqlpu — gotchas and guardrails