Explain this flow to me

Inheriting an undocumented Flow means tracing every element in Flow Builder by hand. Ask sf-intelligence instead - it reads the Flow's metadata and explains the trigger, the decision branches, and every field, object, and Apex action it touches, in plain English.

Last updated 2026-07-29

Short answer: Ask sf-intelligence "explain the Opportunity_Router flow" and it summarizes what the Flow does - its trigger and object, its decision branches, and the fields, records, and Apex it reads or writes - from the Flow metadata, with every referenced component linked. It's a static, read-only explanation: it does not run the Flow.

read a real flow in 2 minutes - no org, no auth

terminal
claude mcp add --transport stdio --scope user sf-intelligence-demo -- npx -y sf-intelligence demo

Then ask "explain the Project_On_Approve flow" for one flow in isolation, and "what happens when I save a Project?" for the whole save-time sequence around it - validation rule, record-triggered flows, trigger, and approval process in order. Synthetic "Verdant Energy" org, served fully offline: no Salesforce login, no sf CLI, nothing to configure. more on the demo →

From metadata to plain English

claude - sf-intelligence
 what does the Opportunity_Router flow do?
▸ Flow:Opportunity_Router — record-triggered, after save on Opportunity
  • decision "Is Closed Won?" → branch A / branch B
  • branch A: update Account.Health__c, call ApexAction "NotifyCsm"
  • reads: Opportunity.StageName, Amount · writes: Account.Health__c
  provenance offline_snapshot · confidence: parsed

Related questions it answers

One Flow in isolation rarely explains the bug you are chasing. The reason a field is the wrong value by the time your Flow reads it is usually sequence, not logic - so if you are debugging rather than documenting, start with what actually runs when you save a Salesforce record, step by step, then come back and read the individual Flow.

This page is the product surface: the tool call, the output shape, and the limits. If you want the reading method itself - how to tell a before-save trigger from an after-save one, why entry conditions matter more than the trigger type, why an active Flow sometimes does nothing at all, and why obsolete Flow versions are still load-bearing for cleanup - read how to read a Salesforce Flow you did not build. Ask the tool here; learn the method there.

  • What runs when this record is saved? - the full order of execution across validation rules, flows, triggers, and workflow, not just one Flow.
  • What depends on this Flow? - what breaks if you deactivate it, via impact analysis.
  • Where is this field used? - trace a field the Flow touches across the whole org.

The tools behind it

  • explain_flow - the plain-language walkthrough of a specific Flow.
  • order_of_execution / what_happens_on_save - the full save-time sequence for an object.
  • what_if_deactivate_flow - the impact of turning the Flow off.

Honest limits

The explanation is built from Flow metadata, not a live run. Which branch a given record actually takes is runtime behavior that needs record data, and it says so rather than guessing. Answers reflect your last refresh. See how it's tested.

Frequently asked

Which tool explains a Salesforce Flow, and what does it return?

sfi.explain_flow. Give it a Flow and it returns the trigger type and object, the decision branches, and the fields, records, and Apex actions the Flow reads or writes, each referenced component cited by canonical id with its edge confidence. It is a static read of the Flow metadata in your local vault - no live org call, and no LLM inventing the walkthrough.

Can it explain what runs when a record is saved?

Yes - that's the order-of-execution question. sf-intelligence can list what fires on save (validation rules, before/after flows, Apex triggers, workflow) for an object, so you can see the full save-time picture, not just one Flow in isolation.

Does it run the Flow or read record data?

No. It's a static, read-only explanation from the Flow's metadata - it does not execute the Flow or read record values. Runtime-only behavior (which branch a specific record takes) is outside what metadata alone can tell you, and it says so.

Read the flow, in English.

Point the read-only MCP server at your org and ask what anything does.