ユースケース: 予約リマインダーメールシステム
Brazeは、プログラムで高度に制御できるように設計された包括的なカスタマーエンゲージメントプラットフォームです。このユースケースでは、予約システムなど、製品とマーケティングが交わるユースケースに適用できるBrazeの機能をいくつかご紹介します。
このユースケースでは、Brazeの機能を使用して予約リマインダーメールメッセージングサービスを構築する方法を説明します。このサービスを使用すると、ユーザーは予定を予約でき、次回の予定のリマインダーメッセージが送信されます。このユースケースではメールメッセージを使用しますが、ユーザープロファイルを一度更新するだけで、任意のチャネルまたは複数のチャネルでメッセージを送信できます。
このサービスを作成するその他の利点は次のとおりです。
- 送信されたメッセージは完全にトラッキングされ、レポートに含まれます。
- 技術的な知識を持たない会社ユーザーでもメッセージのコンテンツを更新できます。
- メッセージは、Campaign設定に基づくユーザープロファイルのオプトインおよびオプトアウトステータスに従います。
- 予約データとメッセージのインタラクションデータの両方を使用して、ユーザーをセグメンテーションし、追加のメッセージングのターゲットにできます。例えば、最初のリマインダーメッセージを開封しなかったユーザーに対して、予約前に追加のリマインダーを送信してリターゲティングすることができます。
このユースケースを実現するには、次のステップに従ってください。
ステップ 1: 次の予約データをBrazeユーザープロファイルに書き込む
予約が行われるたびに、Brazeの/users/trackエンドポイントを使用して、階層化カスタム属性をユーザープロファイルに書き込みます。階層化カスタム属性には、リマインダーメッセージの送信とパーソナライズに必要な情報がすべて含まれていることを確認してください。このユースケースでは、階層化カスタム属性に「trips」という名前を付けます。
予約の追加
ユーザーが予約を作成する場合、オブジェクトの配列に次の構造を使用して、/users/trackエンドポイント経由でデータをBrazeに送信します。
1
2
3
4
5
6
7
8
9
10
11
12
{
"attributes": [
{
"external_id": "test-user",
"_merge_objects": true,
"trips": [
{"trip_id":"1","name":"London Trip","start_date"{$time:"2025-11-11"}},
{"trip_id":"2","name":"Sydney Trip","start_date"{$time:"2025-11-11"}}
]
}
]
}
階層化カスタム属性「trips」は、ユーザープロファイルに次のように表示されます。

