You can deploy and run flows in the Postman cloud. Flows running in the cloud can be triggered with automatic schedules, or with requests from webhooks, third-party apps, or other APIs. Flows running in the cloud are useful for running automations and exposing functionality as an API or as an AI tool for MCP servers.
Flows running in the cloud can process incoming data and return structured responses. Once deployed, a request-triggered flow gets a unique cloud-hosted URL. A deployed flow’s URL is useful for tasks like automating business logic, handling webhooks, integrating with external services, or powering AI-driven tools on MCP servers.
Flows running in the cloud don’t support private APIs.
Deployable flows are available in Postman version 11.42.3 and later.
To learn about creating and deploying flows, see Deploy flows to the Postman cloud.
Flows running in the cloud typically send out any data they produce as HTTP response bodies. This holds true for any flow that finishes running in less than the Timeout duration. The data flows through the Response block.
The maximum Timeout is 30 seconds. If your flow requires longer to run, contact Postman support to request an increase of the maximum timeout value to 60 seconds.
Once the Timeout interval has elapsed, the Response block sends out a 408 Request Timeout error. The flow will continue running for up to 60 minutes, at which point it will automatically stop.
If your flow requires over 60 seconds to run, it won’t be able to send out data from the Response block. Instead, design your flow to be asynchronous.
Flows can be deployed in the Postman cloud. Once it’s running in the cloud, a request-triggered flow has a unique URL. You and other users can send requests to the flow’s URL and receive responses from it.
You can create and restore different snapshots of a flow that’s running in the cloud. Snapshots are like different versions of a flow. When you deploy a flow to make it publicly available in the Postman cloud, you can deploy a new snapshot or an existing one.
If you deploy an existing snapshot of a flow, the local version of your flow doesn’t automatically restore the snapshot when you deploy it. To learn about restoring snapshots and more, see Version flows with snapshots.
You can automate flows in the cloud to run at regular intervals or at specific times. Automated flows can be useful for testing and other scheduled events in your API workflow. To learn more, see Schedule a flow to run automatically.
You can configure flows running in the cloud to authorize requests with a bearer token. Bearer tokens make flows running in the cloud more secure by only granting access to requests that include the token.
Learn how to enforce bearer token authorization for deployed flows.
You can design your flows to be synchronous (sync) or asynchronous (async). In a sync flow, all the blocks complete their functions before the flow sends a response. An async flow sends a response before its blocks finish running.
For example, if an AI block in your flow takes several seconds to complete a task, you may choose to send the response first. Async flows are useful when integrating with webhooks from services that expect a quick response, like Slack.
Here’s an example of an async flow:
In this flow, a Validate block checks the request data against a schema. If the request data is valid, the flow simultaneously sends a Status Code 200 response and triggers the Create with AI block. The Create with AI block may complete after the flow’s timeout setting elapses. By making the flow async, it can send a response before completing its workflow.
Flows parse incoming data as a structured data object. Each field in the object maps to a list of string values. For example, when a flow receives the following data:
token=9XqPLt7mKaRjVh2NbzC4f5Yw&team_id=T91H6Z2LK&team_domain=acme&channel_id=C72DF1XRK9&channel_name=integration-testing&user_id=U18ABZQXPR&user_name=jane.doe&command=%2Fflows&text=status&api_app_id=A45K9L72QM&is_enterprise_install=false&enterprise_id=E55YT9QWKV&enterprise_name=AcmeCorp&response_url=https%3A%2F%2Fhooks.slack.com%2Fcommands%2FT91H6Z2LK%2F3399128457101%2FHgT9yW3aKpLvQ8RbFsXe5JdM&trigger_id=3399128462830.8451991626.a1bc
it parses the data like this:
{
"token": ["9XqPLt7mKaRjVh2NbzC4f5Yw"],
"team_id": ["T91H6Z2LK"],
"team_domain": ["acme"],
"channel_id": ["C72DF1XRK9"],
"channel_name": ["integration-testing"],
"user_id": ["U18ABZQXPR"],
"user_name": ["jane.doe"],
"command": ["/flows"],
"text": ["status"],
"api_app_id": ["A45K9L72QM"],
"is_enterprise_install": ["false"],
"enterprise_id": ["E55YT9QWKV"],
"enterprise_name": ["AcmeCorp"],
"response_url": ["https://hooks.slack.com/commands/T91H6Z2LK/3399128457101/HgT9yW3aKpLvQ8RbFsXe5JdM"],
"trigger_id": ["3399128462830.8451991626.a1bcde230ab982f3d451f9bce67d041d"]
}
Last modified: 2026/01/15