> 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.

# Canvas user interacted

POST 

Sent when a user interacts with an app canvas via button press. Event type: `v2.canvas.userInteracted`.

Reference: https://docs.benchling.com/docs/api/v2-webhooks/canvas/user-interacted

## Request

### Payload

- `app` (CanvasInteractionWebhookV2EnvelopeApp, required)
- `appDefinition` (CanvasInteractionWebhookV2EnvelopeAppDefinition, required)
- `baseURL` (string, required) — Base tenant URL from which the webhook is coming
- `channel` (enum, required) — Channel of the webhook
  - Allowed values: `events`, `app_signals`
- `tenantId` (string, required) — Global tenant id from which the webhook is coming
- `version` (enum, required) — Version of the webhook envelope shape. Always 0.
  - Allowed values: `0`
- `message` (CanvasInteractionWebhookV2, required) — Sent when a user interacts with an app canvas via button press

## Types

### CanvasInteractionWebhookV2EnvelopeApp

- `id` (string, required) — Destination app's id

### CanvasInteractionWebhookV2EnvelopeAppDefinition

- `id` (string, required) — App definition id
- `versionNumber` (string, required) — App definition version number

### CanvasInteractionWebhookV2

Sent when a user interacts with an app canvas via button press

- `buttonId` (string, required)
- `canvasId` (string, required)
- `deprecated` (boolean, required)
- `featureId` (string, required)
- `userId` (string, required)