> This is a page from the ElevenLabs documentation. For a complete page index, fetch https://elevenlabs.io/docs/llms.txt. For the full documentation in a single file, fetch https://elevenlabs.io/docs/llms-full.txt.

# ウィジェットのカスタマイズ

**ウィジェット**を使えば、ElevenAgentsをあらゆるウェブサイトにすぐに統合できます。UIからウィジェットをカスタマイズすることも、スタイルや動作を完全に制御できるタイプセーフな[ElevenAgents SDK](/docs/ja/eleven-api/resources/libraries)を使用することもできます。SDKによるオーバーライドは、UIでのカスタマイズより優先されます。
ウィジェットはマルチモーダルで、テキストとオーディオの両方を処理できます。

> **Note**
>
> ClaudeまたはほかのMCPクライアントから、[ホスト型MCPサーバー](/docs/ja/eleven-agents/operate/hosted-mcp)を通じて
> エージェントのウィジェット設定と共有可能なリンクを取得することもできます。

## モダリティ設定

ウィジェットは、ユースケースに合わせて柔軟な入力モードに対応しています。ダッシュボードの**Channels**→**Widget**→**Interface**でこれらのオプションを設定します。

> **Note**
>
> マルチモーダルはクライアントSDKで完全にサポートされています。詳しくは
> [こちら](/docs/ja/eleven-api/resources/libraries)をご覧ください。

![ウィジェットのインターフェースオプション](/docs/_fern-img/cf851dd7a29b4bd23f7d36097ebf57c0bfe1b6a7a3b35687ddea20d9920a93c0.webp)

**利用可能なモード：**

* **音声のみ**（デフォルト）：ユーザーは音声のみで操作します。
* **音声＋テキスト**：会話中に音声入力とテキスト入力を切り替えられます。
* **チャットモード**：テキストメッセージで開始した場合、音声機能なしのチャット（テキストのみ）モードで会話が始まります。

SDKを介してチャット（テキストのみ）モードを使用する方法については、[チャットモードガイド](/docs/ja/eleven-agents/guides/chat-mode)をご覧ください。

> **Note**
>
> ウィジェットのデフォルトは音声のみモードです。マルチモーダルな
> インタラクションを可能にするにはテキスト入力の切り替えを有効にするか、テキストで開始する完全なテキストベースの会話には
> テキストのみモードのサポートを有効にしてください。

## ウィジェットの埋め込み

> **Note**
>
> 現在、ウィジェットには認証を無効にした公開エージェントが必要です。
> エージェント設定の**Advanced**タブで無効になっていることを確認してください。

このコードスニペットをウェブサイトの`<body>`セクションに追加してください。サイト全体で利用できるよう、メインの`index.html`ファイルに配置します：

**`Widget embed code`**

```html title="Widget embed code"
<elevenlabs-convai agent-id="<replace-with-agent_7101k5zvyjhmfg983brhmhkd98n6>"></elevenlabs-convai>
<script
  src="https://unpkg.com/@elevenlabs/convai-widget-embed"
  async
  type="text/javascript"
></script>
```

> **Info**
>
> セキュリティを強化するには、エージェントの**Allowlist**（**Security**タブ内）で許可ドメインを定義してください。
> これにより、指定したホストのみにアクセスが制限されます。

## ウィジェット属性

この基本的な埋め込みコードでは、エージェントのダッシュボードで定義したデフォルト設定でウィジェットが表示されます。
ウィジェットでは、さらにカスタマイズするためのさまざまなHTML属性をサポートしています：

#### コア設定

```html
<elevenlabs-convai
  agent-id="agent_id"              // Required: Your agent ID
  signed-url="signed_url"          // Alternative to agent-id
  server-location="us"             // Optional: "us" or default
  variant="expanded"               // Optional: Widget display mode
  dismissible="true"               // Optional: Allow the user to minimize the widget
></elevenlabs-convai>
```

#### 外観のカスタマイズ

