---
schema_version: "1"
id: cdfbdc11058de6ea15d54bd09517facbbb7eb5ee832bda0b883e5552c1f626af
title: Flows
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/apexcode/apex_forcecom_visualworkflow.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_forcecom_visualworkflow.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: 5ed708fd1fce669b3b9eab571e5c41985539c59b735b77567e29d440e26a38ac
description: Flow Builder lets admins build applications, known as flows, that automate a business process. Flows collect data and perform actions in your Salesforce org or an external system.
---
# Flows

Flow Builder lets admins build applications, known as flows, that automate a business process. Flows collect data and perform actions in your Salesforce org or an external system.

For example, you can create a flow to script calls for a customer support center or to generate real-time quotes for a sales team. You can embed a flow in a Visualforce page or Aura component and access it in an Apex controller.

For more information about how to start a flow from Apex, see [Apex Reference Guide: Interview Class](https://developer.salesforce.com/docs/atlas.en-us.264.0.apexref.meta/apexref/flow_interview_class.htm#flow_interview_class "HTML (New Window)").

You can customize how your Apex invocable actions appear and behave in Flow Builder by using the InvocableActionExtension metadata file. Control input parameter order and grouping, provide picklist values, add custom headers, and create partial custom property editors for improved configuration experiences. For more information, see [Extend Invocable Action Configuration in Flow Builder](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_forcecom_flow_invocable_action_extension_customize_input_order_example.htm "Simplify the configuration of Apex invocable actions in Flow Builder by using the InvocableActionExtension metadata file. Create partial custom property editors for one or more input parameters that don't require updates when you introduce new versions of your action. Define dynamic or static picklists for input parameters and control input parameter display order and grouping. You can also add a custom header to your property editor.").

- **[Getting Flow Variables](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_forcecom_visualworkflow_vars.htm)**  
    You can retrieve flow variables for a specific flow in Apex.
- **[Making Callouts to External Systems from Invocable Actions](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_forcecom_flow_invocable_action_callout.htm)**  
    When you define a method that runs as an invocable action in a screen flow and makes a callout to an external system, use the callout modifier.
- **[Extend Invocable Action Configuration in Flow Builder](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_forcecom_flow_invocable_action_extension_customize_input_order_example.htm)**  
    Simplify the configuration of Apex invocable actions in Flow Builder by using the InvocableActionExtension metadata file. Create partial custom property editors for one or more input parameters that don't require updates when you introduce new versions of your action. Define dynamic or static picklists for input parameters and control input parameter display order and grouping. You can also add a custom header to your property editor.
- **[Passing Data to a Flow Using the Process.Plugin Interface](https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_process_plugin_using.htm)**  
    Process.Plugin is a built-in interface that lets you process data within your org and pass it to a specified flow. The interface exposes Apex as a service, which accepts input values and returns output back to the flow.