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.

Build a PowerFlow

Last updated: Jun-11-2026

PowerFlows consist of a set of functional blocks that are connected together, enabling you to create step-by-step actions for execution. Each block performs a specific function. By combining different blocks, you can develop a customized application to address your media use case effectively.

Blocks are grouped into different categories such as Triggers, Flow Logic, and Developer Tools, to make them more accessible. For more in-depth information on each block, refer to the PowerFlow block reference.

Blocks connected together

Create a new PowerFlow

From the Home page, you can select one of the given flow starting templates, or you can create your own flow from scratch by clicking New PowerFlow.

You can also try using the natural-language interface to create a new flow. Enter your prompt in the dialog box at the top of the page.

Create flow

The canvas

The canvas is your visual development environment. It allows you to view, edit, test, debug, and deploy your application.

From the Navigation Bar on the left you can add blocks and view logs. Live logs open in a sidebar on the right.

Canvas

Changing the trigger

When you create a PowerFlow from scratch, you must choose a trigger before the flow is created. This ensures your flow has a defined starting point from the beginning.

If you need to change the trigger after creating a flow, hover over the trigger block and click the Change trigger option that appears.

Trigger block options on hover

Adding blocks

To add blocks:

  1. From the Navigation Bar on the left, click Blocks to open the Select a block dialog.
  2. Select the block you want to use. It will be automatically connected to the last block in your flow.

The select a block dialog

Tip
There's a search field at the top of the dialog that you can use to search for a particular block.

You can also add blocks by clicking a connection node on an existing block. This opens the same Select a block dialog and automatically connects the selected block to this node.

Add a block by clicking a connection node on an existing block

Disconnecting blocks

You can disconnect blocks by hovering over the line joining the blocks and then clicking on the little x that appears.

Disconnect blocks

You can remove blocks from the canvas by clicking the Delete icon that appears when you hover over a block.

Remove blocks

Reconnecting blocks

Reconnect blocks by selecting one output node and dragging it to the input node of the next block.

Reconnect blocks


A block can be connected to multiple blocks. In the example below, once the Manual Moderation block executes successfully, both the Move To Folder and Send Email Using SendGrid blocks are executed in parallel.

Connect multiple blocks to an output

See also

Error paths - Add error handling paths to blocks for graceful failure handling.

Configuring a block

Click a block to open its configuration sidebar where you can configure all the input fields for the block.

Configuring a block

Tip
To make your flows easier to understand, you can edit the display name of a block.

Inserting variables

You can set a block's input field using a fixed value or a variable. A variable can be an environment variable, a flow variable, a flow secret, or a response value from a previous block in the flow.

In the example below, the Metadata key field is a fixed value while the Metadata value field gets its value from the response of the On Asset Upload trigger block.

Insert a variable

To set an input field with a variable:

  1. Click the + button in an input field to find a variable. Select a variable
  2. Either search for the variable, or navigate the blocks and variable types to select the variable you want to use. The list of suggested block variables isn't comprehensive and only displays some of the more popular response values. If the response value you want doesn't appear in the list, you can add a variable manually. Select a variable

Note
To access nested response values, use dot notation, e.g. metadata.status.

Caution
If you type a dot (.) immediately after a variable chip in a text field (for example, {variable}.json), the text after the dot is evaluated as part of the variable's JSONPath expression, which can cause the workflow to fail to save. To append a dot and suffix to a variable value, use a Join Strings block: set the variable as the first string and the dot-suffix (e.g. .json) as the second string.

Testing a flow

You can trigger a flow programmatically based on its trigger block. Additionally, you can manually trigger a flow directly from within the canvas in order to test it. This is extremely helpful while building or debugging a flow.

To manually trigger the flow, click the Test button above the canvas.

Test a flow

You can configure the trigger by clicking on the three dots in the Test button. For each type of trigger you'll see the available configuration settings (if any).

Customize the trigger for your flow.

Setting flow secrets

Logs

Once a flow is executed, you can view the logs of the execution in the Logs sidebar:

  1. From the Navigation Bar on the left, open the Logs sidebar. All executions will appear in the sidebar, including their execution time and status.
  2. Click an execution to see the blocks that were executed.
  3. Click any block to see the output of the block in that execution.

Tip
A red dot will appear next to the Execution Logs button on the Navigation Bar to indicate that a flow was executed while the sidebar was closed. Click the button to open the sidebar and see the new execution.

You can also review all past executions by clicking on the History logs icon at the top of the Logs sidebar.

Flow notifications

For each flow you build, you can configure in-app notifications that are sent to selected users or groups when the flow execution succeeds or fails. These notifications appear on the Notifications page. You can also configure a webhook URL to receive an HTTP notification when a flow execution succeeds or fails.

