NOAHL 向けの制作フローです。 Claude Code で新しいセッションを開いてメルマガを依頼するとき、 どのような流れで制作されるかをまとめています。
実績データを参照せずに作るなら AI である意味がない。
全ての提案・件名案・テンプレ選定・商品配置は 過去データの根拠を提示してから行う。
※ 3 と 4 は確認なしで push しない
品番(manageNumber)を元に 楽天 RMS の ItemAPI から商品データ(商品名・価格・カラー別画像・在庫等)を取得。
並行して Coupon API から該当商品に紐づく発行中クーポンを取得(割引率・期間・対象品番・getCoupon URL)。割引率や期間で絞り込み可能。
認証情報(serviceSecret / licenseKey)は Vercel 環境変数に保存しているため、Claude は直接叩かず以下の優先順でアクセス:
効率化: 全件は読まない。成績で絞り込んでから上位下位 3〜5 件だけ Read。
クーポン情報は Step 1 で 楽天 RMS Coupon API から 自動取得済み(割引率・期間・対象品番・getCoupon URL)。Claude はその中から条件に合うクーポンを選んで本文に埋め込む。
[[BUTTON:coupon|<URL>|<ラベル>]]| 項目 | 楽天 (NOAHL) | futureshop (NOAHL) |
|---|---|---|
| 商品情報取得 | 楽天 RMS API/api/rakuten/noahl/<品番> | BigQuery (raw_official)/api/futureshop/noahl-fs/<品番> |
| クーポン | 楽天クーポン取得 URL(getCoupon?getkey=...) | futureshop クーポンコード / カート適用 URL |
| 配信実績 | 楽天 R-Mail メトリクス(開封/クリック/送客/転換/お気に入り) Tampermonkey で取り込み | GA4 Data API(セッション/エンゲージ/購入/売上)/api/ga4/sync で取り込み |
| 配信費用 | ¥1 / 通(無料枠あり) → 広告比率カードで監視 | 無料 → 広告比率カード非表示 |
| /results/ 表示 | 開封/クリック/送客/転換/お気に入り 等の R-Mail カラム | セッション/エンゲージ率/購入/転換率/新規率 等の GA4 カラム |
| UTM 自動付与 | なし(楽天内クリック計測) | utm_source=mailmagazine 等を全リンクに自動付与 |
| 禁止表現 | 両チャネル共通: 激安・格安・在庫処分・大量入荷 等の量産/価格売りワード(NOAHL ブランド規定) | |
ブランド切替はサイドバー / ヘッダーのブランドセレクタから。 ブランドごとに templates / outputs が独立。
メルマガ内の全リンクに utm_source / utm_medium / utm_campaign が自動付与されます。
utm_source = ブランド config の tracking.utm.source(NOAHL は mailmagazine)utm_medium = emailutm_campaign = output.id(メルマガ ID。例: fs-181-20260513)utm_content=button-coupon 等の content も付与既に utm_source= が付いている URL・mailto: / # アンカー等は変更しません。
GA4 突合 (/api/ga4/sync) は以下の優先度でメルマガと売上をマッチします:
sessionCampaignName が fs- 始まりのとき、同名 ID の outputs を直接更新。 matchType=campaign(not set) 等)の場合、配信日 ±2日でセッションを合算しメルマガに按分。 matchType=date-windowUTM 自動付与により今後の配信は campaign マッチが基本になり、クロスデバイス・流入経路の精度が上がります。 既存配信(UTM なし)は引き続き date-window マッチで按分されます。
メルマガ生成 PR は CI green になったら 確認なしで即 squash merge→ Production 反映。
データ削除を伴う系の PR は必ず確認を取る。競合発生時は Claude が解決してから再マージ。