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

# Install the Custom Integration

> Configure your Canvas URL, secret token, optional webhook, and section in Sleekplan Admin so your integration starts rendering inside feedback posts

Canvas is installed from **Settings → Integrations → Custom** in Sleekplan Admin. Before you begin, make sure you have a publicly reachable HTTPS endpoint for your Canvas server and a secret token of your choice ready.

<Steps>
  <Step title="Open Custom Integration settings">
    In Sleekplan Admin, navigate to **Settings → Integrations → Custom** and click **Install/Connect**.
  </Step>

  <Step title="Configure your fields">
    Fill in the fields below, then click **Save**.

    | Field              | Required                   | Description                                                                                                                                                                                          |
    | ------------------ | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
    | **Canvas URL**     | Required if no Webhook URL | Your HTTPS endpoint that accepts and returns JSON per the component schema. Sleekplan calls it on view load and on every user action with `Content-Type: application/json` and an `X-Secret` header. |
    | **Canvas section** | When using Canvas URL      | Currently only `admin_post`.                                                                                                                                                                         |
    | **Webhook URL**    | Optional                   | Your HTTPS endpoint for the events you subscribe to. Includes the same `X-Secret` header.                                                                                                            |
    | **Webhook events** | Optional                   | Comma-separated list (e.g. `item.create, item.update`). See [Webhooks](/webhooks) for the full event list.                                                                                           |
    | **Secret token**   | Required                   | Any non-empty string. Sleekplan sends it as `X-Secret: <token>` on every Canvas and Webhook request.                                                                                                 |

    **Validation rules**

    * At least one of Canvas URL or Webhook URL must be set.
    * URLs must be HTTPS (scheme inferred if omitted).
    * If you restrict inbound traffic by IP, allow-list `168.119.102.99`.
  </Step>

  <Step title="Verify the install">
    * Open any feedback post in Sleekplan Admin.
    * The Canvas calls your URL and renders the components your server returns.
    * Interactions POST back to your Canvas URL with `submit: true`.
  </Step>
</Steps>

## Example configuration

```text theme={"system"}
Canvas URL:     https://integrations.example.com/sleekplan/canvas
Canvas section: admin_post
Webhook URL:    https://integrations.example.com/sleekplan/webhook
Webhook events: item.create, item.update
Secret token:   prod-abc-xyz
```

## Verify the X-Secret header

Every request Sleekplan sends includes an `X-Secret: <token>` header matching the secret token you saved during setup. Reject any request where the header is missing or does not match your stored token. See [Canvas examples](/canvas/examples) for ready-to-use code that performs this verification.
