← PostmanCONTENT HISTORY

Update to Postman

Snapshot Oct 24, 2026 · 12:56 UTC · version 0.4.0

Collection source: downloaded plugin package. These snapshots do not have a confirmed matching collection source. Differences in file lists alone do not establish changes to the package.

WHAT CHANGED

Instructions updated for flows

Full description — Now says: Use when running, deploying, or debugging an existing Postman Flow. Distinguishes local graph execution from a deployed webhook, reuses named input...

Observed in instructions or declared skills. Runtime behavior has not been tested.

Save Postman and check future changes in Following.

Up to 3 plugins free · no card required.

All fields and original values.

Full description

Before

Sep 30, 2026 · 23:09 UTC

Runs, deploys, and debugs Postman Flows from the command line — executing a flow file locally, triggering a deployed flow over its webhook, deploying one so it becomes callable, and tracing a failed run to the block that broke. Use when ...

After

Oct 24, 2026 · 12:56 UTC

Use when running, deploying, or debugging an existing Postman Flow. Distinguishes local graph execution from a deployed webhook, reuses named input scenarios, and follows a run to the failing block rather than treating an HTTP response a...

Skill instructions

Before

Sep 30, 2026 · 23:09 UTC

Runs, deploys, and debugs Postman Flows from the command line — executing a flow file locally, triggering a deployed flow over its webhook, deploying one so it becomes callable, and tracing a failed run to the block that broke. Use when ...

After

Oct 24, 2026 · 12:56 UTC

Use when running, deploying, or debugging an existing Postman Flow. Distinguishes local graph execution from a deployed webhook, reuses named input scenarios, and follows a run to the failing block rather than treating an HTTP response a...

Supporting files

Before

Sep 30, 2026 · 23:09 UTC

[{"relative_path":"reference/flow_cli_flags.md","size_in_bytes":5616}]

After

Oct 24, 2026 · 12:56 UTC

[{"relative_path":"reference/flow_cli_flags.md","size_in_bytes":5698}]

Compare saved observations

Download comparison JSON

SKILL.md text changes

− removed · + added

--- before
+++ after
@@ -1,212 +1,63 @@
 ---
 name: flows
-description: Runs, deploys, and debugs Postman Flows from the command line — executing a flow file locally, triggering a deployed flow over its webhook, deploying one so it becomes callable, and tracing a failed run to the block that broke. Use when the user names a flow and an action ("run the Checkout flow", "deploy this flow", "why did that flow run fail", "what flows do I have"). Covers `postman flows list`, `run`, `trigger`, `deploy`, `update`, `list-runs`, and `get-run`.
+description: Use when running, deploying, or debugging an existing Postman Flow. Distinguishes local graph execution from a deployed webhook, reuses named input scenarios, and follows a run to the failing block rather than treating an HTTP response as whole-flow success. Use for requests such as "why did this flow fail".
 ---
 
 # Postman Flows
 
