> ## Documentation Index
> Fetch the complete documentation index at: https://cloudinary.com/documentation/llms.txt
> Use this file to discover all available pages before exploring further.

# PowerFlows



## Overview

You can build PowerFlows using an intuitive, **low-code**, drag-and-drop interface.  These flows let you take full control of your media workflows and enable you to connect with other technology within your media ecosystem. With PowerFlows, you can fully customize complex media management workflows, build custom integrations with 3rd party tooling, and own your media workflows end-to-end.

A PowerFlow is a set of functional blocks that are connected together, creating step-by-step actions to execute. You can use blocks for a variety of actions, from interacting with media in Cloudinary, to sending notification emails. You can trigger flows in a number of different ways, for example, using webhooks, on a schedule, on asset upload, and more. 

![Example flow](https://cloudinary-res.cloudinary.com/image/upload/bo_1px_solid_gray/f_auto/q_auto/docs/mediaflows/ugc-powerflow-full "thumb:c_scale,w_800,dpr_2.0, width: 800, popup:true")

## PowerFlow templates

To get started with PowerFlows, you can either start from scratch or use a template. Templates can serve as an inspiration and help you discover the various use cases that PowerFlows can solve. Choose any PowerFlow template and personalize it according to your specific requirements. 

To view all the templates, either click the **Templates** tab, or from the [MediaFlows Home page](https://console.cloudinary.com/mediaflows/home), click the **Start with a template** card.

You can then search for templates in the dialog:

![PowerFlow template](https://cloudinary-res.cloudinary.com/image/upload/bo_1px_solid_gray/f_auto/q_auto/docs/mediaflows/mf_templates_tab "thumb:c_scale,w_800,dpr_2.0, width: 800, popup:true")

After selecting a template, the canvas opens allowing you to view and [build your flow](mediaflows_build_flow).

## Use AI to build a PowerFlow

There are two ways to use AI to build your PowerFlow:

  * Use the **Surfer - AI Agent**. This is a [chat interface](mediaflows_mcp#surfer_ai_agent) to the MediaFlows MCP server.
  * Connect an MCP client to the [MediaFlows MCP server](mediaflows_mcp).

Using any of these, you can describe the flow you want to build and it'll be generated automatically.

> **TIP**: Providing detailed flow descriptions significantly increases the likelihood of generating the exact flow you have in mind.

## PowerFlow variables

There are four types of variables you can use in PowerFlows:

* **[Environment variables](#environment_variables)** - accessible to any of your PowerFlows
* **[Flow variables](#flow_variables)** - accessible to the specific PowerFlow in which they're defined  
* **[Flow secrets](#flow_secrets)** - accessible to the specific PowerFlow in which they're defined (for sensitive data)
* **Response values from previous blocks** - output data from blocks that have already executed in the flow

The first three types are variables that you define and set yourself. Response values are automatically generated as blocks execute. 

> **TIP**: For step-by-step instructions on how to insert any of these variable types into block fields, see [Inserting variables](mediaflows_build_flow#inserting_variables).

### Environment variables

Environment variables are accessible to any of your PowerFlows. 

You can set them as key/value pairs in the [Variables](https://console.cloudinary.com/app/mediaflows/settings) page:

![Setting environment variables](https://cloudinary-res.cloudinary.com/image/upload/bo_1px_solid_gray/f_auto/q_auto/docs/mediaflows/global_env_variables.png "thumb:c_scale,w_800,dpr_2.0, width: 800, popup:true")

> **NOTE**: If your variable is sensitive, use [flow secrets](#flow_secrets), rather than environment variables.

### Flow variables

Flow variables are accessible to the PowerFlow in which they're defined. 

You can set them via the (3-dots) options menu for the PowerFlow in the [Flows](https://console.cloudinary.com/app/mediaflows/list) page, or from the drop-down menu at the top of the PowerFlow canvas. Selecting the **Flow Variables** option opens the **Flow Variables** dialog:

![Setting flow variables](https://cloudinary-res.cloudinary.com/image/upload/bo_1px_solid_gray/f_auto/q_auto/docs/mediaflows/flow_variables.png "thumb:c_scale,w_500,dpr_2.0, width: 500, popup:true")

> **NOTE**: If your variable is sensitive, use [flow secrets](#flow_secrets), rather than flow variables.

### Flow secrets

Flow secrets are accessible to the PowerFlow in which they're defined. You should use them to store sensitive data, such as API keys and secrets. 

You can set them via the (3-dots) options menu for the PowerFlow in the [Flows](https://console.cloudinary.com/app/mediaflows/list) page, or from the drop-down menu at the top of the PowerFlow canvas. Selecting the **Flow Secrets** option opens the **Flow Secrets** dialog:

![Setting flow secrets](https://cloudinary-res.cloudinary.com/image/upload/bo_1px_solid_gray/f_auto/q_auto/docs/mediaflows/flow_secrets.png "thumb:c_scale,w_500,dpr_2.0, width: 500, popup:true")

> **PowerFlow resources:**:
>
> * Learn how to [build a PowerFlow](mediaflows_powerflows)

> * Explore some [sample PowerFlows](mediaflows_sample_powerflows)

> * See what blocks are available in the [PowerFlow block reference](mediaflows_block_reference)