マーケティングオートメーションサービス LINE活用機能仕様書
— LINE公式アカウント × LIFF による識別済みリードの継続接点基盤 —
| 項目 | 内容 |
|---|---|
| 文書名 | マーケティングオートメーションサービス LINE活用機能仕様書 |
| バージョン | v1.0 |
| 作成日 | 2026年8月19日 |
| 対象システム | シンオン株式会社 マーケティングオートメーションサービス |
| 位置づけ | MA_拡張機能仕様書_v2.0.md(F-11〜F-24) に続く追加機能編。v1.2 / v2.0 は変更しない |
| 追加機能ID | F-25 〜 F-35 |
| 追加画面ID | S-28 〜 S-38 |
| 追加ガードレールID | G-16 〜 G-27 |
| 関連文書 | MA_機能仕様書.md(v1.2)、MA_拡張機能仕様書_v2.0.md(v2.0)、MA拡張_CloudFlare構築運用手順書_v1.0.md |
| 情報基準日 | 2026年8月19日(LINEヤフー公式ドキュメントの記載に基づく) |
目次
- はじめに
- 発想の転換 — LINEをBtoBで使うための3つの考え方
- LINEプラットフォームの前提知識
- システム全体像
- 機能要件 第I部 — 接続・識別基盤(F-25〜F-28)
- 機能要件 第II部 — 体験・シナリオ(F-29〜F-32)
- 機能要件 第III部 — 統制・分析(F-33〜F-35)
- ユースケース別シナリオ設計
- 計測仕様
- 画面仕様(追加)
- データベース設計(追加)
- API設計(追加)
- 非機能要件
- 法令・コンプライアンス
- 段階導入計画
- 今後の検討事項
- 出典
1. はじめに
1.1 背景
v1.2 と v2.0 で、本システムの獲得チャネルは次の5系統に広がった。
| 系統 | 機能 | 性格 |
|---|---|---|
| メール営業 | F-08 | プッシュ型・一方向 |
| フォーム営業 | F-06 | プッシュ型・一方向 |
| LP / 広告 / SEO | F-11〜F-18 | プル型・匿名流入 |
| ウェビナー / 資料ゲート | F-19, F-20 | 交換型・実名取得 |
| SNS・コミュニティ | F-21 | 認知形成 |
これらに共通して残っている穴が 「実名を取得したあと、商談化までの数週間〜数か月をどう繋ぐか」 である。
v2.0 の F-20(コンテンツゲートとナーチャリング)は、この期間をメール配信で埋める設計になっている。しかし現実には次の問題が起きる。
| 問題 | 内容 |
|---|---|
| 届かない | BtoBの業務メールは1日100通以上受信する。3通目以降のナーチャリングメールは開かれない |
| 気づかれない | メールは能動的に開く必要がある。通知がOSレベルで抑制されている端末も多い |
| 即時性がない | ウェビナー開始5分前のリマインド、展示会当日の受付案内はメールでは間に合わない |
| 双方向にならない | 「ちょっと聞きたい」を受ける口がない。問い合わせフォームは心理的コストが高すぎる |
LINE公式アカウントは、この4点をすべて改善しうる。東急ストアの公表事例では、同一施策に対して開封率 76.4%(メール 16.0%)、クリック率 24.7%(メール 3.9%)という差が出ている(出典: LINEヤフー導入事例)。開封タイミングも約20%が即時、約80%が当日中である。
1.2 目的
本書は、以下を目的とした LINE 活用機能を定義する。
- 識別済みリードとの継続接点 — 実名を取得した個人と、商談化までの期間をLINEで繋ぐ
- 即時性の獲得 — ウェビナー・展示会・見積依頼など、分単位の速さが価値になる場面を機能化する
- プル型の窓口化 — リッチメニューとLIFFで「相手が来たときに答える」導線を常設し、配信を増やさずに接点を維持する
- 既存チャネルとの統合計測 — LINEの反応を F-23(チャネル横断アトリビューション)に統合し、メール・フォーム・LPと同じ土俵で比較する
1.3 v1.2 / v2.0 との関係
- v1.2(F-01〜F-10)、v2.0(F-11〜F-24)は変更しない。本書の機能はすべてその上に積む
- v1.2 の
tracking_code(F-09)を LINE友だち追加の識別キーとしても使う。これが本書全体の前提である - v2.0 の F-14(LP行動計測)のイベントスキーマを LINE イベントにも拡張して使う
- v2.0 の F-23(アトリビューション)に LINE を1チャネルとして追加する
- v2.0 の F-24(コンプライアンス・ガードレール管理)に LINE 固有のガードレール G-16〜G-27 を追加する
1.4 スコープ
含むもの
- LINE公式アカウント(Messaging API)による配信・応答・リッチメニュー
- LIFF(LINE Front-end Framework)によるLINE内Webアプリ(申込・診断・予約・配信設定)
- 友だちと自社企業マスタ(
companies/contacts)のID連携 - LINE行動の計測とチャネル横断アトリビューションへの統合
- 配信通数・ブロック率のガバナンス機能
- 上記に伴うコンプライアンス管理
含まないもの
- LINE広告(LINE Ads)の運用。友だち追加広告(CPF)は BtoB でのターゲティング精度が低く、費用対効果が見込めないため本書では機能化しない(4.4項に判断根拠を記す)
- LINEミニアプリの認証済申請・アプリ内課金。将来検討事項(16章)とする
- LINE通知メッセージ(電話番号ベースの配信)。当社の取得データと適合しない
- LINEのトーク内容そのものを解析するAI機能(LINE公式の有料オプションを利用する場合を除く)
1.5 用語定義(追加分)
| 用語 | 定義 |
|---|---|
| LINE公式アカウント | 事業者がLINE上に開設するアカウント。以下「公式アカウント」 |
| Messaging API | 公式アカウントをプログラムから操作するAPI群 |
| チャネル | LINE Developersコンソール上のアプリケーション単位。Messaging APIチャネル / LINEログインチャネル等がある |
| プロバイダー | チャネルを束ねる事業者単位。userId はプロバイダーごとに異なる値になる |
userId |
公式アカウントの友だち1人を指す U + 32桁の16進文字列 |
| 友だち | 公式アカウントを追加したLINEユーザー |
| ブロック | 友だちがアカウントからの受信を拒否した状態。こちらからは解除できない |
| 通数 | 課金対象のメッセージ数。「送信リクエスト数 × 送信対象人数」で数える |
| 吹き出し | 1メッセージ内の個々の表示単位。通数には影響しない |
| reply / push / multicast / narrowcast / broadcast | Messaging API の配信種別(3.3項) |
| LIFF | LINE Front-end Framework。LINE内で動作するWebアプリの枠組み |
| LIFFブラウザ | LINEアプリ内蔵のWebView。外部ブラウザとは利用できるAPIが異なる |
| リッチメニュー | トーク画面下部に常設される画像メニュー |
| オーディエンス | 配信対象を絞り込むためのユーザー集合 |
| ID連携 | LINEの userId と自社の contacts.id / companies.id を紐づけること |
| 識別済み友だち | ID連携が完了した友だち。本書ではこれのみを資産と数える |
| CPF | Cost Per Friend。友だち追加1件あたりの広告費用 |
2. 発想の転換 — LINEをBtoBで使うための3つの考え方
「LINEでマーケティングをする」という要望をBtoB受託開発の文脈にそのまま持ち込むと、BtoCの成功パターンをなぞって失敗する。本章はその理由と、代わりに何を設計するのかを先に述べる。以降の機能要件はすべてこの3つの考え方から導かれている。
2.1 なぜ「LINEで新規リードを集める」は当社では成立しないのか
LINEはBtoCで極めて強い。しかし当社がやろうとしているBtoB受託開発の新規獲得に対しては、次の4つの構造的な壁がある。
| 壁 | 内容 | 帰結 |
|---|---|---|
| 企業を識別できない | LINEアカウントは個人のもの。userId から所属企業は分からない。v2.0 の中核だった「tracking_code から企業を解決してLPを出し分ける」が、LINE単体では原理的にできない |
ABMと相性が悪い。LIFFでの自己申告か、既存リードとの紐付けでしか企業は分からない |
| 意思決定が合議 | BtoBの発注は複数人の稟議で決まる。担当者1人のLINEに届いても、社内には展開されない。LINEのトークは転送・共有がしにくい | LINE単独では受注に至らない。社内展開できる資料(PDF / LP)への橋渡しが必須 |
| 広告ターゲティングがBtoC設計 | LINE広告の興味関心セグメントは消費行動ベース。業種・従業員規模・役職での絞り込みは実質できない | 友だち追加広告(CPF)の獲得単価が高止まりする。新規獲得チャネルとして採算が合わない |
| 私的領域への侵入感 | LINEは個人の私的空間である。業務の売り込みを私用LINEで受けることへの抵抗はBtoCより強い | ブロック率が高くなりやすい。実際、業種別ブロック率で最も高いのは人材業界の 38.4%(ソーシャルPLUS調査) |
結論: LINEを新規リード獲得チャネルとして使ってはならない。当社にとってのLINEは「まだ会ったことのない人を集める場所」ではなく、「すでに接点のある個人と、即時性が価値を持つ場面で繋がるための回線」である。
2.2 中核アイデア① — 友だちを増やさない。「識別済み友だち」だけを増やす
一般的なLINEマーケティングのKPIは「友だち数」である。当社ではこれを採用しない。
未識別の友だち(誰か分からない友だち)は、当社にとって資産ではなくコストである。
| 状態 | 何ができるか | 月額コストへの影響 |
|---|---|---|
| 未識別の友だち | 全体配信の対象にしかならない。企業属性も検討状況も分からない | 通数を消費する。ブロック率を押し上げる |
| 識別済み友だち | company_id / contact_id に紐づく。業種・企業規模・アプローチ履歴・LP閲覧履歴と結合できる。個別配信も営業引き継ぎも可能 |
通数あたりの期待値が桁違いに高い |
したがって本仕様では、友だち追加の導線を必ず tracking_code 付きにする(F-26)。既存のメール・フォーム・LP・ウェビナー申込のいずれかを通過した人だけが友だちになる設計とし、追加された瞬間に company_id の解決を試みる。
| 導線 | 識別方法 | 想定識別率 |
|---|---|---|
メール本文内の友だち追加リンク(/r/{tracking_code} 経由) |
tracking_code → contacts.id を確定 |
高(ほぼ100%) |
| ウェビナー申込完了画面 / 資料DL完了画面 | 申込フォームの入力内容と紐付け | 高 |
| LP内の友だち追加ボタン | tracking_code があれば確定、無ければLIFFで自己申告 |
中 |
| 展示会・名刺交換のQRコード | QRに tracking_code を埋め、LIFFで会社名・氏名を確認 |
中〜高 |
| 検索・SNSからの自然流入 | LIFFでの自己申告のみ | 低 |
設計上の要点: 主要KPIは「友だち数」ではなく 「識別済み友だち数」 と 「識別率」。ダッシュボード(S-28)ではこの2つを最上位に置き、友だち総数は副次指標として小さく表示する。
2.3 中核アイデア② — 「送る」のをやめる。課金構造がメールと真逆である
メール営業(F-08)では、送信コストは実質ゼロに近い。SendGrid の従量課金は1通あたり0.1円未満であり、「とりあえず送る」が経済的に成立していた。
LINEでは、この前提が完全に反転する。
| 項目 | メール(SendGrid) | LINE公式アカウント |
|---|---|---|
| 1通あたりの限界費用 | 0.1円未満 | 最大3円(スタンダードプランの追加メッセージ) |
| 月間の無料枠 | 実質なし(従量) | コミュニケーション 200通 / ライト 5,000通 / スタンダード 30,000通 |
| 受信側からの応答 | 返信メールを待つしかない | 応答API(reply)は通数無料 |
| 常設の窓口 | なし | リッチメニューは通数無料・常時表示 |
つまり LINE では「押し出す(push)ほど高くつき、引き込む(pull)ほど安い」。これは通数カウントの規則そのものに現れている。
| 通数にカウントされる | 通数にカウントされない |
|---|---|
| メッセージ配信 / 絞り込み配信 / ステップ配信 | 応答メッセージ(自動応答) |
Messaging API: push / multicast / narrowcast / broadcast |
あいさつメッセージ |
| LINEチャットの手動送受信 | |
| Reply API(応答メッセージ送信) | |
| リッチメニューの表示・タップ | |
| LIFFアプリの利用 |
(出典: LINEヤフー「料金プラン」/ LINE Developers「Messaging APIの料金」)
この非対称性を最大限に使うのが本仕様の設計方針である。
- 定期的な一斉配信(メルマガのLINE版)は作らない
- 常設の価値はリッチメニューとLIFFに置く。ここは何度見られてもコストゼロ
- こちらから送るのは「相手のアクションへの応答(reply)」と「相手が待っている通知(リマインド)」だけ
- push を使うのは、識別済み友だちに対する個別・少数配信に限る
概算すると、識別済み友だち500人・月2回のセグメント配信(平均対象100人)であれば 月200通。コミュニケーションプラン(月額0円)の無料枠内に収まる。BtoBで友だち数が小さいことは、LINEにおいてはむしろ経済的な優位である。
2.4 中核アイデア③ — ブロックは不可逆。だから「送らない権利」を相手に渡す
メールの配信停止は、こちらのDBで管理する状態である。相手が気を変えれば再開できる。
LINEのブロックは、こちらからは一切解除できない。 ブロックされた友だちには何を送っても届かず(通数もカウントされない)、識別済み友だちであっても回線は永久に失われる。ID連携で積み上げた資産が一瞬で消える。
業界横断のブロック率実測値(ソーシャルPLUS調査、友だち数1,000未満を除外)は次のとおり。
| 区分 | 平均 | 中央値 |
|---|---|---|
| 全体 | 29.7% | 27.0% |
| 人材 | 38.4% | 35.8% |
| 医療/美容 | 33.8% | 37.0% |
| 不動産 | 31.8% | 30.1% |
| その他会員サービス | 21.5% | 15.8% |
友だち数別では、5,000人未満で約22%、50万人以上で40%超と、規模が大きくなるほどブロック率は上がる。量的に集めるほど質が劣化する構造である。一方、丁寧に運用した事例(東急ストア)は友だち17万人でブロック率11.1%に収まっている。
ブロック理由の第1位は「情報配信の頻度が多すぎるから」26.5%(モビルス調査、655名)である。
設計上の要点: ブロックを「離脱率」として事後に眺めるのではなく、発生前に機能で抑える。 1. 配信頻度をユーザー自身に選ばせる(F-29 の配信設定LIFF)。「全部止める(=ブロック)」しか選択肢がない状態を作らない 2. 頻度上限をシステムで強制する(F-33)。1人あたり週1通、月4通を既定の上限とし、超過する配信は管理画面で送信ボタンが押せない 3. ブロック確率の高い友だちを配信対象から機械的に外す(F-33)。無反応が続く友だちに送り続けることは、通数を捨ててブロックを買う行為である
2.5 3つの考え方のまとめ
| # | 考え方 | 捨てるもの | 得るもの |
|---|---|---|---|
| ① | 友だちを増やさず、識別済み友だちを増やす | 友だち数KPI、CPF広告 | 企業属性と結合した配信・営業引き継ぎ |
| ② | 押し出さず、引き込む | 定期一斉配信、メルマガ的運用 | 月額0円〜5,000円で回る運用、高い反応率 |
| ③ | 送らない権利を相手に渡す | 「とりあえず全員に送る」自由 | 低いブロック率、長期に残る回線 |
この3つはいずれも「LINEをメールの代替として使わない」という一点に帰着する。LINEはメールを置き換えるものではなく、メールが届かない層と、メールでは間に合わない場面を埋める補完チャネルである。
3. LINEプラットフォームの前提知識
本章は仕様ではなく、以降の設計の根拠となるLINE側の制約の整理である。数値はすべて2026年8月19日時点のLINEヤフー公式ドキュメントに基づく。
3.1 料金プラン
| プラン | 月額(税別) | 無料メッセージ通数/月 | 追加メッセージ |
|---|---|---|---|
| コミュニケーション | 0円 | 200通 | 不可 |
| ライト | 5,000円 | 5,000通 | 不可 |
| スタンダード | 15,000円 | 30,000通 | 〜3円/通 |
追加メッセージ単価(スタンダードのみ・税別)
| 追加通数帯 | 単価 |
|---|---|
| 1〜50,000通 | 3.0円/通 |
| 50,001〜100,000通 | 2.8円/通 |
| 100,001〜1,000,000通 | 2.6円/通 |
| 1,000,001〜10,000,000通 | 2.2円/通 |
重要: コミュニケーションプランとライトプランは無料枠を超えると送信できなくなる(追加購入不可)。当社の想定規模ではコミュニケーションプラン(0円)から開始し、識別済み友だちが1,000人を超えた段階でライトプランへ移行する。この判定は F-33 の配信予算ガードが自動で警告する。
3.2 通数のカウント規則
通数 = 送信リクエストの数 × 送信対象の人数
- 吹き出し(メッセージオブジェクト)の数は通数に影響しない。1リクエストで最大5吹き出しまで送れる
- 公式アカウントマネージャーからの配信は最大3吹き出し、Messaging API は最大5メッセージオブジェクト
- ブロック中のユーザー、削除済みアカウントへの配信はカウントされない
カウントされないもの(2.3項再掲): 応答メッセージ、あいさつメッセージ、LINEチャットの送受信、Reply API。
設計への反映: 「1回の配信で5吹き出しまで無料で使える」ため、1通に情報を詰め込む設計が経済的に正しい。テキスト+画像+ボタン+カルーセルを1リクエストにまとめる。
3.3 配信種別
| 種別 | 宛先指定 | 上限 | 通数 | 本仕様での用途 |
|---|---|---|---|---|
| reply | Webhookで受け取った replyToken |
1トーク | 無料 | 全ての自動応答。最優先で使う |
| push | userId 1件 |
1宛先 | 課金 | 識別済み友だちへの個別通知(ウェビナーリマインド、見積完了) |
| multicast | userId の配列 |
最大500件/リクエスト | 課金 | セグメント配信(自社DBで対象を決めた場合) |
| narrowcast | 属性 or オーディエンス | — | 課金 | LINE側のオーディエンス機能を使う場合。本仕様では限定利用 |
| broadcast | 指定不要(全友だち) | 全友だち | 課金 | 原則使用禁止(G-17) |
共通の制約
- 1リクエストあたりメッセージオブジェクト最大5つ
- テキストメッセージ最大5,000文字
replyTokenは短時間で失効する。Webhook受信後は即座に応答する設計とする
設計上の判断: セグメント配信は narrowcast ではなく multicast を既定とする。理由は、当社は
contactsテーブルに業種・企業規模・アプローチ履歴を既に持っており、LINE側のオーディエンス(性別・年代・OS・エリアしか使えない)より精度が高い絞り込みができるため。narrowcast は最小送信対象の制約(オーディエンスは50件以上)もあり、当社の規模では使いにくい。
3.4 レート制限
チャネル単位 × エンドポイント単位で適用される。超過時は 429 Too Many Requests。トークンバケット方式。
| エンドポイント群 | 制限 |
|---|---|
| reply / push / その他大半 | 2,000 req/秒 |
| multicast、クーポン系 | 200 req/秒 |
| ローディングアニメーション | 100 req/秒 |
| リッチメニューの配列取得 | 10 req/秒 |
| リッチメニュー作成・削除・エイリアス削除 | 100 req/時 |
| リッチメニューの一括リンク/リンク解除 | 3 req/時 |
| narrowcast / broadcast / 各種統計取得 / 友だち数取得 | 60 req/時 |
| オーディエンス作成・追加・削除・取得 | 60 req/分 |
| Webhook URL 設定・取得 | 1,000 req/分 |
設計上の最重要制約: リッチメニューの一括リンクは 3 req/時。ステータス変化に応じてリッチメニューを切り替える設計(F-28)では、一括APIではなくユーザー単位のリンクAPI(制限緩め)を使い、変更をキューで平準化する必要がある。統計取得系が 60 req/時 であることから、LINE側の統計APIをリアルタイムに叩く設計にはできない。日次バッチで取得し、リアルタイム指標は自前計測(F-34)で持つ。
3.5 Webhook と署名検証
- 主なイベント:
message/follow(友だち追加) /unfollow(ブロック) /postback/unsend/join/leave/memberJoined/videoPlayComplete/accountLink - LINEプラットフォームはチャネルシークレットを鍵とした HMAC-SHA256 で署名し、
x-line-signatureヘッダーに設定する - 検証は生のリクエストボディ文字列に対して行う。パース・整形・デシリアライズを検証前に行ってはならない
- 文字コードは UTF-8 を維持する
設計への反映: Cloudflare Workers 実装では
request.clone().text()で生ボディを保持し、crypto.subtleで HMAC-SHA256 を計算して定数時間比較する。署名検証に失敗したリクエストは 401 を返し、本文をログに残さない(G-20)。
3.6 チャネル構成と userId
userIdは プロバイダーごとに異なる値が発行される- 同一プロバイダー配下であれば、LINEログインチャネルと Messaging APIチャネルで同じ
userIdが割り当てられる - 異なるプロバイダーでは同一ユーザーでも値が異なるため、他社と突合できない
設計上の最重要制約: LIFF(LINEログインチャネル)で取得した
userIdを使って Messaging API で push 配信するには、両チャネルが同一プロバイダー配下でなければならない。プロバイダー設計は後から変更できないため、構築の最初の手順で確定させる(F-25)。
3.7 リッチメニュー
| 項目 | 値 |
|---|---|
| 画像サイズ | 2500×1686 px(大) / 2500×843 px(小) |
| 形式・容量 | JPG / JPEG / PNG、1MB以下 |
タップ領域(areas) |
最大20 |
メニューバーのテキスト(chatBarText) |
最大14文字 |
リッチメニュー名(name) |
最大300文字 |
| エイリアス最大作成数 | 100 |
| 優先度 | ユーザー単位のリッチメニュー > デフォルトのリッチメニュー |
タブ切替はリッチメニューエイリアス + richmenuswitch アクションで実装する。エイリアスIDを固定しておけば、紐づくリッチメニューの実体だけを差し替えられる(アクション定義を変えずに中身を更新できる)。
3.8 LIFF
| 項目 | 内容 |
|---|---|
| 最新バージョン | v2.30.0(2026年8月17日リリース) |
| 画面サイズ | Compact / Tall / Full の3種(登録時に選択) |
| 1チャネルあたりのLIFFアプリ数 | 最大30 |
liff.init() |
ページ遷移のたびに実行が必要。実行URLはエンドポイントURL配下に限定 |
liff.login() |
LIFFブラウザでは利用不可(init時に自動ログイン済みのため) |
liff.getProfile() |
表示名・画像URL・ステータスメッセージ。サーバーへの送信は非推奨(サーバー側ではIDトークン検証を使う) |
liff.sendMessages() |
LIFFブラウザ内のみ。最大5件/回 |
liff.shareTargetPicker() |
任意の相手へ共有。送信人数・送信先は取得できない |
liff.requestFriendship() |
v2.28.0(2026年3月)以降。友だち追加を促す |
スコープ
| スコープ | 取得できるもの | 申請 |
|---|---|---|
profile |
プロフィール情報 | 不要 |
openid |
userId を含むIDトークン |
不要 |
email |
メールアドレス。openid との併用必須 |
要申請(利用目的を提示する画面のスクリーンショットが必要) |
chat_message.write |
liff.sendMessages() 用 |
不要 |
設計への反映: LIFF から取得した
userIdは必ずIDトークンをサーバー側で検証してから信用する。クライアントが送ってきたuserIdをそのまま信じる実装は、他人へのなりすまし配信を許すことになる(G-19)。
3.9 LINE公式の標準機能を使わない理由
公式アカウントマネージャーには「ステップ配信」機能があるが、本仕様では自前実装(F-30)とする。
| 観点 | LINE標準のステップ配信 | 本仕様(F-30) |
|---|---|---|
| 開始条件 | 友だち追加 / オーディエンス | 任意のイベント(LP閲覧、資料DL、ウェビナー参加、ステータス変更) |
| 分岐条件 | 性別 / 年齢 / OS / エリア / オーディエンス | 業種・企業規模・役職・アプローチ履歴・LP行動スコア |
| 待ち時間 | 1〜30日 | 分単位〜日単位(ウェビナー5分前リマインド等に対応) |
| ステップ数 | 1ルート10個 / 1配信100個 / 50件まで | 制限なし(実運用上の上限は設ける) |
| 他チャネル連携 | 不可 | メール・フォームと同一シナリオ内で混在可能 |
LINE標準の分岐軸(性別・年齢・OS・エリア)はBtoBでは一つも役に立たない。当社が持っている軸で分岐するには自前実装しかない。
4. システム全体像
4.1 機能マップ
| 部 | 機能ID | 機能名 | 主な役割 |
|---|---|---|---|
| 第I部 接続・識別基盤 | F-25 | LINEチャネル管理・接続設定 | プロバイダー/チャネル/Webhook/シークレット |
| F-26 | 友だち識別・ID連携 | tracking_code → userId → contact_id の連結 |
|
| F-27 | メッセージ配信エンジン | reply/push/multicast の実行と通数管理 | |
| F-28 | リッチメニュー出し分け | ステータス別の常設窓口 | |
| 第II部 体験・シナリオ | F-29 | LIFFアプリ基盤 | 申込・診断・予約・配信設定 |
| F-30 | シナリオ配信(自前ステップ配信) | イベント駆動のマルチチャネルシナリオ | |
| F-31 | チャット一次応答・営業引き継ぎ | 自動応答と有人対応の切替 | |
| F-32 | チャネル選択エンジン | LINE / メール / フォームの最適選択 | |
| 第III部 統制・分析 | F-33 | 配信ガバナンス・ブロック抑制 | 通数予算・頻度上限・サプレッション |
| F-34 | LINE行動計測 | イベント収集とF-23への統合 | |
| F-35 | LINEコンプライアンス管理 | G-16〜G-27 の機械的強制 |
4.2 技術構成
v2.0 の技術構成(案A: 部分適用 / 案B: Cloudflare全面移行)いずれでも実装できるよう記述するが、Cloudflareを前提とした場合の推奨構成を以下に示す。
| 役割 | Cloudflare | 補足 |
|---|---|---|
| Webhook受信 | Workers | 署名検証 → 即座に200を返し、処理は Queues へ流す |
| イベント処理 | Queues (Consumer) | LINEのWebhookは再送があるため冪等に処理する |
| 友だち・ID連携マスタ | D1 | line_friends、line_id_links |
| 配信ジョブ | Queues + Durable Objects | multicast の500件分割、レート制限の遵守 |
| 配信状態・頻度カウンタ | Durable Objects | 1人あたりの直近配信履歴を強一貫で持つ |
| 生イベント | Analytics Engine | LINEイベントの生ログ。D1へ1件ずつINSERTしない(v2.0の禁止パターン) |
| LIFFアプリ配信 | Workers (Static Assets) | LIFF SDK は LINE の CDN から読み込む(唯一の例外) |
| 画像・リッチメニュー素材 | R2 | 1MB以下のリッチメニュー画像 |
| スケジュール実行 | Cron Triggers + Workflows | 予約配信、日次統計取得 |
| シークレット | Workers Secrets | チャネルシークレット、チャネルアクセストークン |
v2.0からの継承: 「生イベントをD1に1件ずつINSERTしない」「配信時にモンテカルロを回さない」という禁止パターンは本書でも有効。加えて 「Webhookの処理を同期で完結させない」 を禁止パターンに追加する(LINEはWebhookのタイムアウトで再送するため、重複処理が起きる)。
4.3 データフロー
[既存チャネル] [LINE] [自社DB]
メール(F-08) ─┐
フォーム(F-06)─┼→ /r/{tracking_code}
LP(F-13) ─────┘ │
▼
友だち追加URL(state=tracking_code)
│
▼
LINE: follow イベント ──→ Workers(署名検証)
│
▼
Queues
│
┌────────────────────┼────────────────────┐
▼ ▼ ▼
line_friends 登録 tracking_code 解決 あいさつメッセージ(無料)
│ │
▼ ▼
contact_id / company_id LIFF(ID連携確認)
│ │
└──────────┬─────────────┘
▼
識別済み友だち
│
┌──────────────────────────┼──────────────────────────┐
▼ ▼ ▼
リッチメニュー出し分け シナリオ配信(F-30) 行動計測(F-34)
(無料) push/multicast │
│ ▼
└──────────→ F-23 アトリビューション
4.4 LINE広告(友だち追加広告)を採用しない判断根拠
要望としては「LINEを使ったマーケティング」に広告が含まれうるが、本仕様では機能化しない。判断根拠を残す。
| 項目 | 数値・事実 | 出典の性質 |
|---|---|---|
| 友だち追加広告の入札レンジ | 50円〜5,000円 | ベンダー |
| 推奨スタート単価 | 200円以内 | ベンダー |
| LINEヤフー公式資料の概算友だち追加単価 | 約200円 | 公式(媒体資料) |
| ブロック分の見込み | 目標単価 + 25%程度で計画すべき | ベンダー |
| 前提条件 | 認証済アカウントが必須。審査に約10営業日 | ベンダー |
| BtoB向けターゲティング | 業種・従業員規模・役職での絞り込みは実質不可能 | 定性 |
CPF 200円 × ブロック考慮 250円で1,000人集めたとして25万円。うち当社のターゲット企業に所属する人は統計的にごく僅かであり、しかも誰なのか分からない(2.2項)。同じ25万円をウェビナー広告(v2.0 F-19)に投じたほうが、実名と企業名が取れる。
再検討条件: 「認証済アカウント取得済み」「識別済み友だちが2,000人を超え、そのうち商談化率が5%以上で安定」の両方を満たした時点で、リターゲティング用途に限り再検討する(16章)。
5. 機能要件 第I部 — 接続・識別基盤(F-25〜F-28)
5.1 F-25 LINEチャネル管理・接続設定
5.1.1 概要
LINE公式アカウント、Messaging APIチャネル、LINEログインチャネル、LIFFアプリの接続情報を一元管理する。プロバイダー設計を誤ると後戻りできないため、本機能は構築の最初に実行する。
5.1.2 プロバイダー・チャネル構成(固定)
プロバイダー: シンオン株式会社 ← 1つだけ作る。後から変更不可
├─ Messaging APIチャネル: シンオン公式アカウント
│ └─ Webhook URL: https://ma.example.co.jp/line/webhook
├─ LINEログインチャネル: シンオン LIFF
│ ├─ LIFFアプリ: 資料ダウンロード (Tall)
│ ├─ LIFFアプリ: ウェビナー申込 (Tall)
│ ├─ LIFFアプリ: 商談予約 (Full)
│ ├─ LIFFアプリ: 簡易見積診断 (Full)
│ ├─ LIFFアプリ: 会社情報の登録/確認 (Compact)
│ └─ LIFFアプリ: 配信設定 (Compact)
└─ (将来) LINEミニアプリチャネル
絶対条件: Messaging APIチャネルとLINEログインチャネルは必ず同一プロバイダー配下に作成する。異なるプロバイダーに作ると
userIdが一致せず、LIFFで識別した相手にpush配信ができない。この失敗は作り直し以外に回復手段がない。
5.1.3 入力
| 項目 | 必須 | 内容 |
|---|---|---|
| プロバイダー名 | ○ | 参照用(APIでは使わない) |
| チャネルID / チャネルシークレット | ○ | Messaging APIチャネル。シークレットは暗号化保存 |
| チャネルアクセストークン | ○ | 長期トークンまたは短期トークン(自動更新) |
| LINEログインチャネルID / シークレット | ○ | LIFF用 |
| LIFF ID 一覧 | ○ | 用途名とLIFF IDの対応 |
| Webhook URL | ○ | 自動生成・表示 |
| 公式アカウントID(@から始まる) | ○ | 友だち追加URLの生成に使う |
| 応答設定の状態 | ○ | あいさつメッセージ・応答メッセージのON/OFF(自前実装との重複防止) |
5.1.4 処理仕様
- シークレットの保存: チャネルシークレット、チャネルアクセストークンは環境設定(F-10)の暗号化ストアに保存する。管理画面では常にマスク表示(
****...末尾4桁)し、復号表示は admin ロールのみ・監査ログ必須とする。 - Webhook URL の検証: 設定後、LINEプラットフォームの検証エンドポイントで疎通確認を行い、結果を画面に表示する。
- 短期チャネルアクセストークンの自動更新: 有効期限の80%を経過した時点でCronが再発行する。発行上限を超えると既存トークンが無効化されるため、発行は必ず1経路(Cron)に集約し、手動発行を禁止する。
- 応答設定の整合チェック: 公式アカウントマネージャー側の「あいさつメッセージ」「応答メッセージ」が有効な状態で自前実装も動かすと、二重返信が発生する。設定画面に注意を表示し、どちらで運用するかを明示的に選択させる。本仕様の既定は「公式側の自動応答をすべてOFF、自前実装に一本化」。
- Webhook URL の単一性: LINEプラットフォームに設定できる Webhook URL は1つのみ。他のLINEツール(Lステップ等)との併用はできないため、既存ツールがある場合は移行計画を先に立てる。
5.1.5 制約
- 応答モード(bot / chat)の排他制約は2022年11月30日に撤廃済みのため、Webhookとチャットは併用できる
- レート制限はチャネル単位で共有される。複数ツールから同一チャネルを叩かない
- チャネルシークレットのローテーションはWebhook署名検証の切り替えを伴うため、無停止では行えない。メンテナンス手順を運用手順書に定義する
5.2 F-26 友だち識別・ID連携
5.2.1 概要
本仕様の中核機能。友だち追加された userId を、自社の contacts.id / companies.id に紐づける。2.2項の「識別済み友だちだけを増やす」を実装で担保する。
5.2.2 識別方式
方式A: tracking_code 経由(推奨・既定)
既存の /r/{tracking_code} リダイレクタ(v1.2 F-09)を拡張し、LINE友だち追加URLへの中継を追加する。
1. メール本文/LP内リンク: https://ma.example.co.jp/r/{tracking_code}?to=line
2. リダイレクタが以下を実行:
a. tracking_code から contact_id / company_id を解決
b. 一時トークン link_token を発行(D1に保存、有効期限15分)
c. LINE友だち追加URL + state に link_token を付与してリダイレクト
https://line.me/R/ti/p/@xxxxxxx (state相当はLIFF側で受ける)
3. 友だち追加 → follow イベント受信
4. あいさつメッセージ(無料)で「登録内容の確認」LIFFへ誘導
5. LIFF起動時に link_token を渡し、IDトークン検証済みの userId と結合
6. line_id_links に (userId, contact_id, company_id, 'tracking_code') を登録
技術上の注意: LINEの友だち追加URLには任意のクエリパラメータを安全に引き回す仕組みが公式には用意されていない。したがって
followイベント単体では誰か分からない。本方式では「あいさつメッセージ → LIFF」の1ホップを必ず挟むことで、link_tokenとuserIdを確実に結合する。あいさつメッセージは通数無料であるため、このホップにコストは発生しない。
方式B: LIFF先行(ウェビナー申込・資料DL)
申込フォーム自体をLIFFで実装する場合、フォーム送信時点で userId とフォーム入力(会社名・氏名・メール)が同時に手に入る。最も確実な識別方式。
1. LP上の「LINEで申し込む」→ LIFF起動(未友だちなら liff.requestFriendship() で追加を促す)
2. IDトークン検証 → userId 確定
3. フォーム入力 → メールアドレスで contacts を照合(なければ新規作成)
4. line_id_links に (userId, contact_id, company_id, 'liff_form') を登録
方式C: 自己申告(自然流入)
tracking_code も申込情報も無い友だち。あいさつメッセージから「会社情報の登録」LIFFへ誘導し、会社名・氏名・メールを入力してもらう。入力率は低いことを前提とし、未識別のまま3回のリマインドに反応しなければ配信対象から除外する(F-33)。
5.2.3 企業の解決
contact_id が確定すれば company_id は既存のリレーションで解決される。メールアドレスしか無い場合は、v1.2 の企業マスタに対して次の順で照合する。
| 優先 | 照合キー | 備考 |
|---|---|---|
| 1 | tracking_code → contacts |
確実 |
| 2 | メールアドレス完全一致 → contacts |
確実 |
| 3 | メールアドレスのドメイン → companies.domain |
フリーメールドメインは除外リストで弾く |
| 4 | 入力された会社名の正規化一致 → companies.name |
「株式会社」「(株)」等を正規化。候補が複数なら自動確定せず、管理画面のレビューキューに送る |
5.2.4 出力・データ
| テーブル | 主な内容 |
|---|---|
line_friends |
user_id(PK)、status(active/blocked)、followed_at、unfollowed_at、display_name_hash |
line_id_links |
user_id、contact_id、company_id、link_method、linked_at、confidence |
line_link_tokens |
link_token、contact_id、expires_at、consumed_at |
5.2.5 制約・注意
- 表示名・プロフィール画像は保存しない。LINE User Data Policy により、
userIdを除くユーザー情報の24時間以上の保存には事前告知が必要であり、友だち情報・グループ情報は24時間以上の保存が禁止されている。表示名は照合の補助にのみ使い、ハッシュ値だけを残す(G-22) - ブロック(
unfollow)されてもline_id_linksは削除しない。再追加時に同一userIdで戻ってくるため、履歴として保持する。ただし配信対象からは即座に除外する userIdは当社のプロバイダー配下でのみ有効。外部サービス・広告事業者への提供は行わない(G-23)
5.3 F-27 メッセージ配信エンジン
5.3.1 概要
reply / push / multicast を統一インタフェースで実行し、通数を予算内に収める。送信前に必ずガバナンスチェック(F-33)を通す。
5.3.2 配信要求の構造
| 項目 | 必須 | 内容 |
|---|---|---|
| 配信種別 | ○ | reply / push / multicast |
| 対象 | ○ | replyToken または userId 配列 |
| メッセージ | ○ | 最大5オブジェクト。text / image / template / flex / imagemap |
| 配信理由コード | ○ | webinar_reminder / doc_followup / quote_ready 等。集計とガバナンスの単位 |
| 優先度 | ○ | transactional(相手が待っている) / promotional(こちらから) |
| 予定送信時刻 | - | 未指定は即時 |
| リンク | - | 本文内URLは自動的に /r/{tracking_code} 形式に変換される |
5.3.3 処理仕様
- reply の優先: Webhookイベントに対する応答は必ず reply を使う。
replyTokenが失効している場合のみ push にフォールバックし、その旨をログに残す(通数が発生するため)。 - multicast の分割:
userId配列は500件ごとに分割してリクエストする。分割後の各リクエストは Queues に投入し、200 req/秒の制限内で消化する。 - URLの自動変換: メッセージ本文内のURLは、送信前に
/r/{tracking_code}形式へ書き換える。tracking_codeにはchannel=line、配信理由コード、message_idを含める。これにより F-23 のアトリビューションでLINE経由のクリックが他チャネルと同じ粒度で計測される。 - 1リクエストへの集約: 通数は吹き出し数に影響されないため、テキスト+画像+ボタンは必ず1リクエストにまとめる。分割送信を検知したらバリデーションエラーとする。
- べき等性: 配信要求には
idempotency_keyを必須とし、Queues の再試行で二重送信されないようにする。 - 失敗時の扱い:
429はバックオフ後に再試行。400(ブロック済み・存在しないID)は再試行せずline_friends.statusをblockedに更新する。
5.3.4 メッセージテンプレート
| テンプレート種別 | 用途 | 備考 |
|---|---|---|
| テキスト | 短い通知 | 5,000文字まで。ただし実運用は300文字以内を推奨 |
| 画像 + テキスト | 資料紹介 | 画像はR2でホスト。HTTPS必須 |
| ボタンテンプレート | 1アクションの誘導 | LIFFへのリンク |
| カルーセル | 複数の資料・事例の提示 | 最大10カラム |
| Flex Message | ウェビナー案内、見積サマリ | JSON定義。テンプレートをF-11のブロックライブラリ同様に管理する |
| イメージマップ | ビジュアル重視の告知 | 使用頻度は低い |
5.3.5 制約
- 1リクエスト5オブジェクト、テキスト5,000文字を超える定義は保存できない
broadcastは本エンジンから実行できない(G-17)。全友だち配信が必要な場合は admin が管理画面から二重確認のうえ実行する例外フローとする- 配信理由コードの無い配信は実行できない
5.4 F-28 リッチメニュー出し分け
5.4.1 概要
リッチメニューは表示もタップも通数無料であり、LINEにおける最大の資産である。相手のステータスに応じて内容を出し分け、「送らずに接点を維持する」を実現する。
5.4.2 メニュー設計
| メニューID | 対象 | タブ構成 | 主なリンク先 |
|---|---|---|---|
default |
未識別の友だち | 1タブ | 会社情報の登録 / サービス紹介LP / よくある質問 |
identified |
識別済み・商談前 | 2タブ(情報/相談) | 資料一覧 / 事例 / ウェビナー / 簡易見積 / 相談予約 / 配信設定 |
in_deal |
商談中 | 2タブ(案件/連絡) | 提案資料 / 見積 / 打合せ予約 / 担当者に連絡 |
customer |
既存顧客 | 2タブ(サポート/情報) | 問い合わせ / 障害情報 / 保守レポート / 新サービス案内 |
dormant |
6か月以上無反応 | 1タブ | 資料一覧 / 配信設定(頻度を下げる導線を目立たせる) |
5.4.3 処理仕様
- ユーザー単位リンクを使う: ステータス変化時に、対象
userIdに対してユーザー単位リッチメニューをリンクする。ユーザー単位はデフォルトより優先度が高い。 - 一括APIを使わない: 一括リンク/リンク解除は 3 req/時 という厳しい制限があるため、大量の切替が必要な場合でも使わない。個別リンクをQueuesで平準化して処理する。
- エイリアスによるタブ切替: タブは
richmenuswitchアクションとリッチメニューエイリアスで実装する。エイリアスIDはmenu-{role}-{tab}の命名で固定し、デザイン変更時はエイリアスに紐づく実体だけを差し替える。 - ステータス変化のトリガー:
contacts.statusの変更、商談ステータスの変更、最終反応日からの経過日数(日次Cron)で切替を発火する。 - 切替の遅延を許容する: LINE側の反映には時間がかかる場合がある。切替の完了をユーザー体験の前提にしない(切替直後に「メニューから操作してください」と案内しない)。
5.4.4 制約
- 画像は 2500×1686 または 2500×843、1MB以下、JPG/JPEG/PNG
- タップ領域は最大20、
chatBarTextは14文字以内 - エイリアスは最大100個。上記5メニュー×2タブ=10個であり十分に余裕がある
- 全エリアを「アクションなし」にはできない
6. 機能要件 第II部 — 体験・シナリオ(F-29〜F-32)
6.1 F-29 LIFFアプリ基盤
6.1.1 概要
LINE内で完結するWebアプリ群。LIFFの利用は通数無料であり、リッチメニューと並んで「送らずに価値を提供する」中核となる。
6.1.2 アプリ一覧
| アプリ | 画面サイズ | 機能 | 識別への寄与 |
|---|---|---|---|
| 会社情報の登録/確認 | Compact | 会社名・氏名・メール・役職の入力/確認 | 識別方式C の受け皿 |
| 資料ダウンロード | Tall | 資料一覧から選択 → PDFのURLを表示。DL履歴を記録 | 行動スコア |
| ウェビナー申込 | Tall | v2.0 F-19 の申込をLINE内で完結 | 識別方式B |
| 商談予約 | Full | 空き枠カレンダーから日時選択 | 商談化の直接導線 |
| 簡易見積診断 | Full | 5〜8問の設問 → 概算レンジと想定期間を提示 | 高関与シグナル |
| 配信設定 | Compact | 配信頻度・カテゴリの選択、配信停止 | ブロック抑制の要 |
6.1.3 共通処理仕様
- 初期化: 各ページ遷移で
liff.init()を実行する。URLクエリの操作はliff.init()の Promise が resolve した後に行う。 - 認証:
liff.getIDToken()で取得したIDトークンをサーバー側で検証し、userIdを確定する。liff.getProfile()の結果をサーバーに送って信用する実装は禁止(G-19)。 - 未ログイン時: 外部ブラウザで開かれた場合は
liff.login()を実行する。LIFFブラウザでは自動ログイン済みのためliff.login()を呼ばない(呼ぶとエラーになる)。 - 未友だち時:
liff.requestFriendship()で友だち追加を促す。追加せずに離脱した場合も、フォーム入力があればcontactsには登録する(メールチャネルでフォローできるため)。 - 完了後の挙動: 処理完了後は
liff.closeWindow()で閉じる。ただし外部ブラウザでは動作保証がないため、閉じられなかった場合の完了画面も用意する。 - 共有機能: 事例・資料の共有には
liff.shareTargetPicker()を使う。ただし送信先・送信人数は取得できないため、共有数をKPIにできない。共有経由の流入は共有時に発行するtracking_codeで計測する。
6.1.4 配信設定LIFF(最重要)
2.4項の「送らない権利を相手に渡す」を実装する画面。
| 設定項目 | 選択肢 | 既定 |
|---|---|---|
| 配信頻度 | 週1回まで / 月1回まで / 重要な連絡のみ / 停止 | 月1回まで |
| 受け取るカテゴリ | ウェビナー案内 / 技術情報 / 事例紹介 / サービス更新情報 | すべてON |
| 予約・申込の確認通知 | 受け取る / 受け取らない | 受け取る(transactional は頻度上限の対象外) |
設計上の要点: 「停止」を選んだ友だちにも
transactional(本人が申し込んだウェビナーのリマインド等)は届ける。ここを一律停止にすると、逆に「申し込んだのに連絡が来ない」という不満が生じる。両者を明確に分離して説明する。
6.1.5 制約
- 1チャネルあたりLIFFアプリは最大30個
liff.sendMessages()は LIFFブラウザ内でのみ動作する。外部ブラウザ向けの代替導線を必ず用意するemailスコープは要申請。申請には利用目的を提示する画面のスクリーンショットが必要。申請前提の設計にせず、メールアドレスは自己入力を既定とする- LIFFブラウザは直近50サービスを保持し、12時間以内の再訪はレジューム、それ以降はリロードされる。状態をブラウザ側にだけ持つ実装は破綻する
6.2 F-30 シナリオ配信(自前ステップ配信)
6.2.1 概要
3.9項の理由により、ステップ配信はLINE標準を使わず自前実装する。LINE・メール・フォームを同一シナリオ内で混在させられることが最大の価値である。
6.2.2 シナリオの構造
シナリオ = 開始条件 + ステップの有向グラフ
ステップの種別:
- 待機 : 分/時間/日 で指定。絶対時刻指定も可(ウェビナー開始5分前 等)
- 分岐 : 条件式で経路を分ける
- 配信 : チャネル(LINE/メール)とテンプレートを指定
- タグ付与 : contacts にタグを付ける
- 通知 : 営業担当へSlack/メール通知
- 終了 : シナリオから離脱
6.2.3 開始条件(トリガー)
| トリガー | 例 |
|---|---|
| LINE友だち追加(識別済みになった時点) | 初回フォロー7日シナリオ |
| ウェビナー申込 | 申込直後 → 前日 → 5分前 → 終了後 |
| 資料ダウンロード | DL直後 → 3日後 → 10日後 |
| LP行動スコア閾値超過(v2.0 F-14) | 高関与シグナル → 営業通知 + LINE個別連絡 |
| 簡易見積診断の完了 | 診断結果 → 3日後にフォロー |
| ステータス変更 | 商談化、失注、既存顧客化 |
| 無反応期間の経過 | 90日 → 配信頻度確認、180日 → 休眠処理 |
6.2.4 分岐条件で使える変数
| カテゴリ | 変数 |
|---|---|
| 企業属性 | 業種、従業員規模、都道府県、既存/新規 |
| 担当者属性 | 役職区分、自己申告の関心領域 |
| 行動 | LP閲覧回数、滞在時間、資料DL数、ウェビナー参加有無、メール開封率 |
| LINE | 識別状態、配信設定の頻度選択、直近配信からの経過日数、ブロック確率スコア |
| 案件 | 商談ステータス、見積提示の有無 |
6.2.5 処理仕様
- チャネル選択の委譲: 配信ステップは「LINE固定」ではなく「F-32のチャネル選択エンジンに委ねる」を既定とする。相手がLINE識別済みならLINE、そうでなければメールが選ばれる。
- 配信の直列化: 同一人物が複数シナリオに同時に入ることを許すが、配信は F-33 の頻度上限を必ず通す。上限に達した場合は配信ステップをスキップではなく延期する(既定24時間)。延期が3回続いた場合は破棄しログに残す。
- 絶対時刻トリガー: 「ウェビナー開始5分前」のような絶対時刻は Cloudflare Workflows または Durable Objects Alarm で実装する。Cron(最短1分)では5分前の精度は担保できるが、Queuesの遅延を見込んで2分前に投入する。
- 停止条件: 商談化・失注・ブロック・配信停止設定のいずれかが発生した時点で、該当者の全シナリオを即座に停止する。
- プレビューとテスト送信: 管理者は自分の
userIdに対してテスト送信できる。テスト送信も通数を消費するため、月間の上限(既定50通)を設ける。
6.2.6 制約
- 1シナリオあたりのステップ数上限 200(実運用は20程度を想定)
- 1人が同時に所属できるシナリオ数の上限 5
- 待機の最短は1分、最長は365日
- 配信ステップのないシナリオ(タグ付与のみ)も許容する
6.3 F-31 チャット一次応答・営業引き継ぎ
6.3.1 概要
友だちからのメッセージに応答する。reply は通数無料であるため、応答は積極的に行ってよい。ここがLINEの費用対効果が最も高い領域である。
6.3.2 応答の階層
| 階層 | 手段 | 通数 | 対応範囲 |
|---|---|---|---|
| 第0層 | ポストバック応答(ボタン/リッチメニュー) | 無料(reply) | 定型の導線。最も高速で確実 |
| 第1層 | キーワード応答 | 無料(reply) | 「料金」「事例」「資料」等の頻出語 |
| 第2層 | AI応答(自社実装 / Workers AI) | 無料(reply) | FAQの範囲。回答できない場合は正直に第3層へ渡す |
| 第3層 | 有人チャット | 無料(チャット) | 営業担当が公式アカウントマネージャーまたは自社管理画面から応答 |
6.3.3 処理仕様
- 受信の即時応答: Webhookは署名検証後すぐに200を返し、処理はQueuesへ流す。ただし
replyTokenの失効を避けるため、第0層・第1層の応答はWebhookハンドラ内で同期的に返す(処理時間は50ms以内を目標)。 - AI応答の設計: 第2層は v2.0 の Workers AI / AI Gateway を利用する。応答は社内ナレッジベース(Vectorize)に限定した検索拡張生成とし、ハルシネーションを防ぐ。信頼度が閾値未満の場合は「担当者に確認します」と返して第3層へエスカレーションする。
- 営業への通知: 第3層へのエスカレーション時、対象
contact_idの担当営業へSlack/メールで通知する。通知には企業名・担当者名・直近の行動履歴・メッセージ本文を含める。 - 応答時間の管理: 営業時間外は自動でその旨を返し、翌営業日の対応を約束する。応答時間内で15分以上未応答のスレッドは管理画面でアラート表示する。
- 会話履歴の保持: LINE User Data Policy に基づき、メッセージ本文の保存は業務上必要な期間に限る。既定は90日、その後は要約のみを残して本文を削除する(G-22)。
6.3.4 LINE公式の有料オプションとの関係
LINEヤフーは「AIチャットボット(β)」を提供しており、利用にはチャットProオプション(月額3,000円・税別)が必要。PDF・画像からのQ&A自動生成に対応する。
| 選択肢 | 月額 | 判断 |
|---|---|---|
| 自社実装(Workers AI + Vectorize) | 実質数百円 | 既定。ナレッジをMA側に一元化でき、LP・メールと共通のFAQを使える |
| LINE AIチャットボット(β) | 3,000円 | 自社実装の運用が回らない場合の代替。ただしMA側の文脈(企業属性・行動履歴)を使えない |
6.4 F-32 チャネル選択エンジン
6.4.1 概要
同一人物に対して LINE / メール / フォームのどれで連絡するかを決定する。同じ内容を複数チャネルで重複送信しないことが最大の目的。
6.4.2 選択ロジック
入力: contact_id, 配信理由コード, 優先度(transactional/promotional)
1. transactional(相手が待っている連絡)の場合
→ LINE識別済み かつ 未ブロック → LINE(push)
→ それ以外 → メール
※ 重要度が最高(商談日時変更等)の場合は LINE + メール の併用を許可
2. promotional(こちらからの情報提供)の場合
→ 配信設定が「停止」 → 送らない
→ 頻度上限に達している(F-33) → 延期
→ LINE識別済み かつ 直近30日にLINE反応あり → LINE(multicast)
→ LINE識別済み かつ 直近90日にLINE反応なし → メール(LINEの通数を温存)
→ LINE未識別 → メール
→ メール到達不能(バウンス)かつLINE識別済み → LINE
3. いずれのチャネルも使えない場合
→ フォーム営業(F-06)の候補キューへ(半自動モード)
6.4.3 重複配信の抑止
| ルール | 内容 |
|---|---|
| 同一コンテンツの多重送信禁止 | content_id + contact_id で送信済み判定。24時間以内の再送を禁止 |
| チャネル併用の制限 | transactional かつ重要度「最高」のみ併用可。promotional の併用は禁止 |
| 総接触回数の上限 | 全チャネル合計で1人あたり週2回、月6回を上限とする(v1.2 のメール上限と統合管理) |
設計上の要点: LINEを追加したことで「メールも来るしLINEも来る」状態を作ると、両方のチャネルを同時に失う。チャネル選択エンジンは追加機能ではなく、LINE導入の前提条件である。
7. 機能要件 第III部 — 統制・分析(F-33〜F-35)
7.1 F-33 配信ガバナンス・ブロック抑制
7.1.1 概要
通数予算とブロック率を機能で守る。F-27 のすべての配信は本機能のチェックを通過しなければ実行できない。
7.1.2 通数予算ガード
| 設定 | 既定 | 内容 |
|---|---|---|
| 現在のプラン | コミュニケーション | 無料枠 200通 |
| 月間通数上限 | 無料枠の100% | 超過するとプランによっては送信不能になるため |
| 警告閾値 | 60% / 80% / 95% | ダッシュボードとSlack通知 |
| 予約配信の事前判定 | 有効 | 予約時点で「今月の残枠を超える配信」を検知して警告 |
| 超過時の挙動 | transactional のみ許可 |
promotional は自動的に翌月へ延期 |
プラン移行の推奨判定
| 条件 | 推奨 |
|---|---|
| 直近3か月の平均通数 > 160通(無料枠の80%) | ライトプランへ移行(月5,000円 / 5,000通) |
| 直近3か月の平均通数 > 4,000通 | スタンダードプランへ移行(月15,000円 / 30,000通) |
| 一時的なスパイク(ウェビナー月のみ超過) | 移行せず、promotional の延期で吸収 |
7.1.3 頻度上限
| 優先度 | 既定の上限 | ユーザー設定による変更 |
|---|---|---|
promotional |
週1通 / 月4通 | 配信設定LIFFで「月1回まで」「重要な連絡のみ」に変更可 |
transactional |
上限なし | ただし同一内容の重複は禁止 |
上限に達した配信は延期され、24時間後に再判定される。3回延期された配信は破棄し、その事実を配信ログに残す。
7.1.4 ブロック確率スコアとサプレッション
ブロックは事後に検知しても手遅れである。事前に確率を推定して配信対象から外す。
スコアの入力特徴量
| 特徴量 | 方向 |
|---|---|
| 友だち追加からの経過日数 | 長いほど低リスク(初期離脱が多い) |
| 直近90日のLINEメッセージ開封(インプレッション)有無 | 無いほど高リスク |
| 直近90日のリンククリック有無 | 無いほど高リスク |
| リッチメニュータップ回数 | 少ないほど高リスク |
| 直近30日の受信通数 | 多いほど高リスク |
| 識別状態 | 未識別ほど高リスク |
| 配信設定の変更履歴(頻度を下げた) | 高リスク |
| LIFF利用有無 | 無いほど高リスク |
推定方法: 当社の友だち規模では機械学習モデルの学習データが不足するため、初期はルールベースのスコアリングとする。友だち数が1,000を超え、ブロック実績が100件を超えた段階でロジスティック回帰へ移行する。
サプレッション規則
| スコア | 扱い |
|---|---|
| 高(既定: 3条件以上該当) | promotional 配信の対象から除外。リッチメニューを dormant へ切替 |
| 中 | 配信頻度を自動で半減 |
| 低 | 通常配信 |
7.1.5 ブロック率の監視
| 指標 | 既定の警告閾値 | 備考 |
|---|---|---|
| 累計ブロック率 | 20% | 業界平均29.7%より厳しく設定 |
| 月次の新規ブロック率 | 3% | 単月での急増を検知 |
| 配信直後24時間のブロック数 | 配信対象の1% | 特定の配信が原因であることを特定できる |
配信直後のブロック急増を検知した場合、同一テンプレートを使う予約配信を自動的に保留し、管理者に確認を求める。
7.2 F-34 LINE行動計測
7.2.1 概要
LINE上の行動を v2.0 F-14 と同一のイベントスキーマで収集し、F-23 のチャネル横断アトリビューションに統合する。
7.2.2 イベント一覧
| イベント名 | 発生源 | 主なプロパティ |
|---|---|---|
line_follow |
Webhook | user_id, link_method, tracking_code |
line_unfollow |
Webhook | user_id, days_since_follow, last_message_at |
line_message_received |
Webhook | user_id, message_type, is_first_of_session |
line_message_sent |
配信エンジン | user_id, reason_code, send_type, template_id |
line_postback |
Webhook | user_id, postback_data, source(richmenu/button) |
line_link_click |
/r/{tracking_code} |
user_id, message_id, url |
line_richmenu_tap |
postback | user_id, menu_id, area_index |
line_liff_open |
LIFF | user_id, liff_id, entry_point |
line_liff_complete |
LIFF | user_id, liff_id, result |
line_block_predicted |
F-33 | user_id, score, reasons[] |
7.2.3 共通プロパティ(v2.0 F-14 と共通)
{
"event": "line_link_click",
"occurred_at": "2026-08-19T10:23:45.123Z",
"channel": "line",
"tracking_code": "xxxxxxxxxxxx",
"company_id": 1234,
"contact_id": 5678,
"session_id": "...",
"properties": { }
}
7.2.4 処理仕様
- 生イベントは Analytics Engine へ。D1に1件ずつINSERTしない(v2.0の禁止パターン)。
- 集計は日次。
line_daily_statsに日別・配信理由コード別で集約する。 - LINE公式の統計APIは補助。友だち数・ターゲットリーチ数・ブロック数はLINE側のAPIでしか取れないが、60 req/時の制限があるため日次1回のみ取得する。日中のリアルタイム値は自前計測を正とする。
- 「開封率」の定義: LINEには厳密な開封の概念がない。LINE側の統計APIが返すインプレッション(吹き出しの表示回数)を開封相当として扱い、メールの開封率とは別指標であることをダッシュボード上に明記する。
7.2.5 アトリビューションへの統合(F-23拡張)
| 追加するタッチポイント種別 | 内容 |
|---|---|
line_follow |
友だち追加。多くの場合ファーストタッチではなく中間タッチ |
line_click |
LINEメッセージからのクリック |
line_liff_cv |
LIFF内でのCV(ウェビナー申込・商談予約・資料DL) |
line_chat |
有人チャットの発生。高関与シグナルとして重み付けを高くする |
分析上の要点: LINEは「最後の一押し」に現れやすく、ラストタッチ評価だと過大評価される。一方でメールから友だち追加した場合、LINEはメールの下流でしかない。必ずマルチタッチ(F-23の既定モデル)で評価する。
7.3 F-35 LINEコンプライアンス管理
7.3.1 概要
v2.0 F-24 のガードレール管理に、LINE固有のガードレール G-16〜G-27 を追加する。設定ミス・運用ミスが法令違反やアカウント停止に直結する領域を、機能で塞ぐ。
7.3.2 ガードレール一覧
| ID | 内容 | 強制方法 |
|---|---|---|
| G-16 | 友だち追加時にオプトインの記録(時刻・方法・同意文言バージョン)を残す | 記録なしの友だちは promotional 配信の対象外 |
| G-17 | broadcast(全友だち配信)を配信エンジンから実行できない |
API層でブロック。例外は admin の二重確認フロー |
| G-18 | 配信理由コードのない配信を禁止 | バリデーション |
| G-19 | LIFFから受け取った userId はIDトークン検証を経たものだけを信用する |
サーバー側で検証。クライアント申告の userId は拒否 |
| G-20 | Webhook署名検証に失敗したリクエストの本文をログに残さない | ログ出力前にフィルタ |
| G-21 | 配信停止(ブロック以外)の導線を全ての promotional メッセージに含める |
テンプレート検証。リッチメニューに常設 |
| G-22 | userId 以外のLINEユーザー情報を24時間以上保存しない。友だち情報・グループ情報は保存しない |
日次パージバッチ。表示名はハッシュのみ |
| G-23 | userId を第三者(広告事業者・外部ツール)へ提供しない |
外部連携先のホワイトリスト管理 |
| G-24 | 禁止業種・禁止表現の配信を防ぐ | v2.0 F-11 の禁止表現リストをLINEテンプレートにも適用 |
| G-25 | 第三者のための広告媒体としての利用を禁止(共催セミナー等は事前確認) | テンプレート承認フローで「他社商材を含むか」をチェック |
| G-26 | ステマ規制対応。第三者への依頼投稿・アンバサダー経由の配信には「PR」表記 | 該当テンプレートへの必須表記 |
| G-27 | 外部送信規律への対応。LINE Tag等を自社サイトに設置する場合は外部送信ポリシーを公表 | 設定画面でタグ設置時に公表ページの更新を必須化 |
7.3.3 チェックのタイミング
| タイミング | チェック内容 |
|---|---|
| テンプレート保存時 | G-18, G-21, G-24, G-25, G-26 |
| 配信実行前 | G-16, G-17, G-18, G-21 + 通数予算・頻度上限(F-33) |
| Webhook受信時 | G-19, G-20 |
| 日次バッチ | G-22(パージ)、G-23(連携先監査) |
| 設定変更時 | G-27 |
8. ユースケース別シナリオ設計
本章は「何に使うか」を具体化する。2.1項で述べたとおり、LINEが効くのは即時性が価値を持つ場面とすでに接点のある個人に限られる。
8.1 ユースケース一覧と適性
| ユースケース | LINEの適性 | 理由 |
|---|---|---|
| ウェビナー運用 | ◎ | 開始直前のリマインドが刺さる。参加率が大きく変わる |
| 展示会・イベント当日 | ◎ | QR1つで受付・資料配布・アンケートまで完結する |
| 既存顧客のサポート窓口 | ◎ | 障害連絡・保守レポート・問い合わせ。即時性と双方向性の両方が要る |
| 商談中の連絡 | ○ | 日程調整・資料送付。ただし正式書類はメールで残す |
| 資料DL後のナーチャリング | ○ | 月1回程度。頻度を上げるとブロックされる |
| 採用広報 | ○ | 候補者との接点。ただし別アカウントを推奨 |
| 新規リード獲得 | × | 2.1項のとおり構造的に不向き |
| 定期メルマガ | × | 通数コストとブロックリスクに見合わない |
8.2 ウェビナー運用シナリオ(最優先で実装)
v2.0 F-19 のウェビナー機能に、LINEを重ねる。
| # | タイミング | チャネル | 内容 | 種別 |
|---|---|---|---|---|
| 1 | 申込直後 | LIFF内で完結 | 申込完了 + カレンダー登録リンク | — |
| 2 | 申込直後 | メール | 参加URL(正式な記録として必ずメールでも送る) | transactional |
| 3 | 前日 10:00 | LINE | リマインド + 参加URL + 事前質問の受付 | transactional |
| 4 | 開始5分前 | LINE | 「まもなく開始します」+ 参加URL | transactional |
| 5 | 終了直後 | LINE | アンケートLIFF + 資料DLリンク | transactional |
| 6 | 翌営業日 | チャネル選択 | 録画URL + 関連事例 | promotional |
| 7 | 7日後 | チャネル選択 | 個別相談の案内(参加時間が長かった人のみ) | promotional |
| 8 | 高関与時 | 通知のみ | 営業へSlack通知(参加+資料DL+相談LIFF閲覧) | — |
期待効果: 参加率の改善。ウェビナーの無断欠席は申込者の30〜50%が一般的だが、開始5分前のLINEリマインドはこの層に直接届く(開封の約20%が即時、約80%が当日中)。
8.3 展示会・イベント当日シナリオ
| # | 場面 | 実装 |
|---|---|---|
| 1 | ブース来訪 | QRコード(tracking_code 埋め込み)を掲示 → 友だち追加 |
| 2 | 追加直後 | あいさつメッセージ(無料)で「会社情報の登録」LIFFへ誘導 |
| 3 | 登録完了 | 資料一覧LIFFへ遷移。その場で必要な資料だけ選ばせる(紙を配らない) |
| 4 | 会期中 | リッチメニューを identified へ切替。デモ予約・相談枠の空き状況を表示 |
| 5 | 会期終了翌日 | チャネル選択エンジン経由でお礼 + 個別相談の案内 |
| 6 | 名刺との突合 | 名刺スキャン結果と line_id_links を突合し、重複を統合 |
この用途でLINEが強い理由: 名刺交換は「後で連絡が来る」だけだが、LINEはその場で相手の端末に導線が残る。紙の資料を持ち帰らせるより、LIFFで選ばせたほうがDL履歴という行動データも取れる。
8.4 既存顧客サポートシナリオ
| # | 場面 | 実装 | 種別 |
|---|---|---|---|
| 1 | 保守契約開始 | リッチメニューを customer へ切替 |
— |
| 2 | 障害発生 | 影響顧客へ push(最優先の transactional) | transactional |
| 3 | 復旧 | 続報を push | transactional |
| 4 | 問い合わせ | チャット(F-31)。第0〜2層で一次応答、必要に応じ営業/技術へ | 無料 |
| 5 | 月次 | 保守レポートをLIFFで閲覧(配信せず、メニューから見に来てもらう) | 無料 |
| 6 | 契約更新3か月前 | 更新案内 | promotional |
設計上の要点: 月次レポートを毎月pushすると年12通×顧客数の通数を消費する。リッチメニューに常設して取りに来てもらうほうが安く、かつメニューのタップが関与度の指標になる。
8.5 採用広報(別アカウント推奨)
営業用の公式アカウントと採用用を分けるべき理由:
- 配信内容が全く異なり、同一アカウントだと双方にとってノイズになる
- 人材業界のブロック率は38.4%と最も高い。営業用アカウントの評価を巻き込みたくない
- 通数予算を分離できる(それぞれコミュニケーションプランで足りる)
ただしアカウントを分けるとプロバイダーが同じでも公式アカウントが別になるため、userId は共通でも友だち関係は別々になる。統合分析は contacts レベルで行う。
9. 計測仕様
9.1 主要KPI
| 階層 | KPI | 定義 | 目標(初年度) |
|---|---|---|---|
| 資産 | 識別済み友だち数 | line_id_links に contact_id があり status=active |
300 |
| 資産 | 識別率 | 識別済み友だち ÷ 友だち総数 | 80%以上 |
| 健全性 | 累計ブロック率 | ブロック数 ÷ 累計友だち追加数 | 15%未満 |
| 健全性 | 月間通数 | 課金対象通数 | 200通以内(無料枠) |
| 反応 | インプレッション率 | LINE統計APIのインプレッション ÷ 配信通数 | 60%以上 |
| 反応 | クリック率 | line_link_click ÷ 配信通数 |
15%以上 |
| 反応 | リッチメニュータップ数/月 | line_richmenu_tap の合計 |
識別済み友だち数 × 2 |
| 転換 | LIFF完了数/月 | line_liff_complete |
30 |
| 転換 | LINE起点の商談化数 | F-23のアトリビューションで按分 | 四半期3件 |
9.2 メールとの比較の注意
| 指標 | メール | LINE | 比較可否 |
|---|---|---|---|
| 開封率 | トラッキングピクセルの読込 | インプレッション(吹き出し表示) | 不可。定義が異なる |
| クリック率 | 開封者ベース or 送信者ベース | 送信者ベース | 送信者ベースに揃えれば比較可 |
| 配信停止率 | 配信停止リンクのクリック | ブロック + 配信設定変更 | 不可。ブロックは不可逆 |
| CV | 同一の tracking_code 基盤 |
同左 | 可。これが唯一の共通土俵 |
ダッシュボードでは開封率をチャネル横断で並べない。CVとCPAだけを横並びにする。
9.3 データ保持
| データ | 保持期間 | 根拠 |
|---|---|---|
| 生イベント(Analytics Engine) | 90日 | v2.0 F-14 と同じ |
日次集計(line_daily_stats) |
5年 | 分析用 |
| メッセージ本文(受信) | 90日、以後は要約のみ | LINE User Data Policy / G-22 |
| 表示名・プロフィール画像URL | 保存しない(ハッシュのみ) | G-22 |
userId と contact_id の紐付け |
契約終了まで | 業務上必要 |
| ブロック済み友だちの記録 | 3年 | 再追加時の識別のため |
10. 画面仕様(追加)
10.1 画面一覧
| 画面ID | 画面名 | 主な内容 | ロール |
|---|---|---|---|
| S-28 | LINEダッシュボード | 識別済み友だち数、識別率、ブロック率、当月通数と残枠、直近の反応 | admin/member |
| S-29 | 友だち一覧 | 識別状態・企業名・担当者名・最終反応日・ブロック確率スコアで絞り込み | admin/member |
| S-30 | 友だち詳細 | 企業/担当者情報、配信履歴、行動履歴、チャット履歴、ID連携の手動修正 | admin/member |
| S-31 | メッセージテンプレート管理 | Flex/カルーセル等のテンプレート編集、プレビュー、ガードレール検証結果 | admin |
| S-32 | 配信作成・予約 | 対象抽出、テンプレート選択、通数見積、頻度上限の抵触表示、予約 | admin/member |
| S-33 | シナリオエディタ | ステップのグラフ編集、分岐条件、チャネル指定、テスト送信 | admin |
| S-34 | リッチメニュー管理 | メニュー定義、エイリアス、割当ルール、画像アップロード | admin |
| S-35 | LIFFアプリ管理 | LIFF ID とアプリの対応、公開状態、利用統計 | admin |
| S-36 | チャット | 有人応答。企業情報と行動履歴を横に表示。営業への割当 | admin/member |
| S-37 | LINE設定 | チャネル情報、トークン、Webhook疎通、応答設定の整合チェック | admin |
| S-38 | 通数・ブロック分析 | 月次推移、配信理由コード別の通数と反応、配信直後のブロック増加検知 | admin |
10.2 主要画面の補足
S-28 LINEダッシュボード
最上段に置く数字は次の3つのみとする。友だち総数は副次指標として小さく表示する(2.2項)。
┌──────────────┬──────────────┬──────────────┐
│ 識別済み友だち │ 識別率 │ 当月通数 │
│ 287人 │ 82.5% │ 143 / 200 │
│ 前月比 +23 │ 前月比 +3.1pt │ 残 57通 │
└──────────────┴──────────────┴──────────────┘
友だち総数 348人 / ブロック率 12.4%
S-32 配信作成・予約
送信ボタンを押す前に、以下を必ず画面上で確定表示する。
- 送信対象数と消費通数の見積
- 当月残枠との関係(超過する場合はボタンを押せない)
- 頻度上限に抵触して除外される人数とその内訳
- ブロック確率スコアが高く除外される人数
- ガードレール検証の結果(G-18, G-21, G-24, G-25, G-26)
S-36 チャット
左に会話、右に企業情報・行動履歴を並置する。営業が「誰と話しているか」を分からないまま応答する状態を作らない。未応答15分でアラート。
11. データベース設計(追加)
11.1 ER概要
companies (v1.2) ──1:N── contacts (v1.2)
│
│ 1:N
▼
line_id_links ──N:1── line_friends
│
┌────────────────────┼────────────────────┐
▼ ▼ ▼
line_messages line_richmenu_state line_preferences
│
▼
line_message_targets
line_scenarios ──1:N── line_scenario_steps
│
└──1:N── line_scenario_enrollments ──N:1── contacts
line_templates ──1:N── line_messages
line_link_tokens
line_daily_stats
11.2 主要テーブル定義
line_friends
| カラム | 型 | 制約 | 内容 |
|---|---|---|---|
user_id |
TEXT | PK | LINEのuserId(U+32桁) |
status |
TEXT | NOT NULL | active / blocked |
followed_at |
TEXT | NOT NULL | 初回友だち追加日時(ISO8601) |
refollowed_at |
TEXT | 再追加日時 | |
unfollowed_at |
TEXT | ブロック日時 | |
display_name_hash |
TEXT | 表示名のSHA-256(平文は保存しない) | |
block_score |
REAL | ブロック確率スコア(0.0〜1.0) | |
block_score_reasons |
TEXT | JSON配列 | |
last_inbound_at |
TEXT | 最終受信日時 | |
last_outbound_at |
TEXT | 最終送信日時 | |
created_at / updated_at |
TEXT | NOT NULL |
索引: status, block_score, last_inbound_at
line_id_links
| カラム | 型 | 制約 | 内容 |
|---|---|---|---|
id |
INTEGER | PK AUTOINCREMENT | |
user_id |
TEXT | NOT NULL, FK | line_friends.user_id |
contact_id |
INTEGER | FK | contacts.id |
company_id |
INTEGER | FK | companies.id |
link_method |
TEXT | NOT NULL | tracking_code / liff_form / self_report / manual |
confidence |
TEXT | NOT NULL | high / medium / low |
linked_at |
TEXT | NOT NULL | |
linked_by |
TEXT | 手動連携時のユーザー | |
is_active |
INTEGER | NOT NULL | 1/0。修正時は旧レコードを0にして履歴を残す |
一意制約: (user_id, is_active) で active は1件のみ
line_preferences
| カラム | 型 | 制約 | 内容 |
|---|---|---|---|
user_id |
TEXT | PK, FK | |
frequency |
TEXT | NOT NULL | weekly / monthly / important_only / stopped |
categories |
TEXT | NOT NULL | JSON配列。["webinar","tech","case","product"] |
transactional_enabled |
INTEGER | NOT NULL | 既定1 |
updated_at |
TEXT | NOT NULL | |
updated_via |
TEXT | liff / admin |
line_messages
| カラム | 型 | 制約 | 内容 |
|---|---|---|---|
id |
INTEGER | PK AUTOINCREMENT | |
direction |
TEXT | NOT NULL | outbound / inbound |
send_type |
TEXT | reply / push / multicast |
|
reason_code |
TEXT | 配信理由コード | |
priority |
TEXT | transactional / promotional |
|
template_id |
INTEGER | FK | |
body_digest |
TEXT | 本文のハッシュ(重複判定用) | |
body |
TEXT | 受信本文。90日後にNULL化(G-22) | |
summary |
TEXT | 本文削除後に残す要約 | |
target_count |
INTEGER | 送信対象数 | |
billable_count |
INTEGER | 課金通数 | |
idempotency_key |
TEXT | UNIQUE | |
status |
TEXT | NOT NULL | queued / sent / failed / deferred / discarded |
sent_at |
TEXT | ||
created_at |
TEXT | NOT NULL |
line_message_targets
| カラム | 型 | 制約 | 内容 |
|---|---|---|---|
message_id |
INTEGER | PK(複合), FK | |
user_id |
TEXT | PK(複合), FK | |
result |
TEXT | NOT NULL | sent / excluded_frequency / excluded_block_score / excluded_preference / failed |
impressed_at |
TEXT | 統計API由来(日次) | |
clicked_at |
TEXT | /r/ 経由で確定 |
line_richmenu_state
| カラム | 型 | 制約 | 内容 |
|---|---|---|---|
user_id |
TEXT | PK, FK | |
menu_id |
TEXT | NOT NULL | default/identified/in_deal/customer/dormant |
line_richmenu_id |
TEXT | LINE側のリッチメニューID | |
linked_at |
TEXT | ||
sync_status |
TEXT | NOT NULL | pending / synced / failed |
line_scenarios / line_scenario_steps / line_scenario_enrollments
| テーブル | 主なカラム |
|---|---|
line_scenarios |
id, name, trigger_type, trigger_config(JSON), is_active, max_concurrent |
line_scenario_steps |
id, scenario_id, step_order, step_type(wait/branch/send/tag/notify/end), config(JSON), next_step_id, branch_config(JSON) |
line_scenario_enrollments |
id, scenario_id, contact_id, current_step_id, state(running/completed/stopped), next_fire_at, enrolled_at, stopped_reason |
line_daily_stats
| カラム | 型 | 内容 |
|---|---|---|
stat_date |
TEXT | PK(複合) |
reason_code |
TEXT | PK(複合) |
billable_count |
INTEGER | 課金通数 |
impression_count |
INTEGER | LINE統計API由来 |
click_count |
INTEGER | 自前計測 |
block_count |
INTEGER | 当日のブロック数 |
friend_total |
INTEGER | 友だち総数(LINE統計API) |
identified_total |
INTEGER | 識別済み友だち数(自社DB) |
11.3 設計方針
user_idを主キーとし、contactsとは中間テーブル(line_id_links)で疎結合にする。同一人物が複数のLINEアカウントを持つ場合や、連携の誤りを修正する場合に備える- 本文(
body)はNULL化可能に設計する。パージバッチで本文を消しても行は残る(統計を壊さない) billable_countを明示的に持ち、LINE側の請求と突合できるようにする- v1.2 の方針どおり SQLite / D1 いずれでも動く DDL とし、ORM経由でPostgreSQL移行の余地を残す
12. API設計(追加)
12.1 公開エンドポイント(認証不要)
| メソッド | パス | 内容 |
|---|---|---|
| POST | /line/webhook |
LINE Webhook受信。署名検証必須。即座に200を返す |
| GET | /r/{tracking_code} |
既存(v1.2 F-09)。?to=line でLINE友だち追加へ中継 |
| GET | /liff/{app} |
LIFFアプリのHTML配信 |
| POST | /liff/api/verify |
IDトークン検証 → セッション発行 |
| POST | /liff/api/link |
ID連携の確定(link_token + IDトークン) |
| POST | /liff/api/preferences |
配信設定の更新 |
| POST | /liff/api/form/{form_id} |
LIFF内フォーム送信(ウェビナー申込等) |
12.2 管理API(認証必須)
| メソッド | パス | 内容 |
|---|---|---|
| GET | /api/line/friends |
友だち一覧。識別状態・企業・スコアで絞り込み |
| GET | /api/line/friends/{user_id} |
友だち詳細 |
| PATCH | /api/line/friends/{user_id}/link |
ID連携の手動修正 |
| POST | /api/line/messages |
配信要求の作成(即時 or 予約) |
| POST | /api/line/messages/estimate |
送信せずに通数・除外人数を試算 |
| GET | /api/line/messages/{id} |
配信結果 |
| GET/POST/PUT | /api/line/templates |
テンプレートCRUD |
| GET/POST/PUT | /api/line/scenarios |
シナリオCRUD |
| POST | /api/line/scenarios/{id}/test |
テスト送信 |
| GET/POST/PUT | /api/line/richmenus |
リッチメニューCRUD |
| POST | /api/line/richmenus/assign |
割当ルールの再評価 |
| GET | /api/line/stats/daily |
日次統計 |
| GET | /api/line/stats/quota |
当月通数と残枠 |
| GET/PUT | /api/line/settings |
チャネル設定 |
| POST | /api/line/settings/verify |
Webhook疎通確認 |
12.3 共通仕様
- 認証・エラー形式は v1.2 / v2.0 に準拠
POST /api/line/messagesはIdempotency-Keyヘッダー必須estimateは副作用を持たない。UI は送信ボタンの活性判定にこれを使う
12.4 定期実行(Cron)
| 頻度 | 処理 |
|---|---|
| 1分 | シナリオの next_fire_at 到来分の実行、配信キューの消化 |
| 15分 | リッチメニュー割当の同期(sync_status=pending) |
| 1時間 | 短期チャネルアクセストークンの残存時間チェック |
| 日次 02:00 | LINE統計API取得(友だち数・ターゲットリーチ・ブロック数)。60 req/時の制限内 |
| 日次 03:00 | ブロック確率スコアの再計算 |
| 日次 04:00 | G-22 パージ(24時間超のプロフィール情報、90日超のメッセージ本文) |
| 日次 05:00 | line_daily_stats の集計、F-23 への連携 |
| 月次 1日 | 通数のリセット確認、プラン推奨判定 |
13. 非機能要件
| 分類 | 要件 |
|---|---|
| Webhook応答時間 | 署名検証 + 200応答までを 200ms以内。第0層・第1層の reply も含めて 500ms以内 |
| 可用性 | Webhookエンドポイントは 99.9%。停止中のイベントはLINE側が再送するが、再送回数には限りがあるため冪等処理を必須とする |
| 冪等性 | 同一 webhookEventId の重複処理を防ぐ。KVに24時間の重複排除キーを持つ |
| スループット | Webhook 100 req/秒、配信 200 req/秒(multicast の制限に合わせる) |
| LIFF初期表示 | LCP 2.0秒以内。LIFF SDK 以外の外部CDN読み込みを禁止 |
| セキュリティ | チャネルシークレット・アクセストークンは Workers Secrets に保存。管理画面での復号表示は admin のみ・監査ログ必須 |
| 署名検証 | 生ボディに対する HMAC-SHA256 を定数時間比較。失敗時は401、本文を記録しない |
| 監査ログ | 配信実行、ID連携の手動修正、設定変更、シークレット閲覧を記録。3年保持 |
| バックアップ | v1.2 の方針(VACUUM INTO / D1のPITR)に準拠 |
| 障害時の縮退 | LINE APIが応答しない場合、transactional はメールへ自動フォールバック。promotional は延期 |
14. 法令・コンプライアンス
14.1 特定電子メール法は適用されない
LINE公式アカウントのメッセージ配信は、特定電子メール法の適用対象外である。
同法の「電子メール」は総務省令で定める通信方式に限定されており、その方式は次の2つである。
- SMTP方式(Simple Mail Transfer Protocol を用いる通信方式 = いわゆるEメール)
- 電話番号方式(携帯端末に電話番号を宛先として情報を伝達する方式 = SMS等)
LINEのメッセージはいずれにも該当しない。
ただしこれは「何を送ってもよい」という意味ではない。 適用されるのは以下の3層である。
| 層 | 規律 | 実務上の強さ |
|---|---|---|
| ① 契約 | LINE公式アカウント利用規約 / ガイドライン / User Data Policy | 最も強い。違反時はコンテンツ削除・サービス停止・契約解除。LINEヤフーは理由の回答義務を負わない |
| ② 法令 | 個人情報保護法、電気通信事業法(外部送信規律)、景品表示法、特定商取引法 | 通常の法令リスク |
| ③ 自主 | 特電法・特商法水準のオプトイン記録とオプトアウト導線 | 適用がなくても揃えるのが安全 |
本仕様の方針: 法適用がなくても、オプトイン取得の記録(G-16)、ブロック以外の配信停止導線(G-21)、送信者の明示を特電法と同水準で実装する。ブロックしか停止手段がない設計は、そのままブロック率を押し上げる。
14.2 LINE公式アカウントガイドライン
禁止業種・禁止コンテンツのうち、当社に関係しうるものを抜粋する。
| 項目 | 内容 | 当社での注意点 |
|---|---|---|
| 第三者のための広告媒体としての使用禁止 | 自社アカウントで他社商材を配信することの禁止 | 共催セミナー・パートナー製品の紹介は事前確認が必要(G-25) |
| 情報商材 | 禁止 | 該当しないが「必ず儲かる」等の表現は避ける |
| 知的財産権侵害 | 他社ロゴ・キャラクターの無許可使用 | 事例紹介での顧客ロゴ使用は必ず許諾を取る |
| なりすまし | 著名人・企業・LINE運営へのなりすまし | 該当なし |
| アカウント名の要件 | 法人名または商品の正式名称を含めること | 「シンオン株式会社」を含む名称とする |
| 不快な配信 | 頻度過多を含む | F-33 の頻度上限で機械的に防ぐ |
14.3 個人情報保護法とLINE User Data Policy
userId の位置づけ
userId単体 → 個人関連情報(個人情報保護委員会の Cookie 等の端末識別子に関する整理に準じる)contact_idと紐づけた時点 → 個人情報(容易照合性が成立する)
本仕様では ID連携を前提としているため、userId は最初から個人情報として扱う。プライバシーポリシーに以下を明記する。
- LINEの
userIdを取得すること - 取得した
userIdを自社の顧客情報と紐づけること - 利用目的(サービスの案内、問い合わせ対応、利用状況の分析)
- 委託の有無と委託先の管理
LINE User Data Policy による追加制約(法令より厳しい)
| 制約 | 本仕様での対応 |
|---|---|
| サービス提供に必要なLINEユーザー情報に限り取得・保存・利用できる | 取得項目を userId と自己申告情報に限定 |
userId を除く情報の24時間以上の保存には事前告知が必須 |
表示名・画像URLは保存せず、ハッシュのみ(G-22) |
| 友だち情報・グループ情報は24時間以上の保存禁止 | 取得しない |
| 第三者提供は法令に基づく場合と業務委託先への開示のみ | 外部連携先をホワイトリスト管理(G-23) |
| ユーザー情報の購買・販売の禁止 | 該当なし |
| 複数サービス間でのユーザー情報の紐付け禁止(LINEヤフーの許可がある場合を除く) | 採用用アカウントと営業用アカウントの userId を直接紐付けない。統合は contacts レベルで行う |
| サービス終了時・ユーザー退会後は全ユーザー情報を削除 | 削除手順を運用手順書に定義 |
14.4 令和8年改正個人情報保護法への備え
2026年7月17日に公布された改正個人情報保護法は、公布から2年を超えない範囲内で施行される(施行日は政令で確定。要確認)。LINE活用に直結する改正点は次のとおり。
| 改正項目 | 本仕様への影響 |
|---|---|
| 個人関連情報への規律強化(特定個人への働きかけが可能な情報の不適正利用・不正取得を禁止) | userId ベースの運用が新たに規律対象になる。取得経路と利用目的の記録(G-16)がより重要になる |
| 課徴金制度の導入(本人数1,000人以上の大規模事案が対象) | 当社の規模では直ちに対象にならないが、識別済み友だちが1,000人を超えたら再点検する |
| オプトアウト制度の強化 | 該当する運用は行わない方針 |
| 16歳未満の個人情報 | BtoB用途では想定しないが、採用広報では留意 |
14.5 外部送信規律(電気通信事業法27条の12)
- 自社の商品・サービスのみを紹介・販売するサイトは原則として対象外。当社のコーポレートサイト・LPは該当しない
- ただし、ユーザー間チャット、口コミ投稿、マーケットプレイス等の機能を持たせると対象になりうる
- LINE Tag 等の計測タグを自社サイトに設置する場合、外部送信規律の直接適用がなくても、取得するCookie ID等は個人関連情報に該当しうるため、外部送信ポリシーページの公表とオプトアウト導線の用意を標準対応とする(G-27)
14.6 景品表示法・特定商取引法
| 論点 | 本仕様での対応 |
|---|---|
| ステマ規制(2023年10月1日施行) | 第三者への依頼投稿・アンバサダー経由の配信には「PR」表記を必須化(G-26) |
| 優良誤認・有利誤認 | 「期間限定」の常態化を禁止。v2.0 F-11 の禁止表現リストをLINEテンプレートにも適用(G-24) |
| 打消し表示 | LINEは画面が小さく、リッチメッセージ画像内の小さな注記は打消し表示として不十分と判断されうる。重要な条件は画像ではなくテキストで書く |
| 特商法の表示事項 | 吹き出し内に全部は書けない。LIFF/LPの遷移先で表示事項を満たし、メッセージ本体には主要条件と遷移導線を明示する |
| 景品規制 | 友だち追加キャンペーンは行わない方針(2.2項)。実施する場合は取引付随性の判定を法務確認する |
15. 段階導入計画
v2.0 の段階導入(フェーズ0〜4)とは独立に進められる。ただし F-26 の識別は v1.2 F-09 の tracking_code 基盤に依存するため、それが稼働していることが前提。
フェーズL0 — 接続と識別(2〜3週間)
| # | 作業 |
|---|---|
| 1 | LINE公式アカウント開設。プロバイダーを1つ作り、Messaging APIチャネルとLINEログインチャネルを同一プロバイダー配下に作成(F-25) |
| 2 | コミュニケーションプラン(月額0円)で開始 |
| 3 | Webhook受信 + 署名検証 + Queues。冪等処理(F-25) |
| 4 | line_friends / line_id_links / line_link_tokens(F-26) |
| 5 | /r/{tracking_code}?to=line の中継とあいさつメッセージ→LIFFの1ホップ(F-26) |
| 6 | 「会社情報の登録/確認」LIFF(F-29) |
| 7 | S-28 ダッシュボード、S-29/S-30 友だち一覧・詳細 |
完了条件: 社内メンバー10名で、メール経由の友だち追加が100%識別されること。
フェーズL1 — 常設窓口(2〜3週間)
| # | 作業 |
|---|---|
| 1 | リッチメニュー5種の作成とユーザー単位割当(F-28) |
| 2 | 「資料ダウンロード」「配信設定」LIFF(F-29) |
| 3 | 第0層・第1層の応答(ポストバック・キーワード)(F-31) |
| 4 | S-34 リッチメニュー管理、S-36 チャット |
| 5 | ガードレール G-16〜G-22 の実装(F-35) |
完了条件: 1通も課金配信をせずに、リッチメニュー経由の資料DLが発生すること。このフェーズの成果は通数ゼロで得られる。
フェーズL2 — 配信とシナリオ(3〜4週間)
| # | 作業 |
|---|---|
| 1 | 配信エンジン(reply/push/multicast)(F-27) |
| 2 | 配信ガバナンス(通数予算・頻度上限)(F-33) |
| 3 | シナリオ配信(F-30) |
| 4 | チャネル選択エンジン(F-32) |
| 5 | ウェビナー運用シナリオ(8.2項)の実装 |
| 6 | S-31/S-32/S-33/S-38 |
完了条件: ウェビナー1回を LINE リマインド付きで実施し、参加率が従来比で改善すること。
フェーズL3 — 計測統合とAI応答(2〜3週間)
| # | 作業 |
|---|---|
| 1 | LINE行動計測(F-34)、Analytics Engine への収集 |
| 2 | F-23 アトリビューションへの統合 |
| 3 | 第2層 AI応答(Workers AI + Vectorize)(F-31) |
| 4 | ブロック確率スコア(F-33) |
| 5 | 残りのガードレール G-23〜G-27 |
完了条件: LINE起点の商談化がアトリビューション上で1件以上按分されること。
フェーズL4 — 拡張(必要になったら)
- 「ウェビナー申込」「商談予約」「簡易見積診断」LIFF の実装
- 既存顧客サポートシナリオ(8.4項)
- 採用広報用の別アカウント(8.5項)
- 認証済アカウントの申請、LINEミニアプリ化の検討
15.1 各フェーズの判断基準
| フェーズ | 次に進む条件 | 進まない場合の判断 |
|---|---|---|
| L0 → L1 | 識別率 80%以上 | 導線設計をやり直す。友だちを増やす施策は打たない |
| L1 → L2 | リッチメニュー経由の行動が月20件以上 | LIFFのコンテンツが足りない。配信を足しても解決しない |
| L2 → L3 | ブロック率 15%未満を3か月維持 | 配信頻度・内容を見直す。計測を足しても解決しない |
| L3 → L4 | LINE起点の商談化が四半期1件以上 | LINEの用途をサポート窓口に限定し、獲得用途から撤退する |
重要: フェーズL1(通数ゼロ)で価値が出ないなら、配信を増やしても価値は出ない。「配信すれば効果が出る」という順序で考えない。
16. 今後の検討事項
| # | 項目 | 内容 | 判断の目安 |
|---|---|---|---|
| 1 | 認証済アカウントの申請 | 審査に約10営業日。友だち追加広告の利用条件でもある。LINE検索への掲載メリットあり | 識別済み友だち500人到達時 |
| 2 | LINEミニアプリ化 | 認証済ミニアプリはホーム画面ショートカット、LINE検索掲載が可能。画面サイズはFull固定。公式は新規をミニアプリで作ることを推奨している | LIFFアプリが5本以上になり、利用が定着した時点 |
| 3 | 友だち追加広告(CPF)の再検討 | 4.4項の判断を覆す条件は「認証済取得済み」かつ「識別済み友だち2,000人・商談化率5%安定」 | 上記条件の充足時 |
| 4 | LINE公式AIチャットボット(β)への切替 | チャットProオプション 月額3,000円。自社実装の運用負荷が高い場合の代替 | 自社AI応答の保守工数が月8時間を超えた時点 |
| 5 | email スコープの申請 |
申請には利用目的提示画面のスクリーンショットが必要。自己入力の入力率が低い場合に検討 | 会社情報登録LIFFの完了率が50%を下回った場合 |
| 6 | 複数公式アカウントのリンク | LIFF v2.30.0(2026年8月)で複数公式アカウントのリンク機能への布石が入っている。営業用/採用用の統合運用に関わる | LINE側の正式提供後 |
| 7 | ブロック確率モデルの機械学習化 | ルールベースからロジスティック回帰へ | ブロック実績100件到達時 |
| 8 | LINE通知メッセージ | 電話番号ベースの配信。当社は電話番号を体系的に保有していないため現状は対象外 | 電話番号の取得が業務フローに入った場合 |
| 9 | 改正個人情報保護法の施行対応 | 施行日は政令で確定予定。個人関連情報の規律強化への対応 | 施行日確定時に再点検 |
| 10 | LINE Tag の導入可否 | LINE広告を使わない前提では導入不要。導入する場合は外部送信ポリシーの整備が前提 | 広告再検討時と同時 |
17. 出典
LINEヤフー公式 — 料金・プラン
- LINE公式アカウント 料金プラン — https://www.lycbiz.com/jp/service/line-official-account/plan/
- Messaging APIの料金 | LINE Developers — https://developers.line.biz/ja/docs/messaging-api/pricing/
- 今さら聞けない! Messaging APIの通数カウント方法(2026/5/28) — https://developers.line.biz/ja/tips/2026/05/28/how-to-count-messages/
- LINE公式アカウント 料金プラン改定のお知らせ(2023/6/1) — https://www.lycbiz.com/jp/news/line-official-account/20230601/
LINEヤフー公式 — Messaging API
- Messaging APIの概要 — https://developers.line.biz/ja/docs/messaging-api/overview/
- メッセージを送信する — https://developers.line.biz/ja/docs/messaging-api/sending-messages/
- Messaging APIリファレンス(レート制限を含む) — https://developers.line.biz/ja/reference/messaging-api/
- Messaging API開発ガイドライン — https://developers.line.biz/ja/docs/messaging-api/development-guidelines/
- ボットを作成する — https://developers.line.biz/ja/docs/messaging-api/building-bot/
- line/line-openapi(LINE公式 OpenAPI定義) — https://github.com/line/line-openapi
- 複数のツールからMessaging APIを利用する際に確認したいこと(2026/7/23) — https://developers.line.biz/ja/tips/2026/07/23/using-multiple-api-tools/
LINEヤフー公式 — Webhook・リッチメニュー
- メッセージ(Webhook)を受信する — https://developers.line.biz/ja/docs/messaging-api/receiving-messages/
- Webhookの署名を検証する — https://developers.line.biz/ja/docs/messaging-api/verify-webhook-signature/
- LINE公式アカウントでWebhookとチャットが併用できるようになりました(2022/12/1) — https://developers.line.biz/ja/news/2022/12/01/use-both-chats-and-webhooks/
- リッチメニューの概要 — https://developers.line.biz/ja/docs/messaging-api/rich-menus-overview/
- リッチメニューでタブ切り替えを行う — https://developers.line.biz/ja/docs/messaging-api/switch-rich-menus/
- ユーザー単位のリッチメニューを使う — https://developers.line.biz/ja/docs/messaging-api/use-per-user-rich-menus/
- リッチメニュー マニュアル — https://www.lycbiz.com/jp/manual/OfficialAccountManager/rich-menus/
LINEヤフー公式 — LIFF・ミニアプリ
- LIFFの概要 — https://developers.line.biz/ja/docs/liff/overview/
- LIFF APIリファレンス — https://developers.line.biz/ja/reference/liff/
- LIFFアプリを登録する — https://developers.line.biz/ja/docs/liff/registering-liff-apps/
- LIFF リリースノート — https://developers.line.biz/ja/docs/liff/release-notes/
- LINEミニアプリとは — https://developers.line.biz/ja/docs/line-mini-app/discover/introduction/
- 審査を依頼する(ミニアプリ) — https://developers.line.biz/ja/docs/line-mini-app/submit/submission-guide/
- アプリ内課金の概要 — https://developers.line.biz/ja/docs/line-mini-app/in-app-purchase/overview/
LINEヤフー公式 — 識別・オーディエンス・運用
- ユーザーIDを取得する — https://developers.line.biz/ja/docs/messaging-api/getting-user-ids/
- LINEログインを組み込む — https://developers.line.biz/ja/docs/line-login/integrate-line-login/
- オーディエンスを使う — https://developers.line.biz/ja/docs/messaging-api/using-audience/
- ステップ配信 マニュアル — https://www.lycbiz.com/jp/manual/OfficialAccountManager/step-message/
- 応答設定 マニュアル — https://www.lycbiz.com/jp/manual/OfficialAccountManager/account-settings_response/
- あいさつメッセージを設定する マニュアル — https://www.lycbiz.com/jp/manual/OfficialAccountManager/greeting-message/
- 友だち追加ガイド — https://www.lycbiz.com/jp/manual/OfficialAccountManager/gain-friends/
- 友だち追加広告・LINE広告(友だち追加) — https://www.lycbiz.com/jp/service/line-official-account/cpf/
- 「AIチャットボット(β)」を有料オプションに追加(2025/11/13) — https://www.lycbiz.com/jp/news/line-official-account/20251113/
LINEヤフー公式 — 規約・事例
- LINE公式アカウントガイドライン — https://terms2.line.me/official_account_guideline_jp
- LINE公式アカウント 利用規約 — https://terms2.line.me/official_account_terms_jp?lang=ja
- LINE User Data Policy — https://terms2.line.me/LINE_Developers_user_data_policy?lang=ja
- 配信コンテンツに関する禁止事項 — https://www.lycbiz.com/jp/column/line-official-account/guideline/20240829/
- 【事例】東急ストア — https://www.lycbiz.com/jp/case-study/line-official-account/tokyu/
- 【事例】第一生命 — https://www.lycbiz.com/jp/case-study/line-official-account/daiichiseimei/
- メッセージ配信機能のメリット・効果(開封タイミング) — https://www.lycbiz.com/jp/column/line-official-account/technique/20180426-02/
日本の法令・官公庁
- 個人情報保護委員会|令和8年 改正個人情報保護法について — https://www.ppc.go.jp/personalinfo/legal/r8kaiseihogohou/
- 個人情報保護委員会|改正法の公布について(令和8年7月17日) — https://www.ppc.go.jp/news/press/2026/260717/
- 個人情報保護委員会|Cookie等の端末識別子は個人関連情報に該当しますか — https://www.ppc.go.jp/all_faq_index/faq1-q8-1/
- 個人情報保護委員会|「容易に照合することができ」に該当する事例 — https://www.ppc.go.jp/all_faq_index/faq1-q1-19/
- 総務省|外部送信規律 法令・ガイドライン — https://www.soumu.go.jp/main_sosiki/joho_tsusin/d_syohi/gaibusoushin_kiritsu_00001.html
- 総務省|外部送信規律FAQ — https://www.soumu.go.jp/main_sosiki/joho_tsusin/d_syohi/gaibusoushin_kiritsu_00002.html
- 消費者庁|特定電子メール法 — https://www.caa.go.jp/policies/policy/consumer_transaction/specifed_email
- 消費者庁|通信販売(特定商取引法ガイド) — https://www.no-trouble.caa.go.jp/what/mailorder/
- 消費者庁|ステルスマーケティングは景品表示法違反となります — https://www.caa.go.jp/policies/policy/representation/fair_labeling/stealth_marketing/
ベンダー・調査(公式一次情報ではない)
- 株式会社ソーシャルPLUS|LINE公式アカウントのブロック率調査 — https://blog.socialplus.jp/knowledge/line-block-rate/
- Ligla|LINE配信頻度の目安 — https://ligla.jp/blog/delivery/frequency/
- L Message|LINE友だち追加広告(CPF) — https://lme.jp/media/line/friend-ads/
- SFA JOURNAL|LINE公式アカウントでBtoB集客を成功させる方法 — https://next-sfa.jp/journal/line-marketing/customer-acquisition/
数値の取り扱いについて
- 料金・API仕様・上限値は LINEヤフー公式 に基づく(2026年8月19日時点)
- ブロック率・配信頻度・CPF相場は ベンダー調査 であり、母数・調査手法が開示されていないものを含む。本書では傾向の把握にのみ用い、目標値の設定には当社の実測値を優先する
- BtoB専用の公開ベンチマーク(開封率・CPF・ブロック率)は存在しない。本書に記載した数値はすべてBtoC由来であり、当社の実績で置き換えていく前提とする
改訂履歴
| 版 | 日付 | 内容 |
|---|---|---|
| v1.0 | 2026年8月19日 | 初版作成。F-25〜F-35、S-28〜S-38、G-16〜G-27 を定義 |