> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tavus.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Canvas components

> Every card the PAL can show, and how to enable and configure them.

**Canvas components** are the cards a PAL can render on the Magic Canvas surface during a conversation. Seven components: four interactive, three display-only:

Magic Canvas adds **Canvas actions** - built-in LLM functions such as `canvas_show_question` - when the skill is attached. These are not the same as [Tools](/sections/conversational-video-interface/pal/tools) you create via the Tools API and attach to a PAL. If a name collides, your Tools API definition wins.

| Component                                                                                               | Description                                                         | Interactive  |
| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------ |
| [`question`](/sections/conversational-video-interface/magic-canvas/components/question)                 | Ask a multiple-choice question, optionally with a free-text "Other" | Yes          |
| [`input`](/sections/conversational-video-interface/magic-canvas/components/input)                       | Ask for a single typed value: text, email, number, or phone         | Yes          |
| [`calendar`](/sections/conversational-video-interface/magic-canvas/components/calendar)                 | Let the user pick a date, a time slot, or a date range              | Yes          |
| [`scheduling_embed`](/sections/conversational-video-interface/magic-canvas/components/scheduling-embed) | Embed your real scheduling page (e.g. Calendly) for live booking    | Yes          |
| [`text`](/sections/conversational-video-interface/magic-canvas/components/text)                         | Show a card of formatted text                                       | Dismiss only |
| [`chart`](/sections/conversational-video-interface/magic-canvas/components/chart)                       | Show a bar, line, or pie chart                                      | Dismiss only |
| [`alert`](/sections/conversational-video-interface/magic-canvas/components/alert)                       | Show a dismissible notice                                           | Dismiss only |

## Enabling and configuring components

Components come from the PAL's `magic_canvas` skill. Attach it:

```bash theme={null}
curl -X PUT https://tavusapi.com/v2/pals/{pal_id}/skills/magic_canvas \
  -H "x-api-key: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{ "config": {} }'
```

Attaching the skill enables **every component** with its defaults. `config.components` is a sparse overlay, not an allowlist; add an entry only to configure or disable:

```json theme={null}
{ "config": { "components": { "chart": { "enabled": false } } } }
```

Overlay rules:

* Per-component `enabled` defaults to `true`.
* `scheduling_embed` stays inactive until `scheduling_url` is set; a bare attach doesn't error.

<Note>
  Tavus compiles Canvas actions only for conversations with a rendering surface.
  Audio-only, text-chat, and external `meeting_url` (Zoom, Teams, Meet)
  conversations get no Canvas actions, regardless of PAL configuration.
</Note>

See [Canvas configuration](/sections/conversational-video-interface/magic-canvas/api/configuration) for the full config shape, PATCH/bulk-PUT/DELETE endpoints, and validation errors.

## Control actions

Each active component gives the PAL one `canvas_show_<component>` action. With at least one component active, the PAL also gets `canvas_clear`, which clears the whole canvas.

Showing a card replaces the current one. The PAL does not update cards in place. To clear the canvas without showing a new card, the PAL calls `canvas_clear`.

Canvas actions are model-driven. Steer when the PAL shows a card with `usage_guidance`, the PAL's system prompt, or conversational context ([when cards appear](/sections/conversational-video-interface/magic-canvas/api/configuration#when-cards-appear)). A Canvas action never overwrites a [tool](/sections/conversational-video-interface/pal/tools) you defined with the same name; your tool wins (see [Canvas configuration](/sections/conversational-video-interface/magic-canvas/api/configuration#how-the-configuration-reaches-a-conversation)).

## Default placement

By default, cards are placed to the right of the PAL. Placement can be further customized when using the `@tavus/cvi-ui` package.
