Salesforce Dictionary - Free Salesforce GlossarySalesforce Dictionary
Full Process Instance entry
How-to guide

Query Process Instance data to build an approval analytics dashboard

Build a custom report on ProcessInstance, ProcessInstanceStep, and the target object so finance or compliance can see approval cycle time, volume, and bottleneck steps in one place.

By Dipojjal Chakrabarti · Founder & Editor, Salesforce DictionaryLast updated May 26, 2026

Build a custom report on ProcessInstance, ProcessInstanceStep, and the target object so finance or compliance can see approval cycle time, volume, and bottleneck steps in one place.

  1. Identify the target object

    Pick the object the approval runs on (Opportunity, Quote, Contract, custom). Note which fields you need on the report (Amount, Region, Owner, Stage).

  2. Create a custom report type

    Setup, Report Types, New. Primary object is the target object. Add ProcessInstance as a related object linked by TargetObjectId. Add ProcessInstanceStep as a related object linked by ProcessInstanceId.

  3. Mark useful fields available

    On the report type, mark Status, CreatedDate, CompletedDate, and the comment field as available for reporting. Add the step's Actor and StepStatus.

  4. Build a cycle-time report

    Create a report on the new report type. Add a custom formula column: CompletedDate minus CreatedDate. Group by the target object's region or owner.

  5. Add filters

    Filter to approvals that completed in the last quarter. Filter status to Approved or Rejected (exclude Pending for cycle time).

  6. Build the dashboard

    Add the report to a dashboard with a bar chart of cycle time by region and a tile of Pending vs Completed counts. Pin to the finance or compliance home page.

Key options
ProcessInstanceremember

Parent runtime object; one row per approval submitted.

ProcessInstanceStepremember

Child object capturing each completed step with actor and timestamp.

ProcessInstanceWorkitemremember

Pending step record; one row per active workitem awaiting approver action.

Custom Report Typeremember

Joins ProcessInstance to the target object to make the runtime data reportable alongside business fields.

Gotchas
  • ProcessInstance freezes the approval flow at submission. Edits to the underlying Approval Process do not apply to in-flight instances; they only affect new submissions.
  • ProcessInstanceWorkitem is the only place pending state lives. Reports on completed approvals use ProcessInstance plus ProcessInstanceStep; reports on pending approvals must include Workitem.
  • CompletedDate is null while the instance is still pending. Cycle-time formulas need to handle the null case or filter completed instances only.
  • Comments on a step are stored on the step row, not the instance. A report that needs the comment trail must include ProcessInstanceStep in the report type.

See the full Process Instance entry

Process Instance includes the definition, worked example, deep dive, related terms, and a quiz.