ロジックビルダーを使用してメールテンプレートに条件付きロジックを追加する方法
このページで学べること
ロジックビルダーを使用して、if/elseステートメントやforループのような動的な条件ロジックを、メールテンプレートのテキストブロックに直接追加する方法をご覧ください。これにより、コードを書かずに、受信者のプロファイルまたはカスタムプロパティに基づいて、受信者ごとにパーソナライズされたコンテンツを表示できます。
始める前に
ロジックビルダーは次で利用できます:
- ドラッグ&ドロップメールエディタ — テキストブロック、テーブルブロック、分岐ブロック
- テキストのみのメールエディタ — サイドパネルではなくモーダル経由
ロジックビルダーを使用するには、評価したいプロパティを持つプロファイルがアカウント内に少なくとも1件必要です。プロファイルプロパティとカスタムプロパティは、サインアップフォーム、CSVアップロード、E コマースの外部連携、その他のリスト増加ツールを通じて追加できます。
注意:ロジックビルダーはプロファイルプロパティとカスタムプロパティに対応しています。イベントデータには対応していません。ロジックでイベントデータを使用するには、[コードに変換]オプションを使用し、Djangoタグを直接記述してください。
if/elseステートメントを追加してください
if/elseステートメントを使用して、プロファイルまたはカスタムプロパティに基づき、受信者に表示するコンテンツを切り替えます。例えば、ロイヤルティポイントが500ポイントを超える顧客にのみVIP割引ブロックを表示し、それ以外のすべての顧客にはサインアップ特典を表示できます。
ドラッグ&ドロップエディターで
- 編集モードに入るには、テキストブロック、テーブルブロック、または分岐ブロックをダブルクリックします。
- ページ上部のツールバーにある [挿入] ボタンをクリックしてください。
- ドロップダウンメニューから If/else を選択します。
- 左側にサイドパネルが開き、キャンバスが右側に移動します。
- ifステートメントを設定します:
- 最初のドロップダウンを使用して、評価するプロファイルまたはカスタムプロパティを選択します。
- 2つ目のドロップダウンを使用して、演算子(例:次と等しい、次より大きい、設定されている)を選択します。
- 選択した演算子に応じて、比較対象となる値を入力するか選択してください。
- 必要に応じて、条件を追加をクリックして、ifステートメントに追加の条件を追加します。
- ANDまたはORを使用して条件を接続します。デフォルトではORが選択されています。
- 条件の複製ボタンをクリックして、新しいOR条件として複製します。
- else if の分岐を追加するには、Add else if をクリックし、同じ方法で条件を設定します。これらの条件を満たす(ただし if ステートメントは満たさない)受信者には、このコンテンツが表示されます。
- else分岐を追加するには、Elseチェックボックス(デフォルトでオン)をオンにします。キャンバス内のコンテンツを編集して、どの条件にも一致しない受信者に表示される内容を定義します。ボックスのチェックを外して、else分岐を完全に削除します。
- 条件ごとにキャンバス内のコンテンツを編集してください。各条件は、設定中は青いボックスとして表示されます。
- 完了したら、パネルを閉じてロジックを保存するには戻る矢印をクリックしてください。
ヒント:ブロックから設定済みのロジックをすべて削除するには、サイドパネルで Remove logic をクリックします。
注:最初のifステートメントで削除をクリックすると、ステートメント全体が削除されるのではなく、値がリセットされます。else ifまたはelseのブランチで削除をクリックすると、そのブランチが削除されます。
テキストのみのエディターで
上記と同じ手順に従いますが、テキスト編集ツールバーからInsertを選択してください。ロジックビルダーはサイドパネルではなく、modalで開きます。同じ設定オプションをすべて利用できます。
for ループを追加
forループを使用してアイテムのリストを反復処理し、それぞれに対して繰り返しコンテンツを表示します。たとえば、顧客が最近閲覧した商品をループ処理して、メールにそれぞれを表示できます。
ドラッグ&ドロップエディターで
- テキストブロック、テーブルブロック、または分岐ブロックをダブルクリックして開きます。
- ツールバーの Insert ボタンをクリックします。
- ドロップダウンメニューからFor loopを選択します。
- 左側にサイドパネルが開きます。
- 変数フィールドに、ループ処理したいリストを入力します(例:event.items)。
- アイテムのエイリアスフィールドに、ループ内の各アイテムを参照するための名前(例:item)を入力します。
- 各アイテムに対して表示される内容を定義するために、キャンバス内のコンテンツを編集します。
- パネルを閉じてロジックを保存するには、戻る矢印 をクリックします。
ヒント: ループを完全に削除するには、サイドパネルで [ロジックを削除] をクリックしてください。
設定可能なタグを追加
構成可能なタグを使用して、if/elseまたはfor ループのビルダーではカバーされない Django タグ(with ステートメントやカタログタグなど)を挿入できます。
- テキストブロック、テーブルブロック、または分岐ブロックをダブルクリックして開きます。
- ツールバーの Insert ボタンをクリックします。
- ドロップダウンメニューから設定可能なタグを選択します。
- 左側にサイドパネルが開きます。
- タグ名フィールドに、ブロックを開閉するタグ(例:with)を入力してください。
- コードのテキストエリアに、カスタムDjangoタグコードを追加します。
- 分岐を追加するには、[分岐を追加]をクリックしてください。これにより、別のタグ名とコードブロックを設定できる追加のセクションが作成されます。
- パネルを閉じてロジックを保存するには、戻る矢印 をクリックします。
ネストされたロジックを使用する
ロジック文は相互に入れ子にできます。たとえば、forループの中にif/else文を入れ子にできます。これにより、高度にターゲットを絞ったコンテンツシーケンスを構築できます。
ロジックがネストされている場合:
- 垂直線アイコンは、各ロジックステートメントのネストレベルを示します。
- 親ステートメントにカーソルを合わせると、ネストされたブロック全体がハイライト表示されます。
- 子ステートメントにカーソルを合わせると、その子のみがハイライト表示されます。
- 親ステートメントとは別に、子ステートメントを折りたたみおよび展開できます。
- 3階層を超えてロジックがネストされている場合、追加のネスト深度を示すために+[number]インジケーターが表示されます。
ロジックをコードに変換する
ロジックをより細かく制御する必要がある場合や、イベントデータや日付の比較などの未サポートの機能を使用したい場合は、ロジックビルダーの設定を未加工のDjangoコードに変換できます。
警告:ロジックをコードに変換する操作は一方向で、元に戻すことはできません。変換後、ロジックビルダーに戻すことはできません。
変換するには:
- 更新するブロックのロジックビルダーサイドパネルを開いてください。
- if/elseステートメントでは、各セグメント(if、else if)にそれぞれ独自のコードに変換ボタンがあります。変換するセグメントのボタンをクリックします。
- forループでは、ループ全体に対して単一の[コードに変換]ボタンをクリックしてください。
- 警告モーダルが表示されます。続行することを確認してください。
- 変換後、変換されたコードがサイドパネルのコードエディターに表示されます。そこから直接編集できます。
この変換済みステートは永続的です。パネルを閉じたりテンプレートから移動したりした後も保持されます。
テキストのみのエディターの違い
テキストのみのエディターのロジックビルダーは、ドラッグ&ドロップエディターと同じように機能しますが、1つ重要な違いがあります:ロジックはサイドパネルではなく、モーダルで設定します。if/else、for ループ、構成可能なタグ、ネスト、コードへの変換について、同じオプションをすべて利用できます。
ロジックを設定すると、ドラッグ&ドロップエディターと同様にキャンバスに表示されます。設定済みの条件で 編集 をクリックすると、モーダルが開き、さらに編集できます。