> This page is for Developer Documentation.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.benchling.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.benchling.com/_mcp/server.

## Webhook Stable Routing

Developers are now able to select a `webhookUrlRouting` setting in the Developer Console. When using `SUFFIXED` (the default behavior), webhooks are delivered to the configured webhook url with a suffix. For example, for events webhooks, they are delivered to `$WEBHOOK_URL/event`. For canvas webhooks, they are delivered to `$WEBHOOK_URL/canvas`. For app lifecycle webhooks, they are delivered to `$WEBHOOK_URL/lifecycle`.

For a webhook url configured to `https://my.webhook`:

| Webhook                                                                   | SUFFIXED effective url         | STABLE effective url |
| ------------------------------------------------------------------------- | ------------------------------ | -------------------- |
| [Events](/docs/getting-started-with-webhooks)                             | `https://my.webhook/event`     | `https://my.webhook` |
| [App Lifecycle](/docs/managing-and-sharing-benchling-apps#app-activation) | `https://my.webhook/lifecycle` | `https://my.webhook` |
| [Canvas](/docs/introduction-to-app-canvas#interaction-webhooks)           | `https://my.webhook/canvas`    | `https://my.webhook` |

This allows customers who only have access to public static uris to onboard more seamlessly onto receiving Webhooks. For example, customers leveraging Zapier, Slack, or Workato to drive integrations would benefit here. Customers who rely on path-based routing, such as Lambda architectures, can continue expecting suffixed webhook urls.

Read more about webhooks here: [/docs/getting-started-with-webhooks](/docs/getting-started-with-webhooks)

#### How it works

To configure this setting, navigate to the Developer Console for your App Definition and click on "Configure" under "Webhook Setup":

![](/_fern-img/8e0a55e9455f42e0b197df82e2924d4de303e4f7e5ae3376ecc7bdd9e51355ee.webp)

![](/_fern-img/65870b86a257ea49007cc2bb2960c9e78291159ebc39aa1b220338e3b600f9a9.webp)
**This will also be supported in the V3 API soon!**