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

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

🚧

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

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"]
}

getByQueryでアクションテーブルクエリを使ってレコードを取得する

アクションテーブルでは、アクションテーブルクエリを利用することで複雑な条件での問い合わせに対応できます。

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

  • query_name
    • アクションテーブルクエリ名
  • params
    • アクションテーブルクエリに渡すパラメタを指定するオブジェクト
{
  "method": "getByQuery",
  "table_name":"aaaa",
  "query_name": "bbbb",
  "params": {"ccc": "dddd"}
}

paramsで指定される値には、ユーザー情報変数を組み合わせることで、ユーザーが持つ固有の値をアクションテーブルの問い合わせ条件として指定することもできます。詳細はドキュメントをご確認ください。

アクションテーブル変数をアクションに埋め込む

一部のテンプレートでは、アクションテーブル変数の値をNunjucksの変数を通して参照することができます。

<ul>
  {% for item in table_items %}
    <li>#{item.name}</li>
  {% endfor %}
</ul>

Nunjucks記法の詳細については、こちらの記事をご覧ください。

📘

アクションテーブル変数が存在しない場合の配信制御

アクションテーブル変数を「必須入力」の変数に設定しているとき、アクションテーブル変数を解決する実データが返ってこなかった場合に、配信自体が行われません。この仕様によって、たとえば「レコメンドの結果が0件だった場合はメール送信自体をしない」などの配信制御を実現することができます。

🚧

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

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

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