---
title: テンプレートシステム - 動的な通知コンテンツ
sidebarTitle: テンプレート
description: Echobellのテンプレートシステムをマスターして、動的で情報豊富な通知を作成。変数置換、式、演算子、システム変数、通知テンプレートのベストプラクティスの完全ガイド。
---

# Echobell のテンプレート

Echobellのテンプレートを使用すると、変数を通知タイトルと本文に組み込むことで、動的でコンテキスト豊かな通知を作成できます。この強力な機能により、トリガーデータに基づいて適応するパーソナライズされた情報豊富なアラートが可能になり、一般的な通知をアクション可能なインテリジェンスに変換します。

## 基本的なテンプレート構文

Echobell テンプレートでは、変数を二重中括弧で囲むことで使用できます：

```
{{変数名}}
```

チャネルがトリガーされると、これらの変数はトリガーを通じて渡された実際の値に置き換えられます。例えば、タイトルテンプレートが`${{金額}}を受け取りました`で、`金額`の値が 100 のチャネルをトリガーすると、結果の通知は`$100を受け取りました`と表示されます。

## 高度なテンプレート式

Echobell テンプレートは、より複雑なシナリオのためのさまざまな式をサポートしています：

- オブジェクトプロパティへのアクセス

```
{{ユーザー.名前}}
{{データ["値"]}}
```

- 配列要素へのアクセス

```
{{アイテム[0]}}
```

- 比較演算子の使用

```
{{ステータス == "アクティブ"}}
{{年齢 > 18}}
```

- 論理演算子

```
{{購読中 && !一時停止中}}
{{緊急 || 高優先度}}
```

すべての標準的な演算子がサポートされています：`==`、`!=`、`<`、`>`、`<=`、`>=`、`&&`、`||`、`!`。

## 異なるトリガーからのテンプレート変数

### Webhook トリガー

Webhook を通じてトリガーする場合、以下の方法で変数を提供できます：

1. **クエリ文字列パラメータ**：

   ```http
   GET https://hook.echobell.one/t/あなたのチャネルID?金額=100&ステータス=完了
   ```

2. **JSON ボディ**（POST リクエスト用）：

   ```http
   POST https://hook.echobell.one/t/あなたのチャネルID
   Content-Type: application/json

   {
     "金額": 100,
     "ステータス": "完了",
     "ユーザー": {
       "名前": "田中",
       "id": 12345
     }
   }
   ```

3. **特別な変数**：
   - `externalLink`：通知レコード内でクリック可能なリンクを提供します
   - `bodyAsText`: `Content-Type` が `text/plain` の場合のリクエストボディのプレーンテキストコンテンツ
   - `header`：HTTP リクエストヘッダーへのアクセスを提供します（例：`{{header["content-type"]}}`)

### メールトリガー

チャネルがメールを介してトリガーされる場合、以下の変数が自動的に利用可能になります：

- `from`：送信者のメールアドレス
- `to`：受信者のメールアドレス
- `subject`：メールの件名
- `text`：メールのプレーンテキスト内容
- `html`：メールの HTML 内容

## テンプレートの使用例

### 条件付きコンテンツ

テンプレートを使用して、条件に基づいて異なるコンテンツを表示できます：

```
{{金額 > 1000 ? "大きな" : "標準的な"}}支払いを受け取りました：${{金額}}
```

### チャネル条件

通知コンテンツでテンプレートを使用することに加えて、チャネルの詳細設定で通知を送信するかどうかを決定する**条件**を設定できます。これらの条件は同じ式構文（中括弧なし）を使用します。

例えば、閾値を超える金額に対してのみ通知を送信するには：

```
金額 > 100
```

## リンクテンプレート

チャネルの詳細設定でカスタムリンクテンプレートを設定して、通知レコード内にクリック可能なリンクを作成します：

```
https://dashboard.example.com/orders/{{注文ID}}
```

リンクテンプレートが設定されていない場合、デフォルトで`externalLink`変数の値が使用されます。

## システム時刻変数（UTC）

これらの変数はテンプレート（および条件）で常に利用でき、UTC で計算されます：

- `timezone`: 常に `"UTC"`
- `now` / `iso`: ISO‑8601 タイムスタンプ（例：`2025-05-06T12:34:56.789Z`）
- `epochMs`, `epochSeconds`: 現在時刻（Unix エポックからの経過）
- `year`, `month`（1–12）, `monthName`
- `dayOfMonth`, `dayOfWeek`（0–6、日曜 = 0）, `dayOfWeekName`
- `hour`（0–23）, `minute`, `second`
- `date`（`YYYY-MM-DD`）, `time`（`HH:mm:ss`）

例：

```
送信時刻 {{date}} {{time}} {{timezone}}
今日は {{dayOfWeekName}}、{{monthName}} {{dayOfMonth}}, {{year}}
Epoch: {{epochSeconds}}
```

## ベストプラクティス

1. **デフォルト値**：オプションの変数にデフォルト値を提供することを検討してください：

   ```
   {{ユーザー名 || "匿名ユーザー"}}
   ```

2. **情報豊かなテンプレート**：通知をアクション可能にするために、テンプレートに重要な情報を含めてください：

   ```
   {{サービス}}：{{ステータス}} - {{メッセージ}}
   ```

3. **テンプレートを簡潔に**：通知はタイトルと本文が明確で簡潔なときに最も効果的に表示されます。

4. **テスト**：テンプレートを様々な変数の組み合わせでテストして、期待通りにレンダリングされることを確認してください。

テンプレートは、ユーザーが必要なときに必要な情報を正確に提供する、動的で情報豊かな通知を作成する強力な方法です。
