# Any tool (JSON webhook) to Pagerless

> Paste one URL into Any tool (JSON webhook). Pagerless decides who to wake, explains it in plain words and closes the problem when Any tool (JSON webhook) says it's fixed.

URL: https://pagerless.dev/integrations/generic-webhook
Updated: 2026-10-22

## Set up

Your URL is in the Pagerless app under Other tools, with the key filled in:

```text
https://events.pagerless.dev/v1/hooks/generic/<your ingest key>
```

1. **Open your tool's webhook or HTTP action** In Any tool (JSON webhook).
2. **POST JSON to your Pagerless URL when an alert fires.** 
3. **POST the same id with status resolved when it clears.** 

```json
{"id": "disk-db1", "status": "firing", "title": "Disk almost full on db-1", "severity": "critical"}
{"id": "disk-db1", "status": "resolved"}
```

## What happens

| When | Pagerless |
| --- | --- |
| Fires | Status firing (title required); up to 100 alerts in `{"alerts": [...]}` |
| Clears | The same id with status resolved |
| How loud | Wake, tell or log, or the tool's own word (critical, warning, info…) |
| Proof it's you | Optional `X-Pagerless-Signature: sha256=<hex>`. |

## Choosing who gets woken

| Rule | Example |
| --- | --- |
| Name rules on the URL | `?wake=prod-*&log=*-staging` (globs, case-insensitive) |
| The tool's own severity | critical, p1, sev1, fatal wake; error, warning tell; info, low log |
| A default on the URL | `?level=wake` (or tell, log). Without one: tell. |

`?service=` and `?env=` set the service and environment shown on the problem.