```html
<elevenlabs-convai
  avatar-image-url="https://..." // Optional: Custom avatar image
  avatar-orb-color-1="#6DB035" // Optional: Orb gradient color 1
  avatar-orb-color-2="#F5CABB" // Optional: Orb gradient color 2
></elevenlabs-convai>
```

#### テキストのカスタマイズ

```html
<elevenlabs-convai
  action-text="Need assistance?" // Optional: CTA button text
  start-call-text="Begin conversation" // Optional: Start call button
  end-call-text="End call" // Optional: End call button
  expand-text="Open chat" // Optional: Expand widget text
  listening-text="Listening..." // Optional: Listening state
  speaking-text="Assistant speaking" // Optional: Speaking state
></elevenlabs-convai>
```

#### Markdownレンダリング

ウィジェットはエージェントの応答内のMarkdownをレンダリングします。フィッシングを防ぐため、リンクはデフォルトでプレーンテキストとして表示されます。

```html
<elevenlabs-convai
  markdown-link-allowed-hosts="example.com"  // Domains where links are clickable (use "*" for all)
  markdown-link-include-www="true"           // Also allow www variants (default: true)
  markdown-link-allow-http="true"            // Allow http:// links (default: true)
  syntax-highlight-theme="dark"              // Code block theme: "dark", "light", or "auto"
></elevenlabs-convai>
```

## ランタイム設定

ランタイムでエージェントの動作をカスタマイズするために、さらに2つのhtml属性を使用できます。この2つの機能は、併用、個別利用、またはどちらも使用しないことができます。

### 動的変数

動的変数を使うと、ランタイム値をエージェントのメッセージ、システムプロンプト、ツールに挿入できます。

```html
<elevenlabs-convai
  agent-id="agent_7101k5zvyjhmfg983brhmhkd98n6"
  dynamic-variables='{"user_name": "John", "account_type": "premium"}'
></elevenlabs-convai>
```

エージェントが必要とするすべての動的変数をウィジェットに渡す必要があります。

> **Info**
>
> 詳しくは[動的変数ガイド](/docs/ja/eleven-agents/customization/personalization/dynamic-variables)をご覧ください。

### オーバーライド

オーバーライドを使うと、ランタイムでエージェントの動作を完全にカスタマイズできます：

```html
<elevenlabs-convai
  agent-id="agent_7101k5zvyjhmfg983brhmhkd98n6"
  override-language="es"
  override-prompt="Custom system prompt for this user"
  override-first-message="Hi! How can I help you today?"
  override-voice-id="axXgspJ2msm3clMCkdW3"
></elevenlabs-convai>
```

オーバーライドは特定のフィールドに対して有効にでき、完全に任意です。

> **Info**
>
> 詳しくは[オーバーライドガイド](/docs/ja/eleven-agents/customization/personalization/overrides)をご覧ください。

## 外観のカスタマイズ

ウィジェットの外観、テキストコンテンツ、言語選択などをカスタマイズします。

#### ダッシュボードで更新

ダッシュボードでエージェントを開き、**Widget**タブに移動すると、外観、アバター、テキスト、利用規約、言語サポートなどをカスタマイズできます。

![ウィジェットのカスタマイズ](/docs/_fern-img/1f773d01a3c0925a47f11cf57153db23bc8bc03b93efe5d7085919886ae392cf.webp)

#### CLIで更新

#### エージェント設定を取得

```bash
elevenlabs agents pull --agent "<agent-name>"
```

#### \`agent_configs/\<agent-name>.json\`を編集

`platform_settings.widget`配下のフィールドを設定します。たとえば、オーブの色とフィードバックモードを変更するには：

```json
{
  "platform_settings": {
    "widget": {
      "variant": "full",
      "placement": "bottom-right",
      "avatar": {
        "type": "orb",
        "color_1": "#6DB035",
        "color_2": "#F5CABB"
      },
      "feedback_mode": "during",
      "bg_color": "#ffffff",
      "text_color": "#000000",
      "btn_color": "#000000",
      "btn_text_color": "#ffffff"
    }
  }
}
```

