Widget以外のアクションからアクションテーブルにアクセスする
メール、LINE、ネイティププッシュ通知などのアクションでは、JavaScriptを利用できないため、Widgetと同じようにアクションテーブルを参照することはできません。
代わりに「アクションテーブル変数」を利用してアクションテーブルの中身を参照できます。
アクションテーブル変数とは
アクション編集画面で、「アクションテーブル変数」という種類の変数を定義できます。
アクションテーブル変数をアクション内に記述すると、配信時にアクションテーブルへの問い合わせが実行され、その結果値で置換された状態でアクションが配信されます。
埋め込まれた変数は、アクションの配信前に実際の値で置換されます。
なお、変数の埋め込みはNunjucksを利用して行います。
アクションテーブル変数を作成する
- アクション編集画面で「カスタマイズ」タブを開く
- 「変数」タブを開く
- 「変数の追加」から変数を追加
- 変数タイプで「アクションテーブル」を選択
- 「変数名」、「表示名」を入力
- 問い合わせ方法を指定するためのJSON値を入力
アクションテーブル変数の値
アクションテーブル変数の値には、JSON値を指定します。
アクションテーブルへの問い合わせ方法に応じて、必要なプロパティが異なります。
共通のプロパティ
method
- メソッド名
- 以下から選択してください
getByKey
getByKeys
getByQuery
table_name
- 問い合わせ先アクションテーブル名
getByKey
method
にgetByKey
を指定することで、主キー値を指定してレコード取得ができます。
key
- 取得するレコードの主キー値
{
"method": "getByKey",
"table_name":"aaaa",
"key": "dddd"
}
getByKeyの結果の出力形式
getByKeyについても、結果はObjectではなくObjectの配列で出力されます。
getByKeys
method
にgetByKeys
を指定することで、複数の主キー値を指定してレコード取得ができます。
keys
- 取得するレコードの主キー値の配列
{
"method": "getByKeys",
"table_name":"aaaa",
"keys": ["dddd","eeee"]
}
アクションテーブルクエリを使って問い合わせる
method
にgetByQuery
を指定することで、アクションテーブルクエリに指定した条件でレコード取得ができます。
query_name
- アクションテーブルクエリ名
params
- アクションテーブルクエリに渡すパラメタを指定するオブジェクト
{
"method": "getByQuery",
"table_name":"aaaa",
"query_name": "bbbb",
"params": {"ccc": "dddd"}
}
アクションテーブル変数をアクションに埋め込む
アクションテーブル変数の値は、Nunjucksの変数を通して参照することができます。
<ul>
{% for item in table_items %}
<li>#{item.name}</li>
{% endfor %}
</ul>
Nunjucks記法の詳細については、こちらの記事をご覧ください。
アクションテーブル変数が存在しない場合の配信制御
アクションテーブル変数を「必須入力」の変数に設定しているとき、アクションテーブル変数を解決する実データが返ってこなかった場合に、配信自体が行われません。この仕様によって、たとえば「レコメンドの結果が0件だった場合はメール送信自体をしない」などの配信制御を実現することができます。
プレビュー画面ではアクションテーブル変数が置換されません
アクション編集画面のプレビューでは、アクションテーブル変数が動作しません。実際の変数解決はテスト配信で検証してください。
また、その影響で変数解決でエラーが発生する場合があります。その場合は、プレビュー表示用に「仮値」を設定してください。
Updated 7 months ago