Zendeskメッセージングテンプレート変数:2026年完全ガイド

Stevia Putri

Stanley Nicholas
Last edited 2026 2月 20
Expert Verified
Zendesk(ゼンデスク)のメッセージングテンプレート変数は、顧客との会話を大規模にパーソナライズするための鍵となります。顧客データを事前に入力する場合でも、システム間でコンテキストを渡す場合でも、動的なAIエージェントの応答を構築する場合でも、これらの変数を効果的に使用する方法を理解することで、サポート業務を変革できます。
このガイドでは、Zendeskメッセージングテンプレート変数について知っておくべきことをすべて網羅しています。それらが何であるか、構文がどのように機能するか、そしてサポートワークフローでそれらを実装するための実践的な方法について説明します。
Zendeskメッセージングテンプレート変数とは?
Zendeskのテンプレート変数とは、メッセージにデータを動的に挿入するプレースホルダー(placeholder)のことです。Zendeskに「ここに顧客の名前を入れてください」とか「そこに注文番号を挿入してください」と指示するラベルのようなものだと考えてください。
これらの変数は、主に3つの目的を果たします。
- パーソナライゼーション(Personalization): 顧客の名前で呼びかけたり、特定の注文を参照したり、アカウント履歴を確認したりすること
- 自動化(Automation): ウェブサイト、AIエージェント、および人間のエージェント間で、手動介入なしにデータを渡すこと
- コンテキストの維持(Context preservation): 顧客がボットと人間のサポートの間を移動する際に、会話の詳細を維持すること
使用する変数のタイプは3つあります。
システム変数(System variables) は、Zendeskに組み込まれています。これには、顧客名、メールアドレス、チケットID、およびZendeskが自動的に追跡するその他の標準フィールドが含まれます。
カスタム変数(Custom variables) は、自分で作成するものです。顧客が選択したものを追跡するために chosen_product 変数を定義したり、緊急度を示すために priority_level 変数を定義したりできます。
セッション変数(Session variables) は、会話フロー全体で保持される新しい追加機能です。ステップ固有の変数とは異なり、これらはAIエージェントの複数の回答またはダイアログブランチを通じて顧客を追跡します。
eesel AI(イーセルAI)では、同様の哲学で変数に取り組んでいます。コンテキストは顧客を自然に追跡する必要があります。当社のAIチームメイトは、複雑な設定なしに、インタラクション全体で会話履歴と顧客データを保持します。
Zendeskメッセージングテンプレート変数の構文を理解する
Zendeskは、達成しようとしていることに応じて、複数の構文オプションを提供します。これらを正しく理解することが重要です。なぜなら、それらを混同することが最も一般的な間違いの1つだからです。
リッチメッセージの省略記法
省略記法を使用すると、リッチフォーマットが利用できない可能性のあるメッセージに、ボタン、画像、およびインタラクティブな要素を追加できます。
| 要素(Element) | 構文(Syntax) | 例(Example) |
|---|---|---|
| リンクボタン(Link button) | %[ラベル(Label)](URL) | %[詳細を表示(View details)](https://example.com) |
| 返信ボタン(Reply button) | %[ラベル(Label)](reply:ペイロード(PAYLOAD)) | %[はい(Yes)](reply:confirmed) |
| ポストバックボタン(Postback button) | %[ラベル(Label)](postback:ペイロード(PAYLOAD)) | %[選択(Select)](postback:option1) |
| 画像(Image) |  |  |
これが実際にどのように機能するかを以下に示します。このテキストでメッセージを送信する場合:
お問い合わせありがとうございます! %[注文を表示(View order)](https://shop.com/order/123) %[エージェントと話す(Talk to agent)](reply:escalate)
Zendeskはそれを2つのクリック可能なボタンを持つメッセージに変換します。1つは注文ページへのリンク、もう1つは「escalate」を返信ペイロードとして送信します。
テンプレート挿入構文
定義済みのテンプレートをメッセージに挿入するには、次の構文を使用します。
%((template:テンプレート名(template_name)))%
標準の構文が他のテンプレートシステムと競合する場合に備えて、代替構文もあります。
%{{template:テンプレート名(template_name)}}%
テンプレート構文と一緒にテキストを含める場合、テンプレートの前のテキストのみが別のメッセージとして送信されます。テンプレート構文の後のテキストは無視されます。
変数補間
AIエージェントフローで定義した変数には、二重中括弧を使用します。
こんにちは {{customer_name}} 様、注文番号 #{{order_id}} についてお問い合わせありがとうございます。
この構文は、以下に適用されます。
- 回答間で保持されるセッション変数
- API呼び出しからキャプチャされたパラメータ
- フォームフィールドで収集された値
WhatsAppメッセージテンプレート
WhatsApp(ワッツアップ)は、より多くのパラメータを持つ異なる構文を使用します。
&((
namespace=[[ネームスペース(namespace)]]
template=[[テンプレート名(template_name)]]
fallback=[[フォールバックテキスト(fallback_text)]]
language=[[言語コード(language_code)]]
body_text=[[パラメータ1(parameter_1)]]
body_text=[[パラメータ2(parameter_2)]]
))&
この構文には、ネームスペース、テンプレート名、フォールバックテキスト、言語、および変数の本文テキストパラメータが含まれます。
一般的な構文の間違い
私たちが見る最も頻繁なエラーには、以下が含まれます。
- 一重中括弧
{variable}の代わりに二重中括弧{{variable}}を使用する - テンプレート構文の閉じパーセント記号を忘れる
reply:とpostback:のボタンタイプを混同する- テンプレート名または変数名にスペースを使用する(代わりにハイフンまたはアンダースコアを使用する)
AIエージェントでZendeskメッセージングテンプレート変数を使用する
構造化されたメッセージテンプレートは、ZendeskのAIエージェントで変数が本当に輝く場所です。これらのテンプレートを使用すると、コードを書かずにリッチでインタラクティブなエクスペリエンスを作成できます。
フォームテンプレートの作成
フォームテンプレートは、構造化された方法で顧客から情報を収集します。AIエージェントで作成するには、[設定(Settings)] > [CRM統合(CRM integration)] > [テンプレート(Templates)]に移動します。

フォームテンプレートを作成するときは、以下を構成します。
テンプレート名(Template name): これには、スペースまたは特殊文字を含めることはできません。ハイフンとアンダースコアのみが許可されています。名前は、省略記法で参照するものです。
フィールドタイプ(Field types): メール、テキスト、または選択(ドロップダウン)から選択します。すべてのフィールドラベルは130文字に制限されています。
変数名(Variable names): 各フィールドは、指定した名前で変数を作成します。これらの変数は、後続の会話ステップで使用できるようになります。
メッセージング入力をブロック(Block messaging input): 顧客がフォームを完了するまで、自由なテキストを入力できないようにするオプションの設定。
ベストプラクティスのヒント:フォームを5つ以下のフィールドに保ちます。長いフォームは、特にモバイルデバイスで大幅な離脱率が見られます。
カスタムJSONテンプレートの作成
カルーセル、リスト、またはNPS評価などのより複雑なインタラクションには、カスタムJSONテンプレートを使用します。これらにはある程度の技術的な知識が必要ですが、より高い柔軟性を提供します。
JSON構造は、Zendeskの構造化されたメッセージ形式に従います。複数のアイテムを含むカルーセルを作成できます。各アイテムには、画像、タイトル、説明、およびアクションボタンが含まれています。
会話フローへのテンプレートの追加
テンプレートを作成したら、AIエージェントのダイアログに挿入する必要があります。
- AIエージェントの設定で[テンプレート(Templates)]タブに移動します
- 省略コードをクリックしてクリップボードにコピーします
- 使用するダイアログを開きます
- 省略記法をAIエージェントのメッセージブロックに貼り付けます
![テンプレート名にコピー機能がある「省略記法(Shorthand)」列を表示する[テンプレート(Templates)]タブ。](/_next/image?url=https%3A%2F%2Fzen-marketing-documentation.s3.amazonaws.com%2Fdocs%2Fen%2Faiaa_rich_messaging_shorthand.png&w=1680&q=100)
会話がそのステップに達すると、テンプレートが自動的にレンダリングされます。テンプレートで変数(フォームフィールド名など)を定義した場合、これらの値がキャプチャされ、フローの後半で使用できます。
カスタムフィールドとメタデータを使用したデータの受け渡し
Zendeskメッセージングテンプレート変数の最も強力な用途の1つは、ウェブサイト、メッセージングウィジェット、およびサポートシステム間でデータを渡すことです。
Web Widgetへのデータの受け渡し
顧客が会話を開始するときに、カスタムフィールドを事前に入力できます。これは、顧客がどのページにいるか、どの製品を見ているか、またはアカウントのステータスなどのコンテキストを渡す場合に役立ちます。
以下はJavaScriptの実装です。
zE("messenger:set", "conversationFields", [
{ id: "7662882404114", value: "ブレードランナー(Blade Runner)" }
])
IDは、管理センター(Admin Center)からのカスタムフィールドIDです。これを見つけるには、[管理センター(Admin Center)] > [オブジェクトとルール(Objects and rules)] > [チケット(Tickets)] > [フィールド(Fields)]に移動します。
重要な要件: カスタムフィールドは、エンドユーザー編集可能(end-user editable) に設定する必要があります。この設定が無効になっている場合、データは渡されません。
このコードが実行されると、データはこの形式で会話メタデータに保存されます。
{
"metadata": {
"zen:ticket_field:7662882404114": "ブレードランナー(Blade Runner)"
}
}
AIエージェントでのメタデータの取得
AIエージェントフローでこのデータを使用するには、アクション(Action)を作成する必要があります。
- AI Agents Advancedダッシュボードで、[コンテンツ(Content)] > [アクション(Actions)]に移動します
- ターゲット「Sunshine Conversation」で新しいアクションを作成します
- 「会話メタデータの取得(Get conversation metadata)」タスクを選択します
- メタデータオブジェクトを取得し、パラメータとして保存します
[キー(Key)]フィールドには、完全なメタデータキー zen:ticket_field:7662882404114 を使用します(IDを実際のフィールドIDに置き換えます)。
アクションが実行されると、{{parameter_name}} 構文を使用して返信で値にアクセスできます。
欠損値の処理
メタデータが存在しない場合に常に備えてください。パラメータに値があるかどうかを確認する条件付きステップを追加し、それに応じて分岐します。存在する場合は事前に入力されたデータを表示し、存在しない場合は顧客に入力を求めます。
エスカレーション時のメタデータの更新
人間のエージェントにエスカレーションするときに、データをZendeskに送り返すこともできます。「会話メタデータの更新(Update conversation metadata)」アクションを以下で作成します。
- キー(Key):
zen:ticket_field:YOUR_FIELD_ID - 値(Value):
{{your_variable}}
このアクションをエスカレーションブロックに追加します。会話がエージェントに転送されると、チケットフィールドには変数値が自動的に入力されます。
重要な制限:
- 件名やステータスなどのシステムフィールドは、Sunshine Conversationsメタデータを介して更新できません
- ドロップダウンフィールドの場合、表示テキストではなく、関連付けられた タグ(tag) 値を渡す必要があります
- ルックアップフィールドの場合、カスタムオブジェクト、ユーザー、または組織のIDを渡します
実践的な実装例
Zendeskメッセージングテンプレート変数が違いを生む実際のシナリオを見てみましょう。
例1:ウェブページからの顧客コンテキストの事前入力
あるeコマース会社は、顧客が見ている製品をサポート会話に渡したいと考えています。
設定(Setup):
- Zendeskにカスタムテキストフィールド「閲覧中の製品(Product Viewing)」を作成します
- このJavaScriptを製品ページに追加します。
zE("messenger:set", "conversationFields", [ { id: "123456789", value: "ワイヤレスヘッドホンX1(Wireless Headphones X1)" } ]) - AIエージェントで、メタデータを取得するアクションを作成します
- あいさつメッセージで:「{{product_viewing}} をご覧になっているようですね。このアイテムについて質問はありますか?」
例2:APIを介した動的な製品推奨
ある小売会社は、購入履歴に基づいてパーソナライズされた製品推奨を表示したいと考えています。
設定(Setup):
- 顧客IDを使用して推奨を取得するAPI呼び出しステップを作成します
- 返された配列を変数として保存します(例:
recommendations) - 動的な構成でカルーセルを表示(Present Carousel)ステップを使用します
- カルーセルフィールドをマッピングします:タイトル(Title)=
recommendation.name、画像(Image)=recommendation.image_url - 各カルーセルアイテムは製品ページにリンクします
例3:チケットフィールドワークフローへのフォーム送信
あるソフトウェア会社は、テクニカルサポートにエスカレーションする前に、デプロイメント情報を収集したいと考えています。
設定(Setup):
- フィールドを含むフォームテンプレートを作成します:環境(Environment)(選択)、バージョン(Version)(テキスト)、問題の種類(Issue Type)(選択)
- フォームをエスカレーションフローに追加します
- 各フィールドから変数を作成します:
deployment_env、software_version、issue_type - エスカレーションする前に、各フィールドの会話メタデータを更新します
- チケットが作成されると、これらのフィールドはエージェント用に事前に入力されます
例4:会話フロー全体のセッション変数
ある旅行会社は、複数の回答にわたって顧客の目的地を記憶したいと考えています。
設定(Setup):
- 「旅行を予約(Book a trip)」の回答で、[オプションを表示(Present Options)]を使用して目的地を収集します
- 選択を
{{chosen_destination}}に保存します - 「別の回答にリンク(Link to another answer)」を使用して、顧客を「ホテルの推奨(Hotel recommendations)」に送信します
- ホテルの回答で、
{{chosen_destination}}を参照して関連するオプションを表示します - 後で、同じ変数を使用する「アクティビティの推奨(Activity recommendations)」にリンクします
このアプローチにより、顧客に何度も目的地を尋ねる必要がなくなります。
eesel AIを使用したテンプレート変数へのより簡単なアプローチ
Zendeskの変数システムが複雑だと感じている場合は、あなただけではありません。複数の構文タイプ、メタデータ要件、およびフィールド権限により、学習曲線が急峻になります。

eesel AIでは、コンテキストと変数に対して異なるアプローチを採用しました。当社のAIチームメイトは、ヘルプセンター、過去のチケット、マクロ、ドキュメントなどの既存のシステムに接続することにより、初日からビジネスを学習します。コンテキストは、手動で構成しなくても、会話を通じて自然に流れます。
Zendeskがテンプレート変数で行うことを、当社がどのように処理するかを以下に示します。
ノーコード変数渡し: JavaScriptを記述してデータをウィジェットに渡す代わりに、eesel AIはeコマースプラットフォーム、CRM、またはヘルプデスクと直接統合します。顧客データ、注文履歴、およびアカウントの詳細は、AIで自動的に利用できます。
自動コンテキスト保持: セッション変数は自動的に行われます。顧客が最初のメッセージでモバイルデバイスを使用していると述べた場合、変数を作成したりアクションを設定したりしなくても、そのコンテキストは会話全体で保持されます。
わかりやすい英語の指示: 省略記法を学習するのではなく、eesel AIに何をすべきかを指示するだけです。「払い戻しリクエストが30日を超える場合は、丁寧に拒否してストアクレジットを提供してください。」コード、構文、複雑なフローはありません。
段階的なロールアウト: エージェントが確認するためにeesel AIが返信を下書きすることから始めます。ビジネスを理解していることがわかったら、完全な自律的な解決に拡大します。実際のパフォーマンスに基づいてペースを制御します。
すでにZendeskを使用しているチームの場合、eesel AIはヘルプデスクと直接統合されます。AIは既存のマクロ、ヘルプセンターの記事、およびチケット履歴にアクセスできるため、移行がシームレスになります。
ベストプラクティスと始め方
Zendeskメッセージングテンプレート変数を実装する場合は、私たちが効果的であると見なしたことに基づいて、以下に推奨事項を示します。
命名規則
- 説明的な名前を使用します:
field1よりもcustomer_emailの方が優れています - アンダースコア付きの小文字に固執します:
OrderNumberではなくorder_number - Zendeskの予約語を避けます:変数名として
ticket、user、またはorganizationを使用しないでください - 短く保ちます:メッセージブロックでこれらを頻繁に入力します
本番稼働前のテスト
変数の流れを常に徹底的にテストします。
- 欠損値でテストして、条件付きロジックが機能することを確認します
- 異なるチャネル(ウェブウィジェット、モバイルSDK、WhatsApp)でテストします
- チケットフィールドが正しく入力されることを確認するために、エスカレーションパスをテストします
- 公開する前に、Zendeskの会話プレビューを使用してスポットチェックを行います
セキュリティに関する考慮事項
- 会話メタデータを通じて機密データ(クレジットカード番号、パスワード)を渡さないでください
- どのフィールドがエンドユーザー編集可能であるかを確認します。機密フィールドの編集を無効にします
- 統合には最小限の必要な権限を持つAPIトークンを使用します
- カスタムフィールドとアクションを定期的に監査します
パフォーマンスのヒント
- API呼び出しを最小限に抑えます。可能な場合はデータをキャッシュします
- 変更されないデータには、繰り返されるAPI呼び出しの代わりにセッション変数を使用します
- 放棄を減らすために、フォームテンプレートを短く保ちます
- レスポンシブなパフォーマンスを確保するために、モバイルデバイスで変数が多いフローをテストします
次のステップ
シンプルに始めましょう。顧客の名前であいさつをしたり、単一のカスタムフィールドを事前に入力したりするなど、1つのユースケースを選択します。複雑なマルチ変数ワークフローを構築する前に、基本的な構文に慣れてください。
基本をマスターしたら、Apple Messages for BusinessまたはWhatsApp固有のフォーマットのメッセージオーバーライドなどの高度なテンプレート機能に関するZendeskのドキュメントを調べてください。
よくある質問
この記事を共有

Article by
Stevia Putri
Stevia Putri is a marketing generalist at eesel AI, where she helps turn powerful AI tools into stories that resonate. She’s driven by curiosity, clarity, and the human side of technology.


