# Connect a custom webhook

> Connect anything that speaks HTTP, without waiting for us to build an integration for it.

Source: https://infranest.io/docs/connect-custom-webhook
Last updated: 2026-09-19

---

Connect any tool that can send or receive web requests to InfraNest, even if we don't have a ready-made integration for it. This is for anyone who wants events sent to their own system, or wants another tool to control InfraNest.

## Overview
- Events can go out to a URL you own, and a URL we generate lets any tool trigger an automation here.
- You can set up one direction, or both — sending out and receiving in are independent.
- No credential or API key is needed for either direction.

## Which direction do you need?
- If something happens in InfraNest and you want your system told about it, you need to **send events out**.
- If something happens in your system and you want InfraNest to react, you need to **let something trigger InfraNest**.

Incoming URLs aren't tied to one tool — anything that can send a request can use one — so they live here on the Custom webhook page, and the Zapier, Make and n8n pages point back to it.

## Send events out
1. Go to **Integrations → Custom webhook**.
2. Under **Where events go**, select **Add endpoint** and paste the URL your own system listens on.
3. Copy the signing secret shown once after saving, and give it to your receiver so it can verify the request really came from InfraNest.
4. Select **Send test event** and pick an event to imitate, so you can confirm your receiver accepts it before you rely on it.
5. Choose what gets sent: under **Start an automation that posts to Custom webhook**, pick a starting point or write your own rule.
<!-- screenshot: connect-custom-webhook -->

<!-- docs-screenshots:start:connect-custom-webhook -->

![Connect a custom webhook](/media/4dc1e5a2-7cce-42ec-a7ca-04005ec153a6)

<!-- docs-screenshots:end:connect-custom-webhook -->

> [!NOTE]
> Adding the endpoint doesn't send anything on its own — it only says where to send. An automation decides what gets sent, which is why step 5 matters. One rule can cover every event, or you can narrow it to the ones you care about.

## Let something trigger InfraNest
1. Go to **Integrations → Custom webhook → URLs we give you** and select **Add incoming URL**.
2. Give it a Name you'll recognise later — you pick it by name when writing the rule.
3. Optionally set a Shared secret (Optional). With one set, InfraNest only accepts calls that send it in the request header, so a leaked URL on its own isn't enough.
4. Copy Your URL and paste it into the other tool, set to send requests.
5. Back in InfraNest, use **Start an automation Custom webhook can trigger** and add what should happen — open a maintenance window, pause a monitor, resolve an incident.

## Good to know
- No credential is needed. You supply a URL for InfraNest to post to, and InfraNest generates a URL for you. There is no API token to create.
- The signing secret is shown once and never again. You can rotate it later; the old one stops working immediately.
- Your incoming URL works like a password. Anyone holding it can trigger your organization's automations — set a shared secret, and use Regenerate URL if it leaks.
- Accept calls to this URL switches one incoming URL off without deleting it or touching the others.
- Both directions keep a delivery log under Recent deliveries, so you can see what went out, what arrived, and what your endpoint answered.
- You can add more than one endpoint — for example one for incidents and another for domains.
- This integration only moves events. It doesn't read or manage servers, DNS or domains — that stays with the provider integrations.

> [!WARNING]
> Your incoming URL acts like a password — anyone with it can trigger automations in your account. If it leaks, use Regenerate URL right away.

## Troubleshooting
**Nothing arrives at my endpoint.** The endpoint alone is only a destination. Check that an automation actually posts to it, then look at Recent deliveries to see whether InfraNest sent anything at all.

**My receiver rejects the delivery.** It's verifying the signature with the wrong secret. The signing secret is shown once when the endpoint is saved — rotate it and copy the new one into your receiver.

**My tool doesn't trigger InfraNest.** Confirm it sends requests to the exact incoming URL, and that the shared secret — if you set one — is included correctly. If the URL was regenerated, the old one stops working immediately.
