Obtain an access token via the JWT Bearer or connected-app OAuth flow; confirm the token is for the correct org instance URL.
Identify the autolaunched Flow's API name (e.g., MyFlow) — it must not require a screen and must be Active in Setup.
POST to /services/data/vXX.0/actions/custom/flow/MyFlow with a JSON body containing 'inputs': [{'inputVariables': [{...}]}]; the vXX.0 version must match your org's API version.
Inspect the response array: each element has 'isSuccess', 'actionName', 'outputValues', and 'errors'; surface any errors before treating the invocation as complete.
Handle the 400 INVALID_TYPE error that occurs when passing a variable whose type mismatches the Flow variable's declared Apex type.
If the Flow performs DML, confirm it is not invoked inside an existing transaction that has already hit DML limits, or chain via Queueable.
Known gotchas
The Flow must have its Type set to 'Autolaunched Flow' — 'Screen Flow' cannot be invoked via this endpoint and returns a 400.
Interview-time Flow errors (fault paths) do not cause an HTTP error status; the response is 200 with 'isSuccess': false, so always check the payload.
The API version in the URL must be equal to or lower than the Flow's saved API version; mismatches cause silent misbehavior in formula evaluation.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp