永続的なエントリプロパティ
キャンバスがカスタムイベント、購入、またはAPI呼び出しによってトリガーされた場合、API呼び出し、カスタムイベント、または購入イベントのメタデータを使用して、キャンバスワークフローの各ステップでパーソナライゼーションを行うことができます。これらのプロパティを使用して、よりキュレートされたメッセージを送信できます。

永続的なエントリプロパティは、元のキャンバスエディターのアーティファクトであるため、キャンバスエントリプロパティなどの用語への非推奨の参照が歴史的な参考として残っています。現在のキャンバスエディターについては、コンテキストとイベントプロパティを参照してください。
現在のキャンバスエディターで永続的なエントリプロパティを使用するには、新しいキャンバスを作成するか、既存のキャンバスを現在のエディターに複製する必要があります。
エントリプロパティの使用
エントリプロパティは、アクションベースおよびAPIトリガーのキャンバスで使用できます。これらのエントリプロパティは、キャンバスがカスタムイベント、購入、またはAPI呼び出しによってトリガーされたときに定義されます。詳細については、以下の記事を参照してください。
これらのオブジェクトから渡されたプロパティは、canvas_entry_properties Liquidタグを使用して参照できます。例えば、"canvas_entry_properties": {"product_name": "shoes", "product_price": 79.99} というリクエストでは、Liquid {{canvas_entry_properties.${product_name}}}を追加することで、メッセージに「shoes」という単語を追加できます。
キャンバスにcanvas_entry_properties Liquidタグを含むメッセージがある場合、それらのプロパティに関連付けられた値は、ユーザーのキャンバス内のジャーニーの間保存され、ユーザーがキャンバスを退出すると削除されます。キャンバスエントリプロパティは、Liquidでの参照にのみ使用できます。キャンバス内でプロパティによるフィルタリングを行うには、代わりにイベントプロパティセグメンテーションを使用してください。

キャンバスエントリプロパティオブジェクトの最大サイズは50 KBです。
エントリプロパティを使用するためのキャンバスの更新
以前canvas_entry_propertiesを使用するメッセージを含んでいなかったアクティブなキャンバスを編集してcanvas_entry_propertiesを含めるようにした場合、そのプロパティに対応する値は、canvas_entry_propertiesがキャンバスに追加される前にキャンバスに入ったユーザーには利用できません。値は、変更が行われた後にキャンバスに入ったユーザーに対してのみ保存されます。
例えば、11月3日にエントリプロパティを使用しないキャンバスを最初に起動し、11月11日にキャンバスに新しいプロパティproduct_nameを追加した場合、product_nameの値は11月11日以降にキャンバスに入ったユーザーに対してのみ保存されます。
キャンバスエントリプロパティがnullまたは空白の場合、条件文を使用してメッセージを中止できます。以下のコードスニペットは、Liquidを使用してメッセージを中止する方法の例です。
1
2
3
{% if canvas_entry_properties.${product_name} == blank %}
{% abort_message() %}
{% endif %}
Liquidを使用したメッセージの中止について詳しくは、Liquidドキュメントをご覧ください。
グローバルキャンバスエントリプロパティ
canvas_entry_propertiesを使用すると、すべてのユーザーに適用されるグローバルプロパティ、または指定されたユーザーにのみ適用されるユーザー固有のプロパティを設定できます。ユーザー固有のプロパティは、そのユーザーのグローバルプロパティを上書きします。
リクエスト例
curl -X POST \
-H 'Content-Type: application/json' \
-d '{
"api_key": "a valid rest api key",
"canvas_id": "the ID of your Canvas",
"canvas_entry_properties": {
"food_allergies": "none"
},
"recipients": [
{
"external_user_id": "Customer_123",
"canvas_entry_properties": {
"food_allergies": ["dairy", "soy"],
"nutrition": {
"calories_per_serving": 200,
"serving_size_in_ounces": 4
}
}
}
]
}'
このリクエストでは、「food allergies」のグローバル値は「none」です。Customer_123の場合、値は「dairy」です。このキャンバス内のLiquidスニペット{{canvas_entry_properties.${food_allergies}}}を含むメッセージは、Customer_123には「dairy」、その他のユーザーには「none」としてテンプレート化されます。
ユースケース
ユーザーがeコマースサイトでアイテムを閲覧したがカートに追加しなかった場合にトリガーされるキャンバスがある場合、キャンバスの最初のステップは、そのアイテムの購入に興味があるかどうかを尋ねるプッシュ通知にすることができます。{{canvas_entry_properties.${product_name}}}を使用して製品名を参照できます。

2番目のステップでは、ユーザーがアイテムをカートに追加したがまだ購入していない場合に、チェックアウトを促す別のプッシュ通知を送信できます。{{canvas_entry_properties.${product_name}}}を使用して、引き続きproduct_nameエントリプロパティを参照できます。
