
エンジニア不在のビジネス部門でMA運用が進む理由 ~データ前処理について~
■自己紹介
・小売業をフランチャイズ展開しているチェーン店本部にて販促やイベント企画、CRMシナリオ構築、会員分析を担当
・中高大と運動部&ゴリゴリの文系(会社に入ってから初めてExcel触った)
・CRMシナリオ構築をコスパ良く運用すべくプレパレーションツールを導入し活用をするも、廃盤が決定し急遽Tableu Prepへリプレイス
・リプレイスが完了し、BI機能の活用を社内推進すべく2024年4月22日よりDATASaber挑戦(Tableau Desktopを触れたのも同日)
■はじめに
BtoCの小売業をフランチャイズ展開している本部にてSQLもわからないビジネス部門がTableu Prepを使ってMA(Salesforce Marketing Cloud※以下SMC)のシナリオ実装を自己完結する運用についてご紹介します。
以下のような課題を抱えている方は、ぜひ参考にしてください。
・MAの運用をアウトソーシングしている
・新規シナリオ構築/PDCAに時間とコストがかかっている
・Tableau Prepをあまり活用できていない
■データ前処理の重要性
BtoCで顧客コミュニケーションを考えていく上で基幹システムに入ってるデータ内容では使いづらい場面が多々あります。
また、その前処理を毎回実施するのは手間なので基幹データをTableauCloudにインメモリ化する際に加工ロジックを組んでデイリースケジュールで自動化しましょう!
■会員マスタでおすすめの前処理
①カラム名
→そもそもDBのカラム名は英語表記になっていると思いますが、読み込み後にクリーニングステップで変更してると大変です。
そんな時はカスタムSQLで読み込み時に変換してしまいましょう。
-----------------コピペ用---------------------
select
A as "エー",
B as "ビー",
C as "シー"
from YOUR DB NAME

②性別
→会員マスタでは大抵性別を数字で管理していると思いますが、データに詳しくない人は1が何を示すのかわかりませんので事前に変換しておきましょう!
-----------------コピペ用---------------------
IF
[性別]=1
THEN '男性'
ELSEIF
[性別]=2
THEN '女性'
ELSEIF
[性別]=3
THEN '不明'
END

③年齢
→よくあるセグメント区分である年齢ですが、生年月日の日付から今日の差分で年齢を求めなければならないケースも多いのではないでしょうか?事前に計算しておけば万人が簡単に使用可能!年齢に加え年代区分も作ってしまいましょう!
-----------------コピペ用---------------------
//年齢
DATEDIFF('year',[生年月日],today())
-----------------コピペ用---------------------
//年代
IF
[年齢]<20
THEN '10代'
ELSEIF
[年齢]<30
THEN '20代'
ELSEIF
[年齢]<40
THEN '30代'
ELSEIF
[年齢]<50
THEN '40代'
ELSEIF
[年齢]<60
THEN '50代'
ELSEIF
[年齢]<70
THEN '60代'
ELSEIF
[年齢]<80
THEN '70代'
ELSE '80代以上'
END

④主要な商品の最終購買日
→小売業でよくあるCRM施策は商品のリピート購入かと思います。
そのリピート対象者をすぐに抽出できるよう会員マスタに対象商品の最終購買を購買履歴から持ってきておきましょう。
毎度会員と購買を結合し求めなくても会員マスタだけで対象を抽出可能になります!
【ステップ1】
購買履歴のデータからCRの軸となる主要な商品に絞る
-----------------コピペ用---------------------
IF
[商品コード]='12345'
OR [商品コード]='34567'
OR [商品コード]='89012'
THEN 1
ELSE 0
END

【ステップ2】
会員ID・商品毎の最終購買を出す為に集計
グループ化したフィールド:会員ID・商品名
集計フィールド:売上日(CNT→MAXに変更)※最新の購買日

【ステップ3】
会員IDに対して今回は3種の商品が紐づく形で縦持ちデータになっているのでマスタと結合する為に会員IDを一意にし、商品名を行から列へピボットし持ってくる
横持ちに変換後、会員マスタと結合

【完成!】
会員マスタに対して主要商品の最終購買日が結合出来たので、会員マスタのみで購買から一定期間経過している会員を抽出することが可能

■最後に
各社で様々なデータの持ち方をしていると思いますが私はこういった前処理を実施し、CRMに必要な顧客抽出やセグメントを簡素化しております。
Prepで抽出した対象者をそのまま出力で外部DBへ出力し、SMCのジャーニーに流す事で負荷少なく運用出来ています。
また、Tableau Desktopで分析する際もベーシックな情報は整っているのですぐ分析に入れるのもポイントです!
なお今回使用しているデータは完全ダミーデータなのですが、手作業では大変だったのでChatGPTさんに作ってもらいました!皆さんも生成AIを活用していきましょう!!
今回作成したフローをサンプルデータ付きでアップしておりますのでご活用ください!
次回はCRMのもっとも重要なオファータイミングの算出についてご紹介します★
↓ChatGPTでのプロンプト参考↓