#### 変更をプッシュ

```bash
elevenlabs agents push --agent "<agent-name>"
```

#### APIで更新

```python
from elevenlabs import ElevenLabs

elevenlabs = ElevenLabs()

elevenlabs.conversational_ai.agents.update(
    agent_id="agent_7101k5zvyjhmfg983brhmhkd98n6",
    platform_settings={
        "widget": {
            "variant": "full",
            "placement": "bottom-right",
            "avatar": {
                "type": "orb",
                "color_1": "#6DB035",
                "color_2": "#F5CABB",
            },
            "feedback_mode": "during",
        },
    },
)
```

```typescript
import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const elevenlabs = new ElevenLabsClient();

await elevenlabs.conversationalAi.agents.update("agent_7101k5zvyjhmfg983brhmhkd98n6", {
  platformSettings: {
    widget: {
      variant: "full",
      placement: "bottom-right",
      avatar: {
        type: "orb",
        color1: "#6DB035",
        color2: "#F5CABB",
      },
      feedbackMode: "during",
    },
  },
});
```

#### 外観

ブランドアイデンティティに合わせて、ウィジェットの色と形状をカスタマイズします。

![ウィジェットの外観](/docs/_fern-files/elevenlabs.docs.buildwithfern.com/0c07c4569f8c5ad3b93933711c268601af411085aa7df1bb8e8ec547a01f2d8e/assets/images/conversational-ai/appearance.gif)

#### フィードバック

エージェントのパフォーマンスを改善するために、ユーザーのインサイトを収集します。エージェントのナレッジベースとシステムプロンプトの微調整に活用できます。

![ウィジェットのフィードバック](/docs/_fern-img/d7117399e23f06522b3112ff5c5ead23f66d3ea4700c011ff75e5dcd6cce875c.webp)

**収集モード**

* **なし**：フィードバック収集を完全に無効にします。
* **会話中**：会話中のリアルタイムフィードバックに対応します。フィードバックのきっかけとなったエージェントの応答などの追加メタデータも収集されるため、ギャップをさらに特定しやすくなります。
* **会話後**：会話後に1回だけフィードバックプロンプトを表示します。

> **Note**
>
> カスタムSDK実装を使用する場合は、[API](/docs/ja/eleven-agents/api-reference/conversations/create)を通じてプログラムからフィードバックを送信してください。

#### アバター

音声オーブを設定するか、独自のアバターを指定します。

![ウィジェットのオーブのカスタマイズ](/docs/_fern-files/elevenlabs.docs.buildwithfern.com/7530f28ad124fc4533911eca4a2269ac1df19dffd2b6dab1e8b56d95cc1eb53c/assets/images/conversational-ai/avatar.gif)

**利用可能なオプション**

* **オーブ**：2つのグラデーションカラーを選択します（例：#6DB035＆#F5CABB）。
* **リンク／画像**：カスタムアバター画像を使用します。

#### 表示テキスト

ボタンラベルの変更など、表示されるすべてのウィジェットテキスト要素をカスタマイズします。

![ウィジェットのテキストコンテンツ](/docs/_fern-files/elevenlabs.docs.buildwithfern.com/4ad66ecae5df29e587afcf6e1898ccb41ca197abdaa2fde3ada4b10d256f8b7c/assets/images/conversational-ai/textcontents.gif)

#### 利用規約

会話前にカスタムの利用規約を表示します。

![利用規約の設定](/docs/_fern-img/58dfd0abf92615f85c7314e8baec1bf4dd401cc88a04f1096baf817f05edb39d.webp)

**利用可能なオプション**

* **利用規約の内容**：Markdownを使用してポリシーテキストを整形します。
* **ローカルストレージキー**：再訪ユーザーへの表示を避けるためのキー（例："terms_accepted"）。

**使い方**

利用規約は、通話を開始する前にモーダルでユーザーに表示されます：

![利用規約の表示](/docs/_fern-img/ca7511c60f1f6a29ee8bdd5c40083c73ef701f6cfd7ce1672161d73559a0c9b0.webp)