予約の更新
ユーザーが予約を更新する場合、オブジェクトの配列に次の構造を使用して、/users/trackエンドポイント経由でデータをBrazeに送信します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"attributes": [
{
"external_id": "test-user",
"_merge_objects": true,
"trips": {
"$update:":[
{
"$identifier_key":"trip_id",
"$identifier_value":"1",
"$new_object":{"trip_id":"1","name":"London Trip","start_date":{"$time":"2025-11-11"}}
}
]
}
}
]
}
予約の削除
/users/trackエンドポイント経由でデータを送信する
ユーザーが予約を削除する場合、オブジェクトの配列に次の構造を使用して、/users/trackエンドポイント経由でデータをBrazeに送信します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"attributes": [
{
"external_id": "test-user",
"_merge_objects": true,
"trips": {
"$remove:":[
{
"$identifier_key":"trip_id",
"$identifier_value": "1"
}
]
}
}
]
}
SDK経由で階層化属性をユーザープロファイルに書き込む
アプリ、Webサイト、またはその両方で予約を収集し、そのデータをユーザープロファイルに直接書き込む場合は、Braze SDKを使用してこのデータを送信できます。以下はWeb SDKを使用した例です。
1
2
3
4
5
6
7
8
9
10
const json = [{
"id": 1,
"name": "London Trip",
"start_date": {"$time”: “2025-05-08”}
}, {
"id": 1,
"name": "Sydney Trip",
"start_date": {"$time”: “2025-11-11”}
}];
braze.getUser().setCustomUserAttribute("trips", json);
Brazeはユーザープロファイルの階層化カスタム属性から指定された予約を削除し、残りの予約を表示します。

ステップ 2: 予約リマインダーメッセージを設定して起動する
ステップ 2a: ターゲットオーディエンスを作成する
複数条件のセグメンテーションを使用して、リマインダーを受信するターゲットオーディエンスを作成します。例えば、予約日の2日前にリマインダーを送信する場合は、次のように選択します。
- 開始日まで1日超かつ
- 開始日まで2日以内

ステップ 2b: メッセージを作成する
カスタムHTMLを使用したメールの作成のステップに従って、リマインダーメールメッセージを作成します。この例のように、Liquidを使用して、作成したカスタム顧客属性(「trips」)のデータでメッセージをパーソナライズします。
1
2
3
4
5
6
7
8
9
10
{% assign dates = {{custom_attribute.${trips}}} %}
{% assign today = "now" | date: "%s" %}
{% assign two_days = today | plus: 172800 | date: "%F" %}
You have the following booked in 2 days! Check the information below:
{% for date in dates %}
{% if date.start_date == two_days %}
{{date.trip_id}}
{{date.name}}
{% endif %}
{% endfor %}
ステップ 2c: Campaignを起動する
リマインダーメールメッセージのCampaignを起動します。Brazeが「trips」カスタム属性を受信するたびに、該当する予約オブジェクトに含まれるデータに基づいてメッセージをスケジュールします。
ステップ 3: 更新された予約とキャンセルを処理する
リマインダーメッセージの送信を開始したら、予約が更新またはキャンセルされたときに送信する確認メッセージを設定できます。
ステップ 3a: 更新データを送信する
/users/trackエンドポイント経由でデータを送信する
ユーザーが予約を更新またはキャンセルしたときにカスタムイベントを送信するには、Brazeの/users/trackエンドポイントを使用します。このイベントでは、変更を確認するために必要なデータをイベントプロパティに含めます。
このユースケースでは、ユーザーがシドニー旅行の日付を更新したとします。イベントは次のようになります。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"events": [
{
"external_id": "user_id",
"name": "trip_updated",
"time": "2025-03-07T08:19:23+01:00",
"properties": {
"id": 2,
"name": "Sydney Trip",
"old_time": "2025-11-12"
"new_time": "2026-01-21"
}
}
]
}
SDK経由でカスタムイベントをユーザープロファイルに送信する
SDK経由でカスタムイベントをユーザープロファイルに送信します。例えば、Web SDKを使用している場合は、次のように送信できます。
1
2
3
4
5
6
braze.logCustomEvent("trip_updated", {
id: 2,
name: "Sydney Trip",
old_time: "2025-11-12",
new_time: "2026-01-21"
});
ステップ 3b: 更新を確認するメッセージを作成する
アクションベースのCampaignを作成して、更新された予約の確認をユーザーに送信します。Liquidを使用してイベントプロパティをテンプレート化し、予約の名前、以前の時刻、新しい時刻(キャンセルの場合は名前のみ)をメッセージ自体に反映できます。
例えば、次のようなメッセージを作成できます。
1
Hi {{${first_name}}}, you have successfully updated the date of your trip, {{event_properties.${name}}}, from {{event_properties.${old_time}}} to {{event_properties.${new_time}}}
ステップ 3c: 更新を反映するようにユーザープロファイルを変更する
最後に、最新のデータに基づいてステップ1および2の予約リマインダーを送信するために、階層化カスタム属性を更新して予約の変更またはキャンセルを反映します。
予約の更新
このユースケースのユーザーがシドニー旅行を更新した場合、/users/trackエンドポイントを使用して、次のようなコールで日付を変更します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"attributes": [
{
"external_id": "user_id",
"_merge_objects": true,
"trips": {
"$update": [
{
"$identifier_key": "id",
"$identifier_value": 2,
"$new_object": {
"start_date": "2026-01-21"
}
}
]
}
}
]
}
予約のキャンセル
このユースケースのユーザーがシドニー旅行をキャンセルした場合、/users/trackエンドポイントに次のコールを送信します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"attributes": [
{
"external_id": "user_id",
"trips": {
"$remove": [
{
"$identifier_key": "id",
"$identifier_value": 2
}
]
}
}
]
}
これらのコールが送信されてユーザープロファイルが更新されると、予約リマインダーメッセージにユーザーの予約日に関する最新のデータが反映されます。