# Any webhook, on your phone, instantly.

> Turn any webhook into a phone push. POST from Stripe, GitHub, Zapier, or n8n to a Pocket Alert URL and read the event on your phone in under a second.

<!-- source: https://pocketalert.app/use-cases/webhook-notifications -->

Pocket Alert turns any HTTP webhook into a push notification on your iPhone or Android. Point Stripe, GitHub, n8n, or your own backend at your receive URL and the event lands on your phone in under a second — no middleware, no email digest.

## Three steps to your first webhook push

1. **Create a webhook** — Create a webhook with a GJSON message template on the Webhooks page.
2. **POST an event** — Copy the receive URL and POST a JSON body to it from any service or curl.
3. **Receive the push** — Your phone buzzes. GJSON placeholders pull nested payload fields into the push.

## Webhooks that reach your phone

Pocket Alert turns the webhooks you already emit into push notifications on your phone.

- **Plain HTTP, no SDK** — One HTTP POST is all it takes. The payload becomes a push as soon as it lands.
- **Connect anything** — Stripe, GitHub, Sentry, Zapier, Make, n8n, IFTTT, and your own backend all speak webhooks. They all work here.
- **Map any payload** — GJSON placeholders in the message template pull values from nested JSON, so the push shows only what matters.
- **Skip the middleware** — Point the source service straight at your URL, or route through automation when you need to reshape the data.
- **Scoped & secure** — Each receive URL is scoped to one webhook and application, has an unguessable slug, and runs over HTTPS.
- **Sub-second delivery** — A received webhook reaches your iPhone or Android in under a second.

## Send your first webhook

### 1. Create a webhook

On the [Webhooks](https://pocketalert.app/webhooks) page, or via the API, create a webhook with a `name`, an `application_id`, and a `message` template that uses GJSON placeholders for the incoming payload:

```
curl -X POST 'https://api.pocketalert.app/v1/webhooks' \
  -H 'Token: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"name":"GitHub Push","message":"Push to %repository.name%: %head_commit.message%","application_id":"qm47b9pzxzxg"}'
```

### 2. Copy the receive URL

Pocket Alert returns an inbound URL with a unique slug. Any service POSTs its own JSON here:

```
https://p4a.me/wh/1234abcd
```

### 3. Point a service at it

Paste the receive URL into a Stripe webhook, a GitHub webhook, or a Make / n8n HTTP step. When it fires, Pocket Alert renders your template against the payload. GJSON paths reach nested fields (`%object.field%`), array items (`%items.0.name%`), counts (`%users.#%`), or the whole body (`*`). The [webhook settings docs](https://info.pocketalert.app/api/webhooks/settings.html) cover every placeholder.

### 4. Set the volume

If the sender includes a `"level"` field in its JSON — from `silent` up to `critical` — the push takes that priority, so a payment failure can [break through Do Not Disturb](https://pocketalert.app/use-cases/critical-alerts) while a routine ping stays quiet. Or set a `default_level` on the webhook once and forget it.

## FAQ

### How does webhook to push work?

You create a webhook in Pocket Alert with a message template, and you get an inbound receive URL like https://p4a.me/wh/1234abcd. Any service that sends an HTTP POST can hit it: Stripe, GitHub, Make, n8n, or your own backend. The payload renders into a push on your phone.

### Can I shape the notification from a custom payload?

Yes. The message template uses GJSON placeholders such as %repository.name% or %head_commit.message% to pull values out of nested JSON, so a Stripe event or a GitHub payload renders the exact fields you care about.

### Which services can I connect?

Anything that sends HTTP requests works: Stripe, GitHub, GitLab, Sentry, Zapier, Make.com, n8n, IFTTT, and your own scripts.

### Do I need Zapier or Make in between?

Point the source service straight at your Pocket Alert webhook URL. If you need to transform the data first, you can still route it through Zapier or Make.

### Is the webhook URL secure?

Each receive URL belongs to one webhook and one application, and its slug is unguessable. Traffic runs over HTTPS, and you can delete and recreate the webhook anytime from the Webhooks page.

### Can a webhook control how loud the notification is?

Yes. Include a "level" field in the JSON the service posts — silent, low, default, high, or critical — and the push takes that priority. A critical webhook breaks through Do Not Disturb on Android and cuts through Focus on iPhone. You can also set a default_level on the webhook itself, so everything it forwards arrives at the right volume without touching the sender.