-## Overview
-
-Listing flows, running them, deploying them so they become callable, and
-tracing a failed run to the block that caused it — all through
-`postman flows`.
-
-## Core knowledge
-
-A flow is a graph of blocks, not a script. That single fact drives the rest of
-this skill: a flow has two independent execution paths, and its HTTP response
-describes one block rather than the whole graph, so debugging takes a
-different command than running.
-
-### Local file vs deployed artifact
-
-`run` and `trigger` are not two ways to execute one flow. Postman Flows has
-two Native Git modes, and they are isolated from each other:
-
-- **Cloud View** (the default) syncs flows to Postman Cloud, which is what
-  makes them shareable and **deployable** — so Cloud View is the only side
-  `deploy`, `trigger`, `update`, `list-runs` and `get-run` ever address.
-- **Local View** stores flows as JSON in a local Git repo, updated as they are
-  edited. Those flows **cannot be shared or deployed**, have no snapshots, and
-  are isolated from the flows in Cloud View.
-
-| | `flows run <path>` | `flows trigger <flowId>` |
-| --- | --- | --- |
-| Executes | a flow JSON file on this machine | the cloud-deployed flow, via its webhook |
-| Returns | status, output, test results, exit code | Run ID + HTTP status + response body |
-| Observability | own stdout, `--output`, `--reporters` | `get-run`, per block |
-| Environment file | `-e/--environment` | not supported |
-
-`run` exits nonzero on failure, which is what lets a CI job gate on it.
-`trigger` goes through the real webhook URL, so it exercises the deployed path
-end-to-end — auth and trigger configuration included — and registers a cloud
-run that `get-run` can explain block by block.
-
-`postman init` scaffolds `postman/flows/`, and Postman's `flows run` examples
-use that path. Note what puts files there: the Git-connected Flows experience
-is **desktop-app only**, so `postman/flows/*.json` is written by the desktop
-app's Local View, not by the CLI — `workspace push`/`pull` carry no flows
-handling whatever else they sync. Don't tell a user to `workspace pull` to
-obtain a flow file.
-
-### What deploying buys, and what it requires
-
-Deploying puts the flow in Postman's cloud and attaches an HTTP trigger, which
-is what makes it reachable by schedules, webhooks, third-party apps, and other
-APIs — the flow stops being something a human opens and becomes callable
-infrastructure.
-
-Three preconditions sit outside the CLI, so no flag or retry satisfies them:
-the flow must be in Cloud View, its Start block must be configured with an API
-request trigger, and its canvas must have a Response block. Check these before
-re-running a failed deploy with different arguments.
-
-`--path` is a suffix appended to a generated base URL, not a full URL.
-
-### Inputs: `-i` versus a scenario
-
-A scenario is a named input set stored **in the flow definition**, generated
-when someone adds an input to the Start block. Because it travels with the
-flow, `-s "Staging"` is reproducible across invocations and across people,
-where `-i key=value` is per-invocation. Start-block inputs can be declared
-secret, which is what `--show-secrets` unmasks in dry-run output.
-
-Precedence: `-s` supplies payload, headers, and query; `--headers` and
-`--query` override it; `-i`/`-f` override its values.
-
-### Identifiers
-
-`flows list` is the only way to turn a flow name into an id —
-`.postman/resources.yaml` maps collections to cloud ids but has no flows
-section, so there is nothing local to read. Both `list` and `list-runs`
-**require** `-w/--workspace`; take that id from `workspace.id` in
-`.postman/resources.yaml`, which `bootstrap` records.
-
-Run IDs have no single documented shape (`session-abc123` and `main/1a123ab1`
-both appear in Postman's own material). Use whatever `trigger` or `list-runs`
-printed, verbatim, and apply the same rule to flow ids.
-
-### Plan and permission gating
-
-`flows run` is documented as Enterprise-only, and the cloud subcommands need
-`postman login`. `Access denied. Please check your permissions for the
-specified resource.` on *every* workspace is a credential-scope or plan
-signal, not a wrong-workspace signal — and never means the workspace has no
-flows.
-
-## Deploying: propose, confirm, then verify
-
-Deploy is the one multi-phase workflow here, because it is mutating and
-because its result is only half-useful without the follow-up check.
-
-1. **Resolve the id.** `flows list --workspace <id> --filter "Checkout"`. On
-   multiple matches, show name + id + last-updated and let the user pick.
-2. **Propose the path.** Derive it from the flow name — "Checkout" →
-   `/checkout` — so the user is confirming a concrete value rather than
-   answering an open question. Raise `--auth` here if the trigger will be
-   reachable by anyone who learns the URL.
-3. **Confirm, then run** `flows deploy <flowId> --path /checkout`.
-4. **Report the Trigger URL and whether the trigger is enabled.** A deploy can
-   land with the trigger off, which looks identical to a broken deploy at call
-   time. If it is off, offer `flows update <flowId> --trigger on`.
-
-When the deploy existed only so the flow could be run, trigger it in the same
-turn and report the Run ID — deploy-then-trigger is one job.
-
-## Running and triggering
-
-Show the command before running it, and map the request onto flags: inputs to
-`-i`, a payload file to `-f`, query to `-q`, headers to `--headers`, a named
-scenario to `-s`.
-
-```bash
-postman flows run postman/flows/checkout.json -i amount=4200
-postman flows trigger <flowId> -i amount=4200
-```
-
-`run` is documented as Enterprise-only, so check the plan before building a
-workflow on the local path. Where the flow is already in Cloud View, `trigger`
-covers the gap; a Local View flow has no such fallback, since it cannot be
-deployed.
-
-`-n/--dry-run` on `trigger` prints the resolved URL and payload without
-sending — worth reaching for when a flow writes to real systems, since a
-trigger is not a read-only probe. For CI, `--output json` and `--reporters
-html` persist results, and `--workspace` is required if the flow contains
-connector blocks (it fails at the block, not at startup).
-
-Report the Run ID on every trigger, including successes; it is the only handle
-on the run afterwards.
-
-Two failures are recoverable rather than terminal, and both recover through a
-confirmed mutation. A 404 hinting `To deploy it, run: postman flows deploy`
-means the flow exists but was never deployed — offer the deploy above, then
-re-trigger. A disabled-trigger error means it is deployed but not accepting
-calls — offer `flows update <flowId> --trigger on`, then trigger.
-
-## Debugging a run
-
-A trigger's response body is the Response block's output. A flow can answer
-200 with a failed block upstream, and a 500 says nothing about which block
-produced it — so read the run, not the response.
-
-```bash
-postman flows list-runs --workspace <id> --flow <flowId> --range 3d
-postman flows get-run --run-id <runId> --logs
-```
-
-`list-runs` recovers a Run ID nobody wrote down; its `--range` defaults to
-`1h`, so widen it before concluding a run is missing. Start `get-run` without
-`--logs` and add them when the summary does not explain the failure;
-`--filter` narrows to a block-id prefix.
-
-Report the failing block, the reason, and the run status:
-
-```
-Run session-abc123 — failed
-  Failing block: "HTTP Request (Get Orders)"
-  Reason:        downstream returned 504 after 10s timeout
-  Status:        error
-```
-
-## Critical Rules
-
-1. **Resolve ids, never infer them.** A name is not an id, and no id format is
-   documented well enough to validate against. Ambiguous name → present
-   candidates and ask.
-2. **`deploy` and `update` need explicit confirmation.** They change what the
-   flow does for every caller: a deploy exposes a trigger path, `--trigger
-   on|off` starts or stops accepting calls, and `--auth off` removes
-   authentication from a live trigger.
-3. **Report the failing block, not the log.** `--logs` output is input to your
-   analysis; the user needs the block, the reason, and the status.
-4. **Surface CLI errors verbatim** and read them literally. "Flow file not
-   found", a required-option error, and "Access denied" have three different
-   fixes, and only the last is about permissions.
-5. **A missing or unauthenticated CLI is `bootstrap`'s job** — route there
-   rather than improvising an install or a second login.
-
-## Anti-patterns
-
-1. **Don't substitute `run` for `trigger` when a flow isn't deployed.** A
-   green local run says nothing about the deployed path a caller hits, and a
-   Local View flow cannot be deployed at all.
-2. **Don't hunt for a different workspace id when access is denied across
-   every workspace you try.** A blanket denial points at the credential's
-   scope or the plan, not at the id.
-3. **Don't pass `-x/--suppress-exit-code` in CI.** It makes a failed flow
-   report success to the pipeline, which removes the only thing gating it.
-4. **Don't put reusable inputs on the command line.** A payload that matters
-   more than once belongs in a Start-block scenario, where it travels with the
-   flow.
-
-## Reference
-
-- [Flows CLI flags](reference/flow_cli_flags.md) — full flag tables per
-  subcommand, the BETA dataset-iteration flags, and the short-flag collisions
-  between subcommands. Read before composing a command with flags not shown
-  above.
-- `bootstrap` skill — CLI install, login, and the workspace id these commands
-  require.
-- `api-discovery` skill — `postman search flows` finds a flow by text across
-  Postman, a different dataset from `flows list`'s workspace enumeration.
+A Flow saves an API workflow as a graph of blocks. Named inputs make runs
+repeatable, deployment makes the workflow callable by other systems, and
+block-level run evidence shows where it failed. These benefits come from
+different execution paths; choosing the wrong path can produce a passing
+result that says nothing about the caller's actual workflow.
+
+1. Choose the artifact the user means. `postman flows run <path>` executes a
+   local JSON file; `postman flows trigger <flow-id>` calls the deployed
+   webhook, including trigger auth and configuration. Local View and Cloud
+   View artifacts are isolated: local files cannot be assumed deployable,
+   and `workspace pull` does not download them. The desktop app's Git-connected
+   Local View produces those files. Check current local-run entitlement before
+   building CI around it; a deployed flow is not a substitute for a different
+   local artifact.
+2. Resolve hosted IDs through `flows list --workspace <id>`; there is no
+   local flow mapping in `.postman/resources.yaml`. Reuse its `workspace.id`
+   when applicable or use **api-discovery** for cross-workspace search.
+   Resolve ambiguous names before mutating a flow. Use returned flow/run IDs
+   verbatim; their spelling is not a reliable validation rule.
+3. Reuse a Start-block scenario when the same payload should travel with the
+   flow. `-s` supplies payload, headers, and query; explicit headers/query and
+   `-i`/`-f` override those values. One-off inputs belong on the invocation.
+   For deployed flows with side effects, `trigger --dry-run` lets you inspect
+   the resolved call first; keep secrets masked.
+4. Deploy when the workflow needs a callable URL. The hosted flow needs a
+   Start block configured for an API request trigger and a Response block;
+   changing CLI flags cannot repair missing canvas configuration. Resolve
+   the path suffix and intended authentication before deploying. Deploy/auth
+   changes affect other callers; a scoped user request authorizes that change,
+   while unrequested public exposure or auth removal needs consent.
+5. Inspect the deployed URL and whether its trigger is enabled. A deployed
+   but disabled flow is not ready to receive calls; `flows update <id>
+   --trigger on` enables it when intended. If deployment is part of a requested
+   run, continue through triggering and capture the Run ID. A request only to
+   deploy does not authorize executing unrelated downstream writes.
+6. Diagnose from run evidence. A trigger response is the Response block's
+   output: HTTP 200 can coexist with another failed block. Use
+   `flows get-run --run-id <id>` and add `--logs` or a block filter when the
+   summary does not explain it. `flows list-runs --workspace <id> --flow <id>`
+   recovers missing run IDs; widen its time range before concluding absence.
+7. In CI, preserve the local run's failure exit code and persist its result
+   and reports. Connector blocks need `--workspace` even for a local file;
+   otherwise failure occurs inside the graph. An access denial across several
+   workspaces points toward credentials or entitlement, not an empty flow list.
+   Use **bootstrap** for unresolved CLI/authentication setup.
+
+Read [command options](reference/flow_cli_flags.md) for inputs, reporters,
+dataset iteration, and flag collisions; check installed subcommand `-h` before
+carrying an option between commands.
+
+## Verification
+
+Report which artifact and path executed, its inputs/scenario without secrets,
+and the actual result. For a trigger, retain the Run ID; for a failure, name
+the failing block and cause. For a deployment, report URL, auth, and enabled
+state separately from any execution result.
Full technical diff · 3 changed fields

changed /description

BEFORE
"Runs, deploys, and debugs Postman Flows from the command line — executing a flow file locally, triggering a deployed flow over its webhook, deploying one so it becomes callable, and tracing a failed run to the block that broke. Use when the user names a flow and an action (\"run the Checkout flow\", \"deploy this flow\", \"why did that flow run fail\", \"what flows do I have\"). Covers `postman flows list`, `run`, `trigger`, `deploy`, `update`, `list-runs`, and `get-run`."
AFTER
"Use when running, deploying, or debugging an existing Postman Flow. Distinguishes local graph execution from a deployed webhook, reuses named input scenarios, and follows a run to the failing block rather than treating an HTTP response as whole-flow success. Use for requests such as \"why did this flow fail\"."

changed /included_files

BEFORE
[
  {
    "relative_path": "reference/flow_cli_flags.md",
    "size_in_bytes": 5616
  }
]
AFTER
[
  {
    "relative_path": "reference/flow_cli_flags.md",
    "size_in_bytes": 5698
  }
]

changed /skill_md_contents

BEFORE
"---\nname: flows\ndescription: Runs, deploys, and debugs Postman Flows from the command line — executing a flow file locally, triggering a deployed flow over its webhook, deploying one so it becomes callable, and tracing a failed run to the block that broke. Use when the user names a flow and an action (\"run the Checkout flow\", \"deploy this flow\", \"why did that flow run fail\", \"what flows do I have\"). Covers `postman flows list`, `run`, `trigger`, `deploy`, `update`, `list-runs`, and `get-run`.\n---\n\n# Postman Flows\n\n## Overview\n\nListing flows, running them, deploying them so they become callable, and\ntracing a failed run to the block that caused it — all through\n`postman flows`.\n\n## Core knowledge\n\nA flow is a graph of blocks, not a script. That single fact drives the rest of\nthis skill: a flow has two independent execution paths, and its HTTP response\ndescribes one block rather than the whole graph, so debugging takes a\ndifferent command than running.\n\n### Local file vs deployed artifact\n\n`run` and `trigger` are not two ways to execute one flow. Postman Flows has\ntwo Native Git modes, and they are isolated from each other:\n\n- **Cloud View** (the default) syncs flows to Postman Cloud, which is what\n  makes them shareable and **deployable** — so Cloud View is the only side\n  `deploy`, `trigger`, `update`, `list-runs` and `get-run` ever address.\n- **Local View** stores flows as JSON in a local Git repo, updated as they are\n  edited. Those flows **cannot be shared or deployed**, have no snapshots, and\n  are isolated from the flows in Cloud View.\n\n| | `flows run <path>` | `flows trigger <flowId>` |\n| --- | --- | --- |\n| Executes | a flow JSON file on this machine | the cloud-deployed flow, via its webhook |\n| Returns | status, output, test results, exit code | Run ID + HTTP status + response body |\n| Observability | own stdout, `--output`, `--reporters` | `get-run`, per block |\n| Environment file | `-e/--environment` | not supported |\n\n`run` exits nonzero on failure, which is what lets a CI job gate on it.\n`trigger` goes through the real webhook URL, so it exercises the deployed path\nend-to-end — auth and trigger configuration included — and registers a cloud\nrun that `get-run` can explain block by block.\n\n`postman init` scaffolds `postman/flows/`, and Postman's `flows run` examples\nuse that path. Note what puts files there: the Git-connected Flows experience\nis **desktop-app only**, so `postman/flows/*.json` is written by the desktop\napp's Local View, not by the CLI — `workspace push`/`pull` carry no flows\nhandling whatever else they sync. Don't tell a user to `workspace pull` to\nobtain a flow file.\n\n### What deploying buys, and what it requires\n\nDeploying puts the flow in Postman's cloud and attaches an HTTP trigger, which\nis what makes it reachable by schedules, webhooks, third-party apps, and other\nAPIs — the flow stops being something a human opens and becomes callable\ninfrastructure.\n\nThree preconditions sit outside the CLI, so no flag or retry satisfies them:\nthe flow must be in Cloud View, its Start block must be configured with an API\nrequest trigger, and its canvas must have a Response block. Check these before\nre-running a failed deploy with different arguments.\n\n`--path` is a suffix appended to a generated base URL, not a full URL.\n\n### Inputs: `-i` versus a scenario\n\nA scenario is a named input set stored **in the flow definition**, generated\nwhen someone adds an input to the Start block. Because it travels with the\nflow, `-s \"Staging\"` is reproducible across invocations and across people,\nwhere `-i key=value` is per-invocation. Start-block inputs can be declared\nsecret, which is what `--show-secrets` unmasks in dry-run output.\n\nPrecedence: `-s` supplies payload, headers, and query; `--headers` and\n`--query` override it; `-i`/`-f` override its values.\n\n### Identifiers\n\n`flows list` is the only way to turn a flow name into an id —\n`.postman/resources.yaml` maps collections to cloud ids but has no flows\nsection, so there is nothing local to read. Both `list` and `list-runs`\n**require** `-w/--workspace`; take that id from `workspace.id` in\n`.postman/resources.yaml`, which `bootstrap` records.\n\nRun IDs have no single documented shape (`session-abc123` and `main/1a123ab1`\nboth appear in Postman's own material). Use whatever `trigger` or `list-runs`\nprinted, verbatim, and apply the same rule to flow ids.\n\n### Plan and permission gating\n\n`flows run` is documented as Enterprise-only, and the cloud subcommands need\n`postman login`. `Access denied. Please check your permissions for the\nspecified resource.` on *every* workspace is a credential-scope or plan\nsignal, not a wrong-workspace signal — and never means the workspace has no\nflows.\n\n## Deploying: propose, confirm, then verify\n\nDeploy is the one multi-phase workflow here, because it is mutating and\nbecause its result is only half-useful without the follow-up check.\n\n1. **Resolve the id.** `flows list --workspace <id> --filter \"Checkout\"`. On\n   multiple matches, show name + id + last-updated and let the user pick.\n2. **Propose the path.** Derive it from the flow name — \"Checkout\" →\n   `/checkout` — so the user is confirming a concrete value rather than\n   answering an open question. Raise `--auth` here if the trigger will be\n   reachable by anyone who learns the URL.\n3. **Confirm, then run** `flows deploy <flowId> --path /checkout`.\n4. **Report the Trigger URL and whether the trigger is enabled.** A deploy can\n   land with the trigger off, which looks identical to a broken deploy at call\n   time. If it is off, offer `flows update <flowId> --trigger on`.\n\nWhen the deploy existed only so the flow could be run, trigger it in the same\nturn and report the Run ID — deploy-then-trigger is one job.\n\n## Running and triggering\n\nShow the command before running it, and map the request onto flags: inputs to\n`-i`, a payload file to `-f`, query to `-q`, headers to `--headers`, a named\nscenario to `-s`.\n\n```bash\npostman flows run postman/flows/checkout.json -i amount=4200\npostman flows trigger <flowId> -i amount=4200\n```\n\n`run` is documented as Enterprise-only, so check the plan before building a\nworkflow on the local path. Where the flow is already in Cloud View, `trigger`\ncovers the gap; a Local View flow has no such fallback, since it cannot be\ndeployed.\n\n`-n/--dry-run` on `trigger` prints the resolved URL and payload without\nsending — worth reaching for when a flow writes to real systems, since a\ntrigger is not a read-only probe. For CI, `--output json` and `--reporters\nhtml` persist results, and `--workspace` is required if the flow contains\nconnector blocks (it fails at the block, not at startup).\n\nReport the Run ID on every trigger, including successes; it is the only handle\non the run afterwards.\n\nTwo failures are recoverable rather than terminal, and both recover through a\nconfirmed mutation. A 404 hinting `To deploy it, run: postman flows deploy`\nmeans the flow exists but was never deployed — offer the deploy above, then\nre-trigger. A disabled-trigger error means it is deployed but not accepting\ncalls — offer `flows update <flowId> --trigger on`, then trigger.\n\n## Debugging a run\n\nA trigger's response body is the Response block's output. A flow can answer\n200 with a failed block upstream, and a 500 says nothing about which block\nproduced it — so read the run, not the response.\n\n```bash\npostman flows list-runs --workspace <id> --flow <flowId> --range 3d\npostman flows get-run --run-id <runId> --logs\n```\n\n`list-runs` recovers a Run ID nobody wrote down; its `--range` defaults to\n`1h`, so widen it before concluding a run is missing. Start `get-run` without\n`--logs` and add them when the summary does not explain the failure;\n`--filter` narrows to a block-id prefix.\n\nReport the failing block, the reason, and the run status:\n\n```\nRun session-abc123 — failed\n  Failing block: \"HTTP Request (Get Orders)\"\n  Reason:        downstream returned 504 after 10s timeout\n  Status:        error\n```\n\n## Critical Rules\n\n1. **Resolve ids, never infer them.** A name is not an id, and no id format is\n   documented well enough to validate against. Ambiguous name → present\n   candidates and ask.\n2. **`deploy` and `update` need explicit confirmation.** They change what the\n   flow does for every caller: a deploy exposes a trigger path, `--trigger\n   on|off` starts or stops accepting calls, and `--auth off` removes\n   authentication from a live trigger.\n3. **Report the failing block, not the log.** `--logs` output is input to your\n   analysis; the user needs the block, the reason, and the status.\n4. **Surface CLI errors verbatim** and read them literally. \"Flow file not\n   found\", a required-option error, and \"Access denied\" have three different\n   fixes, and only the last is about permissions.\n5. **A missing or unauthenticated CLI is `bootstrap`'s job** — route there\n   rather than improvising an install or a second login.\n\n## Anti-patterns\n\n1. **Don't substitute `run` for `trigger` when a flow isn't deployed.** A\n   green local run says nothing about the deployed path a caller hits, and a\n   Local View flow cannot be deployed at all.\n2. **Don't hunt for a different workspace id when access is denied across\n   every workspace you try.** A blanket denial points at the credential's\n   scope or the plan, not at the id.\n3. **Don't pass `-x/--suppress-exit-code` in CI.** It makes a failed flow\n   report success to the pipeline, which removes the only thing gating it.\n4. **Don't put reusable inputs on the command line.** A payload that matters\n   more than once belongs in a Start-block scenario, where it travels with the\n   flow.\n\n## Reference\n\n- [Flows CLI flags](reference/flow_cli_flags.md) — full flag tables per\n  subcommand, the BETA dataset-iteration flags, and the short-flag collisions\n  between subcommands. Read before composing a command with flags not shown\n  above.\n- `bootstrap` skill — CLI install, login, and the workspace id these commands\n  require.\n- `api-discovery` skill — `postman search flows` finds a flow by text across\n  Postman, a different dataset from `flows list`'s workspace enumeration.\n"
AFTER
"---\nname: flows\ndescription: Use when running, deploying, or debugging an existing Postman Flow. Distinguishes local graph execution from a deployed webhook, reuses named input scenarios, and follows a run to the failing block rather than treating an HTTP response as whole-flow success. Use for requests such as \"why did this flow fail\".\n---\n\n# Postman Flows\n\nA Flow saves an API workflow as a graph of blocks. Named inputs make runs\nrepeatable, deployment makes the workflow callable by other systems, and\nblock-level run evidence shows where it failed. These benefits come from\ndifferent execution paths; choosing the wrong path can produce a passing\nresult that says nothing about the caller's actual workflow.\n\n1. Choose the artifact the user means. `postman flows run <path>` executes a\n   local JSON file; `postman flows trigger <flow-id>` calls the deployed\n   webhook, including trigger auth and configuration. Local View and Cloud\n   View artifacts are isolated: local files cannot be assumed deployable,\n   and `workspace pull` does not download them. The desktop app's Git-connected\n   Local View produces those files. Check current local-run entitlement before\n   building CI around it; a deployed flow is not a substitute for a different\n   local artifact.\n2. Resolve hosted IDs through `flows list --workspace <id>`; there is no\n   local flow mapping in `.postman/resources.yaml`. Reuse its `workspace.id`\n   when applicable or use **api-discovery** for cross-workspace search.\n   Resolve ambiguous names before mutating a flow. Use returned flow/run IDs\n   verbatim; their spelling is not a reliable validation rule.\n3. Reuse a Start-block scenario when the same payload should travel with the\n   flow. `-s` supplies payload, headers, and query; explicit headers/query and\n   `-i`/`-f` override those values. One-off inputs belong on the invocation.\n   For deployed flows with side effects, `trigger --dry-run` lets you inspect\n   the resolved call first; keep secrets masked.\n4. Deploy when the workflow needs a callable URL. The hosted flow needs a\n   Start block configured for an API request trigger and a Response block;\n   changing CLI flags cannot repair missing canvas configuration. Resolve\n   the path suffix and intended authentication before deploying. Deploy/auth\n   changes affect other callers; a scoped user request authorizes that change,\n   while unrequested public exposure or auth removal needs consent.\n5. Inspect the deployed URL and whether its trigger is enabled. A deployed\n   but disabled flow is not ready to receive calls; `flows update <id>\n   --trigger on` enables it when intended. If deployment is part of a requested\n   run, continue through triggering and capture the Run ID. A request only to\n   deploy does not authorize executing unrelated downstream writes.\n6. Diagnose from run evidence. A trigger response is the Response block's\n   output: HTTP 200 can coexist with another failed block. Use\n   `flows get-run --run-id <id>` and add `--logs` or a block filter when the\n   summary does not explain it. `flows list-runs --workspace <id> --flow <id>`\n   recovers missing run IDs; widen its time range before concluding absence.\n7. In CI, preserve the local run's failure exit code and persist its result\n   and reports. Connector blocks need `--workspace` even for a local file;\n   otherwise failure occurs inside the graph. An access denial across several\n   workspaces points toward credentials or entitlement, not an empty flow list.\n   Use **bootstrap** for unresolved CLI/authentication setup.\n\nRead [command options](reference/flow_cli_flags.md) for inputs, reporters,\ndataset iteration, and flag collisions; check installed subcommand `-h` before\ncarrying an option between commands.\n\n## Verification\n\nReport which artifact and path executed, its inputs/scenario without secrets,\nand the actual result. For a trigger, retain the Run ID; for a failure, name\nthe failing block and cause. For a deployment, report URL, auth, and enabled\nstate separately from any execution result.\n"
Full snapshot data
{
  "description": "Use when running, deploying, or debugging an existing Postman Flow. Distinguishes local graph execution from a deployed webhook, reuses named input scenarios, and follows a run to the failing block rather than treating an HTTP response as whole-flow success. Use for requests such as \"why did this flow fail\".",
  "included_files": [
    {
      "relative_path": "reference/flow_cli_flags.md",
      "size_in_bytes": 5698
    }
  ],
  "name": "flows",
  "skill_md_contents": "---\nname: flows\ndescription: Use when running, deploying, or debugging an existing Postman Flow. Distinguishes local graph execution from a deployed webhook, reuses named input scenarios, and follows a run to the failing block rather than treating an HTTP response as whole-flow success. Use for requests such as \"why did this flow fail\".\n---\n\n# Postman Flows\n\nA Flow saves an API workflow as a graph of blocks. Named inputs make runs\nrepeatable, deployment makes the workflow callable by other systems, and\nblock-level run evidence shows where it failed. These benefits come from\ndifferent execution paths; choosing the wrong path can produce a passing\nresult that says nothing about the caller's actual workflow.\n\n1. Choose the artifact the user means. `postman flows run <path>` executes a\n   local JSON file; `postman flows trigger <flow-id>` calls the deployed\n   webhook, including trigger auth and configuration. Local View and Cloud\n   View artifacts are isolated: local files cannot be assumed deployable,\n   and `workspace pull` does not download them. The desktop app's Git-connected\n   Local View produces those files. Check current local-run entitlement before\n   building CI around it; a deployed flow is not a substitute for a different\n   local artifact.\n2. Resolve hosted IDs through `flows list --workspace <id>`; there is no\n   local flow mapping in `.postman/resources.yaml`. Reuse its `workspace.id`\n   when applicable or use **api-discovery** for cross-workspace search.\n   Resolve ambiguous names before mutating a flow. Use returned flow/run IDs\n   verbatim; their spelling is not a reliable validation rule.\n3. Reuse a Start-block scenario when the same payload should travel with the\n   flow. `-s` supplies payload, headers, and query; explicit headers/query and\n   `-i`/`-f` override those values. One-off inputs belong on the invocation.\n   For deployed flows with side effects, `trigger --dry-run` lets you inspect\n   the resolved call first; keep secrets masked.\n4. Deploy when the workflow needs a callable URL. The hosted flow needs a\n   Start block configured for an API request trigger and a Response block;\n   changing CLI flags cannot repair missing canvas configuration. Resolve\n   the path suffix and intended authentication before deploying. Deploy/auth\n   changes affect other callers; a scoped user request authorizes that change,\n   while unrequested public exposure or auth removal needs consent.\n5. Inspect the deployed URL and whether its trigger is enabled. A deployed\n   but disabled flow is not ready to receive calls; `flows update <id>\n   --trigger on` enables it when intended. If deployment is part of a requested\n   run, continue through triggering and capture the Run ID. A request only to\n   deploy does not authorize executing unrelated downstream writes.\n6. Diagnose from run evidence. A trigger response is the Response block's\n   output: HTTP 200 can coexist with another failed block. Use\n   `flows get-run --run-id <id>` and add `--logs` or a block filter when the\n   summary does not explain it. `flows list-runs --workspace <id> --flow <id>`\n   recovers missing run IDs; widen its time range before concluding absence.\n7. In CI, preserve the local run's failure exit code and persist its result\n   and reports. Connector blocks need `--workspace` even for a local file;\n   otherwise failure occurs inside the graph. An access denial across several\n   workspaces points toward credentials or entitlement, not an empty flow list.\n   Use **bootstrap** for unresolved CLI/authentication setup.\n\nRead [command options](reference/flow_cli_flags.md) for inputs, reporters,\ndataset iteration, and flag collisions; check installed subcommand `-h` before\ncarrying an option between commands.\n\n## Verification\n\nReport which artifact and path executed, its inputs/scenario without secrets,\nand the actual result. For a trigger, retain the Run ID; for a failure, name\nthe failing block and cause. For a deployment, report URL, auth, and enabled\nstate separately from any execution result.\n"
}

SHA-256 of public snapshot: 601ae43c1b7aa540d70068bba0a470ee254571e44ffbd40f139c7ef697dc0958