CRMイベントのエクスポート (S3)
FlareLaneで発生したメッセージの配信・到達・クリックなどのCRMイベントを、毎日お客様のAmazon S3バケットへ自動でエクスポートする機能です。エクスポートされたデータはParquet形式で保存されるため、社内のデータウェアハウスやBIツールに取り込んで、キャンペーンの成果を精緻に分析できます。
設定は最初に一度だけ行えば十分です。お客様のAWSアカウントでIAM Roleを作成してFlareLaneに書き込み権限を委任したうえで、FlareLaneコンソールで対象バケットと権限情報を入力すると、翌日から自動的にデータが蓄積されます。
動作の仕組み
Section titled “動作の仕組み”| 項目 | 内容 |
|---|---|
| 実行周期 | 毎日 KST 03:00 に自動実行(手動実行には対応していません) |
| 対象期間 | プロジェクトの timezone を基準とした前日 00:00 ~ 24:00(デフォルト値 Asia/Seoul) |
| 対象ストレージ | Amazon S3(現在 GCS、Azure Blob などの他クラウドには対応していません) |
| ファイル形式 | Parquet(snappy 圧縮) |
| 認証方式 | AWS STS cross-account AssumeRole。ExternalId でプロジェクト ID を検証し、confused deputy 攻撃を防止します。 |
エクスポートされたファイルは、以下のパス規則で保存されます。
s3://<bucket>/<prefix>/<YYYY-MM-DD>/<YYYYMMDDHHMMSS>_part_<NNN>.parquet
// e.g. s3://my-flarelane-export/crm/2026-05-14/20260515030412_part_001.parquet連携可能なイベントタイプ
Section titled “連携可能なイベントタイプ”設定時に、以下のリストの中からエクスポートするイベントを自由に選択できます(最低 1 つ以上が必須)。選択しなかったタイプのイベントは、エクスポートの対象から除外されます。
| カテゴリ | イベントタイプ |
|---|---|
| プッシュ (Push) | push.sent, push.aborted, push.failed, push.clicked |
| SMS | sms.sent, sms.aborted, sms.failed, sms.delivered, sms.undelivered |
| KakaoTalkアルリムトーク | kakaoalimtalk.sent, kakaoalimtalk.aborted, kakaoalimtalk.failed,kakaoalimtalk.delivered,kakaoalimtalk.undelivered |
| Kakaoブランドメッセージ | kakaobrandmessage.sent,kakaobrandmessage.aborted,kakaobrandmessage.failed,kakaobrandmessage.delivered,kakaobrandmessage.undelivered |
| メール (Email) | email.sent, email.aborted, email.failed, email.delivered, email.opened, email.clicked, email.complaint |
| アプリ内メッセージ (In-App Message) | iam.displayed, iam.clicked, iam.closed |
事前準備事項
Section titled “事前準備事項”設定を始める前に、以下の項目をご準備ください。
| 項目 | 説明 |
|---|---|
| Amazon S3 バケット | エクスポートされたデータを蓄積するバケットです。CRM イベント専用として別のバケットを使用することを推奨します。 |
| CloudFormation スタック / IAM Role 作成権限 | お客様の AWS アカウントで 2 段階目を実行するために必要です。 |
| プロジェクト ID | コンソールのプロジェクト設定画面で確認できます。IAM Role の Trust Policy の ExternalId 条件値として使用されます。 |
| FlareLane Glue Role ARN | FlareLane から別途お渡しする値です。IAM Role の Trust Policy の Principal として使用されます。 |
| KMS キー ARN | (任意)対象バケットが SSE-KMS(カスタマー管理型キー)で暗号化されている場合にのみ必要です。SSE-S3 のデフォルト暗号化であれば不要です。 |
設定に使用する CloudFormation テンプレートです。以下のボタンからダウンロードして、2 段階目で使用してください。
iam-role.yaml をダウンロード
1段階目: S3バケットの準備
Section titled “1段階目: S3バケットの準備”お客様の AWS アカウントで、エクスポート対象の S3 バケットを準備します。既存のバケットを再利用しても問題ありませんが、CRM イベント専用として別のバケットを使用することを推奨します。
2段階目: IAM Role・Policyの作成
Section titled “2段階目: IAM Role・Policyの作成”FlareLane の Glue Job がお客様の S3 バケットにデータを書き込み、蓄積後に一時ファイルを整理(rename・cleanup)できるように、IAM Role と権限を作成します。以下の 2 つの方法のいずれかを選択してください。
方法A — CloudFormationテンプレート(推奨)
Section titled “方法A — CloudFormationテンプレート(推奨)”- 上記の
iam-role.yamlダウンロードボタンでテンプレートをダウンロードします。 - AWS コンソールの CloudFormation → Create stack → With new resources (standard) に移動し、Upload a template file で
iam-role.yamlをアップロードします。 - 以下のパラメータを入力します。
| パラメータ | 説明 |
|---|---|
ProjectId | FlareLane プロジェクト ID。Trust Policy の ExternalId として使用されます。 |
DestinationBucketName | 1 段階目で準備した S3 バケット名 |
FlarelaneGlueRoleArn | FlareLane からお渡しする Glue Role ARN |
KmsKeyArn | (任意)バケットが SSE-KMS で暗号化されている場合にのみ入力します。SSE-S3 であれば空欄のままにします。 |
- 最後の確認ステップで "I acknowledge that AWS CloudFormation might create IAM resources with custom names" チェックボックスを選択したうえで、スタックを作成します。
- スタックの作成が完了したら、Outputs タブで
RoleArnの値をコピーします。3 段階目のコンソール入力で使用します。 - (SSE-KMS バケットのみ該当) Outputs タブの
KmsKeyPolicyStatementJSON をコピーし、該当する KMS キーの Key policy に Statement として追加します(KMS コンソール → カスタマー管理型キー → キーを選択 → キーポリシーを編集)。クロスアカウント KMS アクセスは IAM 権限だけでは不十分であり、キーポリシーでもこの Role をPrincipalとして許可する必要があります。
方法B — 手動設定
Section titled “方法B — 手動設定”CloudFormation を使用せずにコンソールで直接構成する場合は、以下の手順に従います。
(1) IAM Roleの作成
- AWS コンソールの IAM → Roles → Create role に移動します。
- Trusted entity type として Custom trust policy を選択し、以下の JSON をそのまま貼り付けます。2 か所のプレースホルダーを実際の値に置き換えてください。
<FLARELANE_GLUE_ROLE_ARN>: FlareLane からお渡しする値<FLARELANE_PROJECT_ID>: FlareLane プロジェクト ID
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "<FLARELANE_GLUE_ROLE_ARN>" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "<FLARELANE_PROJECT_ID>" } } } ]}- Role 名を自由に入力し(例:
flarelane-crm-export-role)作成します。
(2) S3インラインポリシーの付与
- 作成した Role の詳細画面で Add permissions → Create inline policy を選択します。
- ポリシーエディタを JSON モードに切り替え、以下の JSON を貼り付けます。
<DESTINATION_BUCKET>を 1 段階目で準備したバケット名に置き換えてください。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<DESTINATION_BUCKET>", "arn:aws:s3:::<DESTINATION_BUCKET>/*" ] } ]}- ポリシー名を自由に入力し(例:
flarelane-crm-export-policy)保存します。
(3) KMS権限の付与 — SSE-KMSバケットのみ該当
対象バケットが KMS カスタマー管理型キーで暗号化されている場合は、上記のポリシーに加えて、以下の 2 点を追加で設定する必要があります。
- Role に KMS 権限(
kms:GenerateDataKey、kms:Decrypt)を付与し、Resourceを該当するキー ARN に指定します。 - 該当する KMS キーの Key policy にも、この Role を
Principalとして許可する Statement を追加します。クロスアカウント KMS アクセスは IAM 権限だけでは不十分であり、キーポリシーの許可が必ず併せて必要です。
3段階目: FlareLaneコンソールで設定を入力
Section titled “3段階目: FlareLaneコンソールで設定を入力”FlareLane コンソールの プロジェクト設定 → CRM イベントのエクスポート 画面で、以下の値を入力します。
| フィールド | 説明 |
|---|---|
| 有効化の有無 | エクスポート動作のオン/オフ |
| S3 バケット名 | 1 段階目で準備したバケット名 |
| S3 パス prefix | バケット内のパス prefix(任意) |
| IAM Role ARN | 2 段階目で作成した Role の ARN(方法 A はスタック Outputs の RoleArn) |
| エクスポートするイベントタイプ | 上記の 連携可能なイベントタイプ の中から選択 |
保存後、有効化トグルをオンにすると、次回の KST 03:00 から自動的にエクスポートが開始されます。
4段階目: 動作確認
Section titled “4段階目: 動作確認”有効化した翌日の KST 03:00 ~ 03:30 の間に初回実行が行われます。同じ日の午前中に、以下を確認してください。
- 対象 S3 バケット内に
<prefix>/<昨日の日付>/ディレクトリが作成されているか確認します。 - ディレクトリ内に
<YYYYMMDDHHMMSS>_part_001.parquet形式のファイルが存在するか確認します。 - Parquet ファイルを開き、前日に発生したイベントが正常に蓄積されているか点検します。
ディレクトリが作成されていない場合は、以下の項目を確認してください。
- 前日に発生した該当イベントが実際に存在するか(存在しない場合は、空のディレクトリも作成されません)
- 選択した エクスポートするイベントタイプ フィルターに、該当イベントが含まれているか
- IAM Role の Trust Policy の
sts:ExternalId値が、ご自身のプロジェクト ID と一致しているか - IAM Policy の
ResourceARN が、実際のバケット名と一致しているか - (SSE-KMS バケットの場合)KMS キーの Key policy に、export Role が
Principalとして許可されているか
上記の項目がすべて正常であるにもかかわらずデータが蓄積されない場合は、FlareLane のカスタマーサポートまでお問い合わせください。
よくある質問
Section titled “よくある質問”Q. 機能を有効化する前の過去データを一括で受け取れますか?
対応していません。有効化した時点以降の「前日」データから、日次単位で蓄積されます。過去の期間のデータが必要な場合は、FlareLane のカスタマーサポートまでお問い合わせください。
Q. 昨日のデータが空になっています。
次の 2 つのいずれかである可能性が高いです。
- 該当日に発生した CRM イベントがない場合(この場合、S3 ディレクトリ自体が作成されません)
- 発生したイベントのタイプが エクスポートするイベントタイプ フィルターに含まれていない場合
Q. S3 パス prefix を途中で変更するとどうなりますか?
変更した時点以降のデータから、新しい prefix のパスに蓄積されます。既存の prefix のパスに保存されたファイルはそのまま維持され、FlareLane が自動的に移動させることはありません。
Q. IAM Role ARN を誤って入力しました。その日付のデータは自動的に再蓄積されますか?
自動復旧はされません。ARN を正しい値に修正して保存すると、翌日から正常に蓄積されます。欠落した日付のデータが必要な場合は、FlareLane のカスタマーサポートまでお問い合わせください。
Q. 1 つのプロジェクトから複数の S3 バケットへ同時にエクスポートできますか?
現在は、プロジェクトごとに 1 つの対象バケットのみ設定可能です。