Widget以外のアクションからアクションテーブルにアクセスする

メール、LINEなどのアクションでは、JavaScriptを利用できないため、Widgetと同じようにアクションテーブルを参照することはできません。
代わりに「アクションテーブル変数」を利用してアクションテーブルの中身を参照できます。

🚧

ネイティブアプリプッシュ通知ではアクションテーブル変数を利用できません

2023年10月現在、ネイティブアプリプッシュ通知の接客アクションではアクションテーブル変数を利用できる機能が実装されていません。

https://support.karte.io/post/25aiWuk0W2zkU385INqduk#2-0

各種配信方法で、下記の代替方法を利用してください

アクションテーブル変数とは

アクション編集画面で、「アクションテーブル変数」という種類の変数を定義できます。
アクションテーブル変数をアクション内に記述すると、配信時にアクションテーブルへの問い合わせが実行され、その結果値で置換された状態でアクションが配信されます。

埋め込まれた変数は、アクションの配信前に実際の値で置換されます。
なお、変数の埋め込みはNunjucksを利用して行います。

アクションテーブル変数を作成する

  • アクション編集画面で「カスタマイズ」タブを開く
  • 「変数」タブを開く
  • 「変数の追加」から変数を追加
  • 変数タイプで「アクションテーブル」を選択
  • 「変数名」、「表示名」を入力
  • 問い合わせ方法を指定するためのJSON値を入力

アクションテーブル変数の値

アクションテーブル変数の値には、JSON値を指定します。
アクションテーブルへの問い合わせ方法に応じて、必要なプロパティが異なります。

共通のプロパティ

  • method
    • メソッド名
    • 以下から選択してください
      • getByKey
      • getByKeys
      • getByQuery
  • table_name
    • 問い合わせ先アクションテーブル名

getByKey

methodgetByKeyを指定することで、主キー値を指定してレコード取得ができます。

  • key
    • 取得するレコードの主キー値
{
  "method": "getByKey",
  "table_name":"aaaa",
  "key": "dddd"
}

🚧

getByKeyの結果の出力形式

getByKeyについても、結果はObjectではなくObjectの配列で出力されます。

getByKeys

methodgetByKeysを指定することで、複数の主キー値を指定してレコード取得ができます。

  • keys
    • 取得するレコードの主キー値の配列
{
  "method": "getByKeys",
  "table_name":"aaaa",
  "keys": ["dddd","eeee"]
}

アクションテーブルクエリを使って問い合わせる

methodgetByQueryを指定することで、アクションテーブルクエリに指定した条件でレコード取得ができます。

  • 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件だった場合はメール送信自体をしない」などの配信制御を実現することができます。

🚧

プレビュー画面ではアクションテーブル変数が置換されません

アクション編集画面のプレビューでは、アクションテーブル変数が動作しません。実際の変数解決はテスト配信で検証してください。

また、その影響で変数解決でエラーが発生する場合があります。その場合は、プレビュー表示用に「仮値」を設定してください。