To open the Flow Notifications settings, click the Flow Notifications icon in the left panel of the canvas (you can also find this option in the three-dot menu for the flow on the Flows page).

The Flow Notifications dialog opens, allowing you to view MediaFlows notifications and/or Webhook notification settings:

The Flow Notifications dialog

MediaFlows notifications

  • Select whether to notify on failure, success or both.
  • Select users or groups to notify.

Notified users see notifications on the Notifications page.

Webhook notification

  • Select whether to notify on failure, success or both.
  • Specify an endpoint URL to send the webhook notification to.
  • Add any key/value headers required by the receiving endpoint.

The webhook notification includes fields such as flow_name, flow_external_id, block_name, and block_error to help you track down any errors and quickly resolve any issues.

Tip
When a flow is shared, the recipient's copy starts with an empty notification configuration — no recipients or messages are pre-filled. Your original flow and its notification settings are unaffected.

Flow errors

Errors fall into three categories:

  • Runtime errors: For example, when specifying a non-existent variable for a block. The flow will crash at runtime and will throw an error.
  • Timeout errors: A flow times out when it runs for more than five minutes. This may happen, for example, if you have multiple HTTP requests to slow services.
  • General errors: For example, an HTTP request can run into a 500/401 error and fail, which in turn causes the flow to fail with a general error.

Setting up flow notifications is a critical best practice that ensures you're alerted immediately when a flow fails to complete. This is especially important for production environments and large-scale automations where silent failures could lead to:

  • Missed business-critical operations: Such as failed product uploads, unprocessed orders, or incomplete data synchronizations
  • Data inconsistencies: When only part of a multi-step process completes successfully
  • Difficult troubleshooting: The longer an error goes unnoticed, the harder it becomes to identify the root cause and assess its impact

By configuring flow notifications, you can respond quickly to issues, minimize downtime, and maintain the reliability of your automated workflows.

Tip
For more granular error handling within your flow, you can also configure error paths on individual blocks to handle recoverable errors without stopping the entire flow.

Error paths

In addition to flow-level flow notifications, you can add error paths to individual blocks to handle recoverable errors within your flow.

When a block with an error path encounters a recoverable error (for example, a 400 error response from an API call), the flow continues along the error path instead of stopping. This enables you to handle errors gracefully by logging them, sending notifications, or taking alternative actions.

If a block encounters an unrecoverable error (for example, the block can't resolve an input variable), the flow stops completely, regardless of whether an error path is configured.

To be notified of unrecoverable errors, configure flow notifications at the flow level.

Error paths are available for all blocks except Triggers and Flow Logic blocks.

To add an error path:

  1. Select the error path icon (tooltip: Add error path) on the block you want to add error handling to.
  2. A red error output appears on the block. You can then connect it to the block(s) you want to execute when an error occurs by dragging from the error output to the target block's input.

To remove an error path:

  1. Select the same error path icon (tooltip: Remove error path).

Tip
Use error paths together with the Add To Logs block to capture and record error details for debugging purposes.

Enable and disable PowerFlows

In the Flows page you'll see an indication of which of your flows are enabled or disabled under the Status column.

Flows listed in the flows page

To enable a flow, open the flow and click the Enable Flow button at the top right of the canvas:

Enable a flow

Enabling a flow also sets any necessary webhooks for the flow. You can see the webhooks that are set for your product environment in the Webhook Notifications settings page.

If you accidentally delete a webhook that's set for an active flow, you'll need to go back and fix the flow, which will create a new webhook. Simply click the Fix Flow button:

Fix a flow

To disable a flow, click the Disable Flow button:

Enable and disable flows

Share a flow

You can share flows with colleagues in different accounts, allowing them to reuse or extend your workflow. You can also use sharing to copy flows between different product environments within your own account. This is useful when you want to promote a flow from development to production, or replicate it across different environments.

Changes made to the imported flow don't impact the originally shared flow.

To share a flow, in the canvas, click the cog to the right of your flow name and click the Share option (you can also find this option in the (3-dots) menu for the flow in the Flows page).

The share option in the kebab menu

The shareable URL is copied to your clipboard, ready for you to send to a colleague, which they can then use to import the flow into their environment.

Important
For security reasons, the link is valid only for 14 days. If you need to share the flow after this time, click the Share option again to generate a new link.

Import a flow

To import a flow, enter the shared URL in your browser, select the product environment into which you want to import this flow, and click the Try This Flow button.

✔️ Feedback sent!

Rate this page:

one star two stars three stars four stars five stars