コンテンツにスキップ

送信前にキャンバスでプロファイルデータを更新する

ジャーニーが数日から数週間続く場合、ユーザーがキャンバスにエントリした後にプロファイルデータが変更される可能性があります。コンテキストステップを使用してプロファイル上の一致するオブジェクトを検索し、オーディエンスパスまたは条件分岐でメッセージングを分岐させます。

この例について

架空の保険ブランド ClaimsJumpr は、ポリシーの更新期限が28日前になるとアクションベースのキャンバスを開始します。この28日間に、ClaimsJumpr は数回のリマインダーを送信します。ポリシー保有者はエントリ後にそのポリシーの自動更新を変更できるため、キャンバスエントリプロパティだけを使用するメッセージでは、誤ったステータスが表示される可能性があります。

各ユーザープロファイルには、ポリシーがオブジェクト配列のカスタム属性(policies)として保存されています。各オブジェクトには、トリガーイベントに含まれる一意の policy_id と、auto_renewal の値(opted_in または opted_out)が含まれます。この例では、後続のメッセージステップの前にコンテキストステップを追加して、Liquidがキャンバスコンテキスト(エントリイベント)の policy_id と一致するオブジェクトを policies から読み取るようにします。

このパターンでは以下のことを行います。

  1. エントリの policy_id をキャンバスコンテキストに保持します。
  2. コンテキストステップとLiquidの where フィルターを使用して、policies から一致するオブジェクトを選択します。
  3. auto_renewal をコンテキスト変数(auto_renewal)としてデータ型 String で保存します。
  4. この記事では重複する中止Liquidではなく、オーディエンスパスまたは条件分岐のコンテキスト変数フィルターでコピーをルーティングします。

考慮事項

  • 本番以外のワークスペースでキャンバスをテストしてください。オブジェクトに auto_renewal が欠落しているプロファイルも含めてテストしてください。
  • policies 内の policy_id の値は一意にして、where が1つのオブジェクトだけを返すようにしてください。
  • 別のキャンバスが同じトリガーイベントから User Update ステップを使用して policies を書き込む場合、最初のメッセージの前にプロファイルが更新されない可能性があります。エントリ後の最初のメッセージステップには、エントリコンテキストプロパティを使用してください。プロファイルの更新が適用される時間を確保した後のステップに、このコンテキストステップを使用してください。
  • コンテキスト変数名には、文字、数字、アンダースコアのみ使用できます(最大100文字)。1つのコンテキストステップにつき最大10個の変数を定義できます。
  • この記事のLiquidは例です。属性名と値に合わせて、ユーザーパスのプレビューとテスト送信を行ってください。

設定

この例では以下を前提としています。

アセット 詳細
エントリ policy_renewal_window_started などのカスタムイベントに基づくアクションベースのキャンバス(イベントプロパティ policy_id あり)
カスタム属性 policies — オブジェクトの配列。各オブジェクトに policy_id と auto_renewal を含む
コンテキスト変数 auto_renewal — 文字列(opted_in または opted_out)

ステップ1: 後続メッセージの前にコンテキストステップを配置する

キャンバスで、現在の自動更新ステータスを反映する必要があるメッセージステップの直前にコンテキストステップを追加します。後続の送信ではエントリプロパティだけに頼らないでください。

ステップ2: コンテキスト変数を定義する

コンテキストステップで以下を行います。

  1. コンテキスト変数名を auto_renewal に設定します。
  2. データ型を String に設定します。
  3. 一致するポリシーを選択して auto_renewal を出力するLiquidを入力します。assign のソースを追加の {{ }} タグで囲まないでください。
{% assign matched_policies = custom_attribute.${policies} | where: "policy_id", context.${policy_id} %}
{{ matched_policies[0].auto_renewal }}

context.${policy_id} はエントリイベントのプロパティで、コンテキスト変数として利用できます。where は policy_id がその値と一致するオブジェクトを保持します。コンテキストステップは最初に一致した auto_renewal フィールドを保存します。

  1. プレビューを選択し、policies にその policy_id を持つテストユーザーの値を確認します。

名前、データ型、Liquidの制限については、コンテキストとコンテキスト変数を参照してください。

ステップ3: コンテキスト変数で分岐する

コンテキストステップの後、auto_renewal のオーディエンスパスまたは条件分岐フィルターでユーザーを分割します(例: opted_in と opted_out の比較)。各パスに対応するリマインダーを配置します。

メッセージステップで分岐する代わりに送信を中止した場合、ユーザーは次のキャンバスステップに進みます。詳細については、メッセージの中止とユーザーの進行方法を参照してください。

ステップ4: プレビューとテスト

ユーザーパスのプレビューとテスト送信で以下を確認します。

  • 一致するオブジェクトの auto_renewal が opted_in および opted_out の場合
  • policies に存在しない policy_id の場合(空またはブランクのコンテキスト値)
  • auto_renewal が省略されているオブジェクトの場合

後続のリマインダーが、キャンバスエントリ時のステータスだけでなく、プロファイルと一致していることを確認してください。

New Stuff!