利用規約はMarkdownで記述でき、次のことができます：

* 外部ポリシーへのリンクを追加
* 見出しやリストでテキストを整形
* 強調やスタイルを追加

Markdownの詳細については、[CommonMarkヘルプガイド](https://commonmark.org/help/)をご覧ください。

> **Info**
>
> 一度承諾されると、ステータスはローカルに保存され、以降の訪問時にユーザーへ再度表示されることはありません。

#### 言語

ウィジェットで多言語サポートを有効にします。

![ウィジェットの言語](/docs/_fern-files/elevenlabs.docs.buildwithfern.com/049e871eb0f609b071599e405c3da76351ee4ea38e52400fc416194930c42327/assets/images/conversational-ai/language.gif)

> **Note**
>
> 言語選択を有効にするには、まずエージェントに[追加の言語を 追加](/docs/ja/eleven-agents/customization/voice/customization/language)する必要があります。

#### ミュート

ユーザーがウィジェットでオーディオをミュートできるようにします。

![ウィジェットのミュートボタン](/docs/_fern-img/e6968e4ba057d98857fb41125bb57f92570ed7c49711ce423add1ea558de5919.webp)

ミュートボタンを追加するには、エージェントの`widget`
設定の`interface`カードでこれを有効にしてください。

![ウィジェットのミュートボタン](/docs/_fern-img/7db9df78926f3f3b3db7c286d4efc033356ec9b79cabe20670f65a52a624fae8.webp)

#### 共有ページ

公開ウィジェットのランディングページ（共有可能なリンク）をカスタマイズします。

![ウィジェットの共有ページ](/docs/_fern-img/9d8b23aa816f4b7d727b3c0511ef91d046796bb57b8299382c53b6bcff746c50.webp)

**利用可能なオプション**

* **説明**：通話の目的を説明する短い段落を記載します。

---

## 高度な実装

> **Note**
>
> より高度なカスタマイズには、Next.js、React、またはPythonアプリケーションでタイプセーフな[ElevenAgents SDK](/docs/ja/eleven-api/resources/libraries)を使用してください。

### クライアントツール

クライアントツールを使用すると、イベントリスナーを追加してウィジェットの機能を拡張できます。これにより、ウィジェットで次のようなアクションを実行できます：

* ユーザーを特定のページにリダイレクトする
* サポートチームにメールを送信する
* ユーザーを外部URLにリダイレクトする

これらのツールの動作例を見るには、このページの右下にあるエージェントで通話を開始してください。参考として、[ソースコードはGitHubで公開されています](https://github.com/elevenlabs/elevenlabs-dx/blob/main/fern/assets/scripts/widget.js)。

#### クライアントツールの作成

最初のクライアントツールを作成するには、[クライアントツールガイド](/docs/ja/eleven-agents/customization/tools/client-tools)に従ってください。

#### 例：\`redirectToExternalURL\`ツールの作成

![クライアントツールの設定](/docs/_fern-img/d800b8c60cba2ab0a1d0aaaecc0652a678998a4161adaf10d83df51b928a7734.webp)

#### 実装例

以下は、JavaScriptコードでウィジェットによってトリガーされた`redirectToExternalURL`ツールを処理する例です：

**`index.js`**

```javascript title="index.js"
document.addEventListener("DOMContentLoaded", () => {
  const widget = document.querySelector("elevenlabs-convai");

  if (widget) {
    // Listen for the widget's "call" event to trigger client-side tools
    widget.addEventListener("elevenlabs-convai:call", (event) => {
      event.detail.config.clientTools = {
        // Note: To use this example, the client tool called "redirectToExternalURL" (case-sensitive) must have been created with the configuration defined above.
        redirectToExternalURL: ({ url }) => {
          window.open(url, "_blank", "noopener,noreferrer");
        },
      };
    });
  }
});
```

> **Info**
>
> React、Next.js、Pythonでの実装については、タイプセーフな[SDK](/docs/ja/eleven-api/resources/libraries)をご覧ください。