# update_site_webhook

Source: https://modulify.ai/docs/mcp/webhooks/update-site-webhook

Changes the name, destination URL, payload type or event list of one webhook.

- Title: Edit a webhook
- Scope: `config:write`
- Access: Makes changes

Only the fields you send change, and the rest keep their current values. `list_site_webhooks` returns only the host, so leave `url` out unless you have a new one, and never rebuild the URL from the host.

The event list you send replaces the old one, and at least one event is required. An empty name resets the label to the destination host. Changing the URL does not rotate the signing secret, so the receiving end keeps verifying with the secret it already has.

The edited webhook comes back with its destination as `Host` only. See [Webhooks](https://modulify.ai/docs/automations/webhooks#add-a-webhook).

## Inputs

| Input | Type | Required | Description |
| --- | --- | --- | --- |
| `projectId` | string | Yes | The site id. |
| `webhookId` | string | Yes | The webhook id from `list_site_webhooks`. |
| `url` | string | No | The new destination URL. It must use `https` and be at most 2,048 characters, and private and loopback addresses are refused. Leave it out to keep the current one. |
| `events` | array of strings | No | The full event list, from `publish.succeeded`, `publish.failed` and `publish.cancelled`, which replaces the old one. At least one is required, and an event outside that list is refused. Leave it out to keep the current events. |
| `name` | string | No | The new label, cut to 64 characters. Leave it out to keep the current one. |
| `type` | string | No | The new payload shape, `raw`, `slack`, `discord` or `ping`. Leave it out to keep the current one. |