メッセージテンプレート

このページは機械翻訳により提供されています。翻訳内容と英語版に相違がある場合は、英語版が優先されます。

メッセージテンプレート by Workatoコネクターを使用すると、レシピ内でよく使用するメッセージ向けに静的なメッセージテンプレートを作成して使用できます。 これらのテンプレートは、テンプレート言語としてMustacheを使用します。 メッセージテンプレートを使用して、HTML、テキスト、JSON、XMLメッセージを生成できます。 また、メッセージ作成ロジック(メッセージの外観)をメッセージ生成ロジック(メッセージが送信されるタイミング)から分離できます。 この分離により、メッセージを送信するレシピを変更せずにメッセージ形式を変更できます。

Workatoテンプレートは"logic-less"です。 つまり、ループやifおよびelseを含む条件文などのフローロジックは、テンプレート内ではサポートされません。 テンプレートでは、変数置換、条件付きブロック、リスト反復のためのMustacheタグを使用できます。 二重中括弧({{}})でテキストを囲んでタグを作成します。

各メッセージテンプレートには、テンプレートのタグに渡す必要がある変数を定義する入力スキーマが関連付けられています。 レシピ開発者は、レシピ内でメッセージテンプレートを使用するときに、入力スキーマの値を指定する必要があります。

メッセージテンプレートは有害な要素をエスケープします

メッセージテンプレートは、XMLインジェクションにつながる可能性があるものなど、潜在的に有害な一部のHTML要素をエスケープします。

メッセージテンプレートの例

UI開発者は、注文内の発送済み製品に関する送信メール用のHTMLテンプレートを構築します。 メッセージテンプレートにはCSSが含まれており、動的コンテンツにテンプレート変数を使用します。

変数置換を使用したHTMLテンプレート 変数置換を使用したHTMLテンプレート

その後、レシピ開発者は、使用するテンプレートを選択し、メッセージ変数の値を指定してメールメッセージを生成します。

メッセージテンプレートの作成方法

新しいテンプレートを作成するには、次の手順を実行します。

1

ツール > メッセージテンプレートに移動し、+ New templateをクリックします。

2

Template bodyフィールドにメッセージの本文テキストを入力します。 このフィールドでは、テンプレート言語としてMustacheを使用します。 詳細については、Mustacheドキュメントを参照してください。

3

Template inputフィールドに変数を追加します。 JSONを使用するか、変数を手動で作成できます。 テンプレート変数は、スカラーデータ型(string、integer、date、number、time、boolean)と複合データ型(object、list)の両方をサポートします。 Create messageアクションを使用して、レシピ内でテンプレート変数の値を定義できます。

入力済みのTemplate input変数が定義されたテンプレート

変数

変数タグを使用すると、テンプレート内にプレースホルダーを指定できます。 タグはデフォルトでは変数ですが、追加の構文文字を使用してセクション、反転セクション、コメント、パーシャルにできます。

変数タグはデフォルトでHTMLエスケープされます。 変数タグのエスケープを解除するには、三重中括弧を使用するか、&で開始します。例: {{{email}}}または{{& email}}

変数を含むテンプレート定義の例

次のテンプレートでは、変数nameemail、およびHTMLエスケープされたbioを定義しています。

変数を含むテンプレート変数を含むテンプレート

次の値をテンプレートに渡す場合:

javascript
{
  "name": "Fiona Summers",
  "bio": "<b>President of debate club</b>"
}

次のテンプレート出力を受け取ります:

html
<html>
  <body>
    <p>Fiona Summers</p>
    <p></p>
    <p>&lt;b&gt;President of debate club&lt;/b&gt;</p>
    <p><strong>President of debate club</strong></p>
  </body>
</html>

セクション

セクションを使用して、テキストブロックを複数回レンダリングできます。 開始セクションタグは#で始まります。例: {{#user}}。 終了タグは/で始まります。例: {{/user}}。 セクションタグに渡される値によって、テキストブロックがレンダリングされる回数が決まります。

オブジェクトセクション

セクション変数の値がオブジェクトの場合、セクションは1回だけレンダリングされます。 ブロックは、オブジェクト内で宣言されたすべてのキーにアクセスできます。

オブジェクトセクションを含むテンプレート定義の例

次のテンプレートでは、フィールドnameemailphoneを持つオブジェクトセクションuserを定義しています。

オブジェクトセクションを含むテンプレートオブジェクトセクションを含むテンプレート

次の値をテンプレートに渡す場合:

javascript
{
  "user": {
    "name": "Fiona Summers",
    "email": "[email protected]",
    "phone": "650 8xx 7567"
  }
}

次のテンプレート出力を受け取ります:

html
<html>
  <body>
    <div class="user">
      <p> Fiona Summers </p>
      <p> [email protected] </p>
      <p> 650 8xx 7567 </p>
    </div>
  </body>
</html>

リストセクション

セクション変数の値がリストの場合、複数回レンダリングされます。 ブロックは、リストの行で宣言されたすべてのキーにアクセスできます。 テンプレート応答で複数の値を取得するには、配列を使用します。

リストセクションを含むテンプレート定義の例

次のテンプレートでは、フィールドproduct_nameqtypricetotalを持つリストセクションorder_linesを定義しています。

リストセクションを含むテンプレートリストセクションを含むテンプレート

次の値をテンプレートに渡す場合:

javascript
{
  "id": "KA100",
  "order_lines": [
    { "product_name": "Anker USB charger", "qty": 1, "price": "15.99", "total": "15.99" },
    { "product_name": "Guard screen protector", "qty": 1, "price": "7.50", "total": "7.50" }
  ]
}

次のテンプレート出力を受け取ります:

html
<html>
  <body>
    <table>
      <tr  class="order-lines">
        <td>Anker USB charger</td>
        <td>1</td>
        <td>15.99</td>
        <td>15.99</td>
      </tr>
      <tr  class="order-lines">
        <td>Guard screen protector</td>
        <td>1</td>
        <td>7.50</td>
        <td>7.50</td>
      </tr>
    </table>
  </body>
</html>

反転セクション

反転セクションは、テンプレート変数が存在しない、falseである、または空のリストである場合にレンダリングされます。 開始反転セクションタグは^で始まります。例: {{^order_lines}}。 終了タグは/で始まります。例: {{/order_lines}}

反転セクションを含むテンプレート定義の例

次のテンプレートでは、order_linesリストが存在しない、falseである、または空の場合にエラーメッセージNo error lines!!を表示する反転セクションorder_linesを定義しています。

リストセクションを含むテンプレート反転セクションを含むテンプレート

次の値をテンプレートに渡す場合:

javascript
{
  "id": "KA100",
  "order_lines": []
}

次のテンプレート出力を受け取ります:

html
<html>
  <body>
    <table>
      <tr  class="no-order-lines">
        <td>No order lines!</td>
      </tr>
    </table>
  </body>
</html>

コメント

コメントタグは!で始まります。例: {{! comment}} コメントは、テンプレートからメッセージが生成されるときに無視されます。

コメントを含むテンプレート定義の例

次のテンプレートには、コメントRender the management section for administratorsが含まれています。

html
<html>
  <body>
    {{!
      Render the management section for administrators
    }}
    {{#admin}}
    <div class="user-management">
      <a href="/admin">Manage users</a>
    </div>
    {{/admin}}
  </body>
</html>

次の値をテンプレートに渡す場合:

javascript
{
  "admin": true
}

次のテンプレート出力を受け取ります:

html
<html>
  <body>
    <div class="user-management">
      <a href="/admin">Manage users</a>
    </div>
  </body>
</html>

パーシャル

パーシャルタグは>で始まります。例: {{> common_css }}。 パーシャルを使用すると、再利用可能なテンプレートスニペットを作成できます。 Workatoはネストされたパーシャルをサポートしています。 無限に再帰するパーシャルを避けるよう注意する必要があります。

パーシャルは親の呼び出しコンテキストを継承します。

テンプレート/パーシャル定義の例

次のテンプレートでは、パーシャルheaderを定義しています。

html

<div class="header">
  <a href="/">Home</a>
  <a href="/users">Users</a>
  <a href="/logout">Logout</a>
  <p> {{user_name}} </p>
</div>

次はheaderパーシャルを参照しています。

html
<html>
  <body>
    {{> header }}
    <div class="user-management">
      <a href="/admin">Manage users</a>
    </div>
  </body>
</html>

次の値をテンプレートに渡す場合:

javascript
{
  "user_name": "Fiona Summers"
}

次のテンプレート出力を受け取ります:

html
<html>
  <body>
    <div class="header">
      <a href="/">Home</a>
      <a href="/users">Users</a>
      <a href="/logout">Logout</a>
      <p> Fiona Summers </p>
    </div>
    <div class="user-management">
      <a href="/admin">Manage users</a>
    </div>
  </body>
</html>

Create messageアクション

レシピ内で、メッセージを作成アクションをメッセージテンプレート by Workatoアダプターで使用して、メッセージテンプレートからメッセージを生成します。

少なくとも1つのテンプレートが必要

Create messageアクションを使用するには、ワークスペースに少なくとも1つのテンプレートが保存されている必要があります。

Create messageアクションレシピ内でのCreate messageアクションの使用

入力

入力説明
ドキュメントテンプレート使用する予定のテンプレートを選択します。
テンプレート入力このレシピ内で使用するテンプレートのタグに、データピルまたは固定値を指定します。

出力

出力説明
ドキュメントTemplate inputフィールドの値が関連するタグに渡され、Document templateから生成される静的文字列。

Last updated: