Make HTTP Callouts in Flows
When MoveData processes a notification, it runs within a single Salesforce transaction. All changes are committed together at the end, or rolled back entirely if an error occurs.
The problem#
Salesforce does not allow HTTP callouts to external systems while a transaction has uncommitted changes. If you attempt a callout from a flow or Apex code during MoveData processing, Salesforce returns the following error:
Can't perform callout because of pending uncommitted changes related to a process, flow, or Apex operation. Commit or roll back the work, and then try again.
The solution#
Move your HTTP callout into code that runs after the MoveData transaction has completed. There are two approaches:
- Asynchronous flow — Run your post-processing flow asynchronously so it executes in a separate transaction. See Run post-processing asynchronously for configuration steps.
- After Apex trigger — Use an
after insertorafter updateApex trigger on the relevant object. The trigger fires after MoveData's transaction has committed, so callouts are permitted.
Both approaches ensure the callout occurs outside the MoveData transaction, avoiding the Salesforce restriction.