{
"message_type": "canvas",
"event_type": "canvas.interaction",
"conversation_id": "c123456",
"timestamp": "2026-06-09T21:14:03.498Z",
"properties": {
"conversation_id": "c123456",
"interaction_id": "ci_call_8f2d41_submit_5e0b7c2a",
"tool_call_id": "call_8f2d41",
"component": "canvas.question",
"component_version": "v1",
"type": "submit",
"value": {
"selected_option_ids": [
"opt_2"
],
"skipped": false
},
"metadata": {
"client": "kiosk-web"
},
"created_at": "2026-06-09T21:14:03.518923"
}
}Canvas Interaction Event
Outbound: Tavus delivers a Magic Canvas interaction to your conversation callback_url.
Configure Magic Canvas on the PAL first - see Magic Canvas overview. Tavus sends this event only for conversations with Magic Canvas enabled. Full interaction rules: Canvas interactions.
The end user's browser reports each interaction through a public endpoint, so treat properties as untrusted input and validate it before you act on it. The same interaction can be sent more than once. Treat two events as the same interaction when conversation_id and interaction_id match, and do not apply the second one again. An interaction_id is unique only within its conversation.
For Zero Data Retention (ZDR) conversations, Tavus keeps no record of the interaction and makes one delivery attempt, so this event is your only full copy of it.
canvas for Magic Canvas webhook events.
"canvas"
canvas.interaction.
"canvas.interaction"
The unique identifier for the conversation.
"c123456"
ISO-8601 timestamp with a Z suffix (UTC).
"2026-06-09T21:14:03.498Z"
A recorded Canvas interaction. Returned by List Canvas Interactions and delivered in the properties object of a canvas.interaction webhook. For Zero Data Retention (ZDR) conversations, the interaction is delivered but not recorded.
Show child attributes
Show child attributes

