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

KARTE TALKやWebhookのアクションでは、Widget用のJavaScript APIを利用できません。
代わりに「アクションテーブル変数」を利用してアクションテーブルの中身を参照できます。

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

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

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

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

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

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

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

共通のプロパティ

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

getByKey

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

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

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

🚧

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

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

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

Updated about a year ago

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


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.