Skip to main content
Glama

update_webhook

Destructive

Update a webhook's name, https URL, subscribed events or status (active/inactive to pause and resume). Only supplied fields change; events are replaced wholesale. Custom headers cannot be set here: they usually hold receiver credentials, so never ask the user for header values and give them the dashboardUrl from the response instead, where headers are edited. Existing headers are kept and their values are returned as [hidden]. Mutating; use list_webhooks to find the id.

Input Schema

NameRequiredDescriptionDefault
urlNoThe https URL Checkout Page POSTs event payloads to. Plain http is rejected.
nameNoInternal label for the endpoint, shown in the dashboard.
eventsNoEvents this endpoint receives. At least one is required; duplicates are ignored.
statusNoSet `inactive` to pause deliveries without deleting the endpoint, `active` to resume. `failed` is system-managed and cannot be set.
webhookIdYesThe webhook to update. Use list_webhooks to find the id.

Output Schema

NameRequiredDescriptionDefault
dataYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • changedInput schema / properties / events / items / description
      Previous value: -"An event a webhook can subscribe to. Valid values: customer.created, customer.updated, payment.abandoned, payment.created, payment.paid, payment.canceled, booking.abandoned, booking.created, booking.paid, booking.canceled, ticket.created, submission.created, submission.updated, submission.canceled, checkout_page.created, checkout_page.updated, product.created, product.updated, subscription.abandoned, subscription.created, subscription.trialing, subscription.scheduled, subscription.active, subscription.completed, subscription.canceled, subscription.expired."New value: +"An event a webhook can subscribe to. Valid values: customer.created, customer.updated, payment.abandoned, payment.created, payment.paid, payment.canceled, booking.abandoned, booking.created, booking.paid, booking.canceled, ticket.created, ticket.canceled, submission.created, submission.updated, submission.canceled, checkout_page.created, checkout_page.updated, product.created, product.updated, subscription.abandoned, subscription.created, subscription.trialing, subscription.scheduled, subscription.active, subscription.completed, subscription.canceled, subscription.expired."
    • changedInput schema / properties / events / items / enum
      Previous value: -[
      -  "customer.created",
      -  "customer.updated",
      -  "payment.abandoned",
      -  "payment.created",
      -  "payment.paid",
      -  "payment.canceled",
      -  "booking.abandoned",
      -  "booking.created",
      -  "booking.paid",
      -  "booking.canceled",
      -  "ticket.created",
      -  "submission.created",
      -  "submission.updated",
      -  "submission.canceled",
      -  "checkout_page.created",
      -  "checkout_page.updated",
      -  "product.created",
      -  "product.updated",
      -  "subscription.abandoned",
      -  "subscription.created",
      -  "subscription.trialing",
      -  "subscription.scheduled",
      -  "subscription.active",
      -  "subscription.completed",
      -  "subscription.canceled",
      -  "subscription.expired"
      -]New value: +[
      +  "customer.created",
      +  "customer.updated",
      +  "payment.abandoned",
      +  "payment.created",
      +  "payment.paid",
      +  "payment.canceled",
      +  "booking.abandoned",
      +  "booking.created",
      +  "booking.paid",
      +  "booking.canceled",
      +  "ticket.created",
      +  "ticket.canceled",
      +  "submission.created",
      +  "submission.updated",
      +  "submission.canceled",
      +  "checkout_page.created",
      +  "checkout_page.updated",
      +  "product.created",
      +  "product.updated",
      +  "subscription.abandoned",
      +  "subscription.created",
      +  "subscription.trialing",
      +  "subscription.scheduled",
      +  "subscription.active",
      +  "subscription.completed",
      +  "subscription.canceled",
      +  "subscription.expired"
      +]
    • changedOutput schema / properties / data / properties / events / items / description
      Previous value: -"An event a webhook can subscribe to. Valid values: webhook.test, customer.created, customer.updated, payment.abandoned, payment.created, payment.paid, payment.canceled, booking.abandoned, booking.created, booking.paid, booking.canceled, ticket.created, submission.created, submission.updated, submission.canceled, checkout_page.created, checkout_page.updated, product.created, product.updated, subscription.abandoned, subscription.created, subscription.trialing, subscription.scheduled, subscription.active, subscription.completed, subscription.canceled, subscription.expired. `webhook.test` is the payload sent by the dashboard's test-delivery action."New value: +"An event a webhook can subscribe to. Valid values: webhook.test, customer.created, customer.updated, payment.abandoned, payment.created, payment.paid, payment.canceled, booking.abandoned, booking.created, booking.paid, booking.canceled, ticket.created, ticket.canceled, submission.created, submission.updated, submission.canceled, checkout_page.created, checkout_page.updated, product.created, product.updated, subscription.abandoned, subscription.created, subscription.trialing, subscription.scheduled, subscription.active, subscription.completed, subscription.canceled, subscription.expired. `webhook.test` is the payload sent by the dashboard's test-delivery action."
    • changedOutput schema / properties / data / properties / events / items / enum
      Previous value: -[
      -  "webhook.test",
      -  "customer.created",
      -  "customer.updated",
      -  "payment.abandoned",
      -  "payment.created",
      -  "payment.paid",
      -  "payment.canceled",
      -  "booking.abandoned",
      -  "booking.created",
      -  "booking.paid",
      -  "booking.canceled",
      -  "ticket.created",
      -  "submission.created",
      -  "submission.updated",
      -  "submission.canceled",
      -  "checkout_page.created",
      -  "checkout_page.updated",
      -  "product.created",
      -  "product.updated",
      -  "subscription.abandoned",
      -  "subscription.created",
      -  "subscription.trialing",
      -  "subscription.scheduled",
      -  "subscription.active",
      -  "subscription.completed",
      -  "subscription.canceled",
      -  "subscription.expired"
      -]New value: +[
      +  "webhook.test",
      +  "customer.created",
      +  "customer.updated",
      +  "payment.abandoned",
      +  "payment.created",
      +  "payment.paid",
      +  "payment.canceled",
      +  "booking.abandoned",
      +  "booking.created",
      +  "booking.paid",
      +  "booking.canceled",
      +  "ticket.created",
      +  "ticket.canceled",
      +  "submission.created",
      +  "submission.updated",
      +  "submission.canceled",
      +  "checkout_page.created",
      +  "checkout_page.updated",
      +  "product.created",
      +  "product.updated",
      +  "subscription.abandoned",
      +  "subscription.created",
      +  "subscription.trialing",
      +  "subscription.scheduled",
      +  "subscription.active",
      +  "subscription.completed",
      +  "subscription.canceled",
      +  "subscription.expired"
      +]
  2. Changed4 schema fields changed
    • changedInput schema / properties / events / items / description
      Previous value: -"An event a webhook can subscribe to. Valid values: customer.created, customer.updated, payment.abandoned, payment.created, payment.paid, booking.abandoned, booking.created, booking.paid, ticket.created, submission.created, submission.updated, checkout_page.created, checkout_page.updated, product.created, product.updated, subscription.abandoned, subscription.created, subscription.trialing, subscription.scheduled, subscription.active, subscription.completed, subscription.canceled, subscription.expired."New value: +"An event a webhook can subscribe to. Valid values: customer.created, customer.updated, payment.abandoned, payment.created, payment.paid, payment.canceled, booking.abandoned, booking.created, booking.paid, booking.canceled, ticket.created, submission.created, submission.updated, submission.canceled, checkout_page.created, checkout_page.updated, product.created, product.updated, subscription.abandoned, subscription.created, subscription.trialing, subscription.scheduled, subscription.active, subscription.completed, subscription.canceled, subscription.expired."
    • changedInput schema / properties / events / items / enum
      Previous value: -[
      -  "customer.created",
      -  "customer.updated",
      -  "payment.abandoned",
      -  "payment.created",
      -  "payment.paid",
      -  "booking.abandoned",
      -  "booking.created",
      -  "booking.paid",
      -  "ticket.created",
      -  "submission.created",
      -  "submission.updated",
      -  "checkout_page.created",
      -  "checkout_page.updated",
      -  "product.created",
      -  "product.updated",
      -  "subscription.abandoned",
      -  "subscription.created",
      -  "subscription.trialing",
      -  "subscription.scheduled",
      -  "subscription.active",
      -  "subscription.completed",
      -  "subscription.canceled",
      -  "subscription.expired"
      -]New value: +[
      +  "customer.created",
      +  "customer.updated",
      +  "payment.abandoned",
      +  "payment.created",
      +  "payment.paid",
      +  "payment.canceled",
      +  "booking.abandoned",
      +  "booking.created",
      +  "booking.paid",
      +  "booking.canceled",
      +  "ticket.created",
      +  "submission.created",
      +  "submission.updated",
      +  "submission.canceled",
      +  "checkout_page.created",
      +  "checkout_page.updated",
      +  "product.created",
      +  "product.updated",
      +  "subscription.abandoned",
      +  "subscription.created",
      +  "subscription.trialing",
      +  "subscription.scheduled",
      +  "subscription.active",
      +  "subscription.completed",
      +  "subscription.canceled",
      +  "subscription.expired"
      +]
    • changedOutput schema / properties / data / properties / events / items / description
      Previous value: -"An event a webhook can subscribe to. Valid values: webhook.test, customer.created, customer.updated, payment.abandoned, payment.created, payment.paid, booking.abandoned, booking.created, booking.paid, ticket.created, submission.created, submission.updated, checkout_page.created, checkout_page.updated, product.created, product.updated, subscription.abandoned, subscription.created, subscription.trialing, subscription.scheduled, subscription.active, subscription.completed, subscription.canceled, subscription.expired. `webhook.test` is the payload sent by the dashboard's test-delivery action."New value: +"An event a webhook can subscribe to. Valid values: webhook.test, customer.created, customer.updated, payment.abandoned, payment.created, payment.paid, payment.canceled, booking.abandoned, booking.created, booking.paid, booking.canceled, ticket.created, submission.created, submission.updated, submission.canceled, checkout_page.created, checkout_page.updated, product.created, product.updated, subscription.abandoned, subscription.created, subscription.trialing, subscription.scheduled, subscription.active, subscription.completed, subscription.canceled, subscription.expired. `webhook.test` is the payload sent by the dashboard's test-delivery action."
    • changedOutput schema / properties / data / properties / events / items / enum
      Previous value: -[
      -  "webhook.test",
      -  "customer.created",
      -  "customer.updated",
      -  "payment.abandoned",
      -  "payment.created",
      -  "payment.paid",
      -  "booking.abandoned",
      -  "booking.created",
      -  "booking.paid",
      -  "ticket.created",
      -  "submission.created",
      -  "submission.updated",
      -  "checkout_page.created",
      -  "checkout_page.updated",
      -  "product.created",
      -  "product.updated",
      -  "subscription.abandoned",
      -  "subscription.created",
      -  "subscription.trialing",
      -  "subscription.scheduled",
      -  "subscription.active",
      -  "subscription.completed",
      -  "subscription.canceled",
      -  "subscription.expired"
      -]New value: +[
      +  "webhook.test",
      +  "customer.created",
      +  "customer.updated",
      +  "payment.abandoned",
      +  "payment.created",
      +  "payment.paid",
      +  "payment.canceled",
      +  "booking.abandoned",
      +  "booking.created",
      +  "booking.paid",
      +  "booking.canceled",
      +  "ticket.created",
      +  "submission.created",
      +  "submission.updated",
      +  "submission.canceled",
      +  "checkout_page.created",
      +  "checkout_page.updated",
      +  "product.created",
      +  "product.updated",
      +  "subscription.abandoned",
      +  "subscription.created",
      +  "subscription.trialing",
      +  "subscription.scheduled",
      +  "subscription.active",
      +  "subscription.completed",
      +  "subscription.canceled",
      +  "subscription.expired"
      +]
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (readOnlyHint=false, destructiveHint=true) by disclosing non-obvious semantics: only supplied fields change, events are replaced wholesale, existing headers are preserved and returned as `[hidden]`, and headers must be edited via the dashboardUrl instead. That last point is a genuine safety/behavior disclosure the structured fields do not carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and every sentence carries operational weight, including the header caveat and the list_webhooks pointer. It is dense and slightly sprawling in the middle, but no sentence is redundant padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter mutation tool with a full schema and an output schema present, the description covers what changes, what is preserved, what cannot be set here, and how to discover the id. Nothing needed to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds meaning the schema lacks: partial-update semantics for all fields and wholesale replacement for `events`. This resolves the key ambiguity an agent would otherwise hit when passing a partial event list.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource plus the exact mutable surface: name, https URL, subscribed events, and status. It also disambiguates status as pause/resume and routes the agent to list_webhooks for the id, so it is separable from create_webhook, get_webhook, delete_webhook, and list_webhooks without reading their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage direction: call list_webhooks first to obtain the webhookId, use status=inactive to pause instead of deleting, and never solicit custom header values from the user. It stops short of an explicit when-not-this-tool statement (e.g. use create_webhook for a new endpoint), which keeps it below a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources