メッセージテンプレート
メッセージテンプレート by Workatoコネクターを使用すると、レシピ内でよく使用するメッセージ向けに静的なメッセージテンプレートを作成して使用できます。 これらのテンプレートは、テンプレート言語としてMustacheを使用します。 メッセージテンプレートを使用して、HTML、テキスト、JSON、XMLメッセージを生成できます。 また、メッセージ作成ロジック(メッセージの外観)をメッセージ生成ロジック(メッセージが送信されるタイミング)から分離できます。 この分離により、メッセージを送信するレシピを変更せずにメッセージ形式を変更できます。
Workatoテンプレートは"logic-less"です。 つまり、ループやifおよびelseを含む条件文などのフローロジックは、テンプレート内ではサポートされません。 テンプレートでは、変数置換、条件付きブロック、リスト反復のためのMustacheタグを使用できます。 二重中括弧({{}})でテキストを囲んでタグを作成します。
各メッセージテンプレートには、テンプレートのタグに渡す必要がある変数を定義する入力スキーマが関連付けられています。 レシピ開発者は、レシピ内でメッセージテンプレートを使用するときに、入力スキーマの値を指定する必要があります。
メッセージテンプレートは有害な要素をエスケープします
メッセージテンプレートは、XMLインジェクションにつながる可能性があるものなど、潜在的に有害な一部のHTML要素をエスケープします。
メッセージテンプレートの例
UI開発者は、注文内の発送済み製品に関する送信メール用のHTMLテンプレートを構築します。 メッセージテンプレートにはCSSが含まれており、動的コンテンツにテンプレート変数を使用します。
変数置換を使用したHTMLテンプレート
その後、レシピ開発者は、使用するテンプレートを選択し、メッセージ変数の値を指定してメールメッセージを生成します。
メッセージテンプレートの作成方法
新しいテンプレートを作成するには、次の手順を実行します。
ツール > メッセージテンプレートに移動し、+ New templateをクリックします。
Template bodyフィールドにメッセージの本文テキストを入力します。 このフィールドでは、テンプレート言語としてMustacheを使用します。 詳細については、Mustacheドキュメントを参照してください。
Template inputフィールドに変数を追加します。 JSONを使用するか、変数を手動で作成できます。 テンプレート変数は、スカラーデータ型(string、integer、date、number、time、boolean)と複合データ型(object、list)の両方をサポートします。 Create messageアクションを使用して、レシピ内でテンプレート変数の値を定義できます。
変数が定義されたテンプレート
変数
変数タグを使用すると、テンプレート内にプレースホルダーを指定できます。 タグはデフォルトでは変数ですが、追加の構文文字を使用してセクション、反転セクション、コメント、パーシャルにできます。
変数タグはデフォルトでHTMLエスケープされます。 変数タグのエスケープを解除するには、三重中括弧を使用するか、&で開始します。例: {{{email}}}または{{& email}}。
変数を含むテンプレート定義の例
次のテンプレートでは、変数name、email、およびHTMLエスケープされたbioを定義しています。
変数を含むテンプレート
次の値をテンプレートに渡す場合:
{
"name": "Fiona Summers",
"bio": "<b>President of debate club</b>"
}次のテンプレート出力を受け取ります:
<html>
<body>
<p>Fiona Summers</p>
<p></p>
<p><b>President of debate club</b></p>
<p><strong>President of debate club</strong></p>
</body>
</html>セクション
セクションを使用して、テキストブロックを複数回レンダリングできます。 開始セクションタグは#で始まります。例: {{#user}}。 終了タグは/で始まります。例: {{/user}}。 セクションタグに渡される値によって、テキストブロックがレンダリングされる回数が決まります。
オブジェクトセクション
セクション変数の値がオブジェクトの場合、セクションは1回だけレンダリングされます。 ブロックは、オブジェクト内で宣言されたすべてのキーにアクセスできます。
オブジェクトセクションを含むテンプレート定義の例
次のテンプレートでは、フィールドname、email、phoneを持つオブジェクトセクションuserを定義しています。
オブジェクトセクションを含むテンプレート
次の値をテンプレートに渡す場合:
{
"user": {
"name": "Fiona Summers",
"email": "[email protected]",
"phone": "650 8xx 7567"
}
}次のテンプレート出力を受け取ります:
<html>
<body>
<div class="user">
<p> Fiona Summers </p>
<p> [email protected] </p>
<p> 650 8xx 7567 </p>
</div>
</body>
</html>リストセクション
セクション変数の値がリストの場合、複数回レンダリングされます。 ブロックは、リストの行で宣言されたすべてのキーにアクセスできます。 テンプレート応答で複数の値を取得するには、配列を使用します。
リストセクションを含むテンプレート定義の例
次のテンプレートでは、フィールドproduct_name、qty、price、totalを持つリストセクションorder_linesを定義しています。
リストセクションを含むテンプレート
次の値をテンプレートに渡す場合:
{
"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>
<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を定義しています。
反転セクションを含むテンプレート
次の値をテンプレートに渡す場合:
{
"id": "KA100",
"order_lines": []
}次のテンプレート出力を受け取ります:
<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>
<body>
{{!
Render the management section for administrators
}}
{{#admin}}
<div class="user-management">
<a href="/admin">Manage users</a>
</div>
{{/admin}}
</body>
</html>次の値をテンプレートに渡す場合:
{
"admin": true
}次のテンプレート出力を受け取ります:
<html>
<body>
<div class="user-management">
<a href="/admin">Manage users</a>
</div>
</body>
</html>パーシャル
パーシャルタグは>で始まります。例: {{> common_css }}。 パーシャルを使用すると、再利用可能なテンプレートスニペットを作成できます。 Workatoはネストされたパーシャルをサポートしています。 無限に再帰するパーシャルを避けるよう注意する必要があります。
パーシャルは親の呼び出しコンテキストを継承します。
テンプレート/パーシャル定義の例
次のテンプレートでは、パーシャルheaderを定義しています。
<div class="header">
<a href="/">Home</a>
<a href="/users">Users</a>
<a href="/logout">Logout</a>
<p> {{user_name}} </p>
</div>次はheaderパーシャルを参照しています。
<html>
<body>
{{> header }}
<div class="user-management">
<a href="/admin">Manage users</a>
</div>
</body>
</html>次の値をテンプレートに渡す場合:
{
"user_name": "Fiona Summers"
}次のテンプレート出力を受け取ります:
<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アクションの使用
入力
| 入力 | 説明 |
|---|---|
| ドキュメントテンプレート | 使用する予定のテンプレートを選択します。 |
| テンプレート入力 | このレシピ内で使用するテンプレートのタグに、データピルまたは固定値を指定します。 |
出力
| 出力 | 説明 |
|---|---|
| ドキュメント | Template inputフィールドの値が関連するタグに渡され、Document templateから生成される静的文字列。 |
Last updated: