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

# Postman Alert Integration

> Send Postman Monitor run results to Flashduty On-call through a Postman custom webhook.

Use the Postman webhook integration "Post monitoring results" to send the result of each Postman Monitor run to Flashduty On-call. Each Monitor maps to one Flashduty alert: it triggers when a run has failed tests or request errors, and recovers when a later run passes completely.

<div className="hide">
  ## In Flashduty On-call

  ***

  Get the push URL in either of the following ways.

  ### Use a dedicated integration

  1. In the Flashduty console, go to **Channels** and open a channel
  2. Go to **Settings** → **Integration data** → **Dedicated integrations** and click **Add an integration**
  3. Select **Postman** and click **Save**
  4. Open the generated integration card and copy the **push URL**

  ### Use a shared integration

  1. In the Flashduty console, go to **Integration Center → Alert Events**
  2. Select **Postman** and enter an integration name
  3. Configure the default route and choose a channel; you can add more rules under **Routes** after the integration is created
  4. Click **Save** and copy the generated **push URL**
</div>

## In Postman

***

<Steps>
  <Step title="Add the webhook integration">
    1. Sign in to Postman and create a Monitor for the collection you want to watch (a workspace's **Monitors** panel → **Create**). Postman's Free plan offers hourly schedules at the shortest
    2. Open **Integrations**, select **Custom Webhooks**, open the **Connections** tab, and click **Add integration** next to **Post monitoring results**
    3. Enter a **Nickname**, select the workspace that contains the Monitor, then select the Monitor whose results you want to send
    4. Paste the full Flashduty push URL as the webhook URL; it must include `integration_key`
    5. Choose when to notify:
       * **Notify for all completed monitor runs** (choose this one): every run is sent. A failing run triggers the alert and a passing run recovers it
       * **Notify for 3 failures and then first success**: Postman describes this only by the option name and does not say which runs are sent, so a passing run may not be delivered when you need it, the alert may never recover, and it triggers later

    The Postman payload has no status field and Flashduty recovers an alert from a passing run, so recovery works reliably only with **Notify for all completed monitor runs**.
    6\. Click **Add Integration**

    Add one webhook integration per Monitor.
  </Step>

  <Step title="Verify">
    1. Make a test in the Monitor fail (for example, change an assertion), then run the Monitor from its page (**Run Now**) or wait for the next scheduled run
    2. Confirm that Flashduty shows an active alert
    3. Revert the assertion, run the Monitor again, and confirm the alert recovers

    The Postman documentation does not describe a test delivery for this webhook.
  </Step>
</Steps>

## Alert Key

***

Flashduty uses `monitor_uid` (the Monitor's unique ID) as the Alert Key, so failure and recovery deliveries for the same Monitor share one key. Changing the Monitor name, test counts or latency does not change it. A request without `monitor_uid` is rejected.

## Status and severity

***

The Postman payload has no status field, so Flashduty reads the run result from the counts in `metrics`:

| Condition | Status | Flashduty severity |
| :- | :- | :- |
| `metrics.errorCount` greater than 0 (request errors such as connection failures or timeouts) | Trigger | Critical |
| `errorCount` is 0 and `failedTestCount` greater than 0 (assertion failures) | Trigger | Warning |
| `errorCount` and `failedTestCount` are both 0 | Recovery | - |

A request without the `metrics` object, or with `errorCount` or `failedTestCount` missing or not a non-negative integer, is rejected and is never treated as a passing run. A passing run for a Monitor with no active alert creates no new alert.

## Labels

***

| Label | Source |
| :- | :- |
| `check` / `monitor_name` | Monitor name |
| `monitor_uid` | Monitor unique ID |
| `resource` / `collection_name` | Collection name |
| `environment_name` | Environment name |
| `failed_tests` / `passed_tests` | Number of failed and passed tests |
| `errors` / `warnings` | Number of request errors and warnings |
| `request_count` | Number of requests |
| `total_latency_ms` | Total latency of the run in milliseconds |

The user who triggered the run (`user_id`, `user_name`) is not written to labels.

## Troubleshooting

***

* **Flashduty returns an invalid parameter error**: check that the URL is complete and includes `integration_key`
* **The alert does not recover**: confirm that the Monitor later has a run with every test passing and no request errors. make sure the notification mode is **Notify for all completed monitor runs**
* **No deliveries arrive**: confirm the webhook integration points at the right workspace and Monitor; each Monitor needs its own integration

For field details, see [Postman Webhooks](https://learning.postman.com/docs/integrations/webhooks/).
