コラム / 活用ガイド
全体最適を AI エージェントで回す
チャネルをまたいで判断するとき、最初に問題になるのは数字の意味です。広告の「リード」、LINE の「友だち」、営業の「有効リード」は同じ人なのか。そこを決めないまま足せば、ROAS も CPA も「その管理画面の中でだけ正しい数字」になります。全体最適の土台は 3 つです。言葉と正本(SSOT)を 1 つに決める。チャネルの数字は合計せずに並べる。失敗した理由をメモリ・パーミッション・オントロジーに書き戻す。
- 扱うもの
- 営業リスト・CRM
- 広告アカウント
- Web サイト
- SNS・LINE・メール
ステップ 1オントロジー:出てくるモノと関係
業務に出てくるモノ(エンティティ)と関係を 1 枚にして、AI エージェントに渡します。
この図で答えたい問い
- 先月、広告から来たリードのうち、商談になったのは何件か
- この契約は、どの成果物から生まれたリードが元になっているか
- この案件で、いま実際に数字を読み取れるアカウントはどれか
- 既存の顧客への提案は、新規の提案と同じ方法で成約率を出せるか
- 表示回数を、案件の合計として出してよいか
- LINE の友だちと CRM の担当者は同じ人か(候補 / 確定 / 別人)

図の元になった mermaid を見る(AI エージェントにそのまま渡せます)
flowchart TB
COMPANY["企業<br/>key: 自社の ID + 法人名・ドメイン"] -->|"担当者を抱える"| CONTACT["担当者<br/>key: 自社の ID + メールアドレス"]
SUB["登録者<br/>別名: 友だち(LINE)/ 購読者(メール)<br/>有効 / ブロック・配信停止"] -.->|"同一人物か<br/>候補 / 確定 / 別人"| CONTACT
ASSET["成果物 = 発生経路<br/>広告 / 投稿 / 記事・LP<br/>key: 媒体が発行した ID"] -->|"発生させる"| EVENT["計測イベント<br/>媒体側の名前 / 成果として数えるか"]
EVENT -->|"登録者を起こす"| SUB
EVENT -->|"リードを起こす"| LEAD["リード<br/>新規 / 有効 / 商談化 / 対象外"]
SUB -->|"リードを起こす"| LEAD
CONTACT -->|"リードを起こす"| LEAD
LEAD -->|"商談を起こす"| DEAL["商談<br/>提案中 / 合意 / 失注"]
DEAL -->|"契約を結ぶ"| CONTRACT["契約<br/>開始前 / 稼働中 / 停止 / 終了"]
CONTRACT -->|"請求を起こす"| INVOICE["請求<br/>未請求 / 未入金 / 入金済"]
CONTRACT -->|"案件を持つ"| PJ["運用案件<br/>稼働中 / 停止 / 終了"]
PJ -->|"アカウントを持つ"| ACCOUNT["媒体アカウント・サイト<br/>接続中 / 失効 / 未連携"]
ACCOUNT -->|"成果物を持つ"| ASSET
ACCOUNT -->|"数値を生む"| METRIC
ASSET -->|"数値を生む"| METRIC["数値<br/>単位 / 期間の基準 / 取得経路<br/>取得済 / 暫定 / 未取得"]
METRIC -->|"定例の材料になる"| REPORT["レポート"]
REPORT -->|"次の商談を起こす"| DEALエンティティの一意キーと、数値の状態を表で見る
エンティティと一意キー
| エンティティ | 一意キー(同じ 1 件の見分け方) | 説明 |
|---|---|---|
| 企業 | 自社で採番した ID + 名寄せキー(法人名 + ドメイン) | 自社のコントロール外なので、変えない ID と名寄せに使うキーの 2 つを持つ |
| 担当者 | 自社で採番した ID + 名寄せキー(メールアドレス) | 企業が抱える人。キーは企業と同じく 2 つ |
| 登録者 | 媒体側の ID | LINE の友だち・メールの購読者の正式名。媒体の中で識別でき、配信を届けられる人 |
| 成果物 | 媒体(またはサイト)が発行した ID | 広告・投稿・記事・LP を 1 つにまとめる。作った広告と成果を出した広告を分けない |
| 計測イベント | 媒体側の ID | 媒体側の名前と、成果として数えるかを属性に持つ |
| リード・商談 | 自社で採番した ID | 解約・停止・失注は出来事なので、エンティティにせず状態にする |
| 契約と運用案件 | 自社で採番した ID | 1 つの契約に複数の案件があるので分ける。目標・担当者・定例の単位は案件ごと |
| 媒体アカウント・サイト | 媒体側の ID | 1 つの案件が同じ媒体のアカウントを複数持つことがあるので、案件と分ける |
| 数値 | 対象 × 期間 × 指標 | 単位・期間の基準・取得経路を属性に持つ。売上・LTV・継続率は請求と契約から計算し、エンティティにしない |
数値の状態
| 状態 | 意味 | この状態に入る条件 |
|---|---|---|
| 取得済 | 実際に取得でき、単位と期間の基準が確定している | 媒体やツールから取得し、取得経路を記録したとき |
| 暫定 | 後から計上されて増えることがある | 直近数日の CV のように、まだ値が動く期間を含むとき。注記して載せる |
| 未取得 | 取れなかった。0 ではない | 認証エラー・連携切れなどで取得できなかったとき。0 で埋めず、つなぎ直す方法を添える |
AI にさせてよい操作
- AI が行う実績を取得する(読み取りだけ)
- AI が行う分析・集計・レポート・下書きを作る
- AI が行う名寄せの候補を出す
- AI が行う失敗の原因を特定し、メモリ・オントロジー・Skill の直し案を作る
- 承認してから投稿を予約する、メール・メッセージを送る
- 承認してから広告の配信を開始する(作成の承認とは別に)
- 承認してから広告の予算を増やす
- 人が行う名寄せを確定する(統合した後は戻せない)
- 人が行う媒体ごとの予算の配分を決める
- 人が行うパーミッション(許可の範囲)を変える
ステップ 2業務フローの棚卸し

図の元になった mermaid を見る(AI エージェントにそのまま渡せます)
flowchart TB
subgraph R1[" "]
direction LR
J1["1. 答えるべき問いを決める<br/>初回・業務を足したとき"] --> A1["業務の名詞を書き出し、問いの案を 5〜10 個並べる"]
A1 --> H1["いま自動化したい判断をどれにするか"]:::human
H1 --> S1["—"]:::out
end
subgraph R2[" "]
direction LR
J2["2. オントロジーを描く<br/>初回・問いを足したとき"] --> A2["エンティティ・一意キー・関係・状態と操作の案を作り、問いで検査する"]
A2 --> H2["正式名と別名、操作の一覧"]:::human
H2 --> S2["オントロジーを管理する"]:::out
end
subgraph R3[" "]
direction LR
J3["3. 正本(SSOT)を決める<br/>初回・ツールを足したとき"] --> A3["同じ情報の置き場を洗い出し、写しと同期の向きを一覧にする"]
A3 --> H3["どこを正本にするか"]:::human
H3 --> S3["—"]:::out
end
subgraph R4[" "]
direction LR
J4["4. 名寄せ(顧客 ID をそろえる)<br/>登録者・担当者が増えたとき"] --> A4["法人名 + ドメイン、メールアドレスで同一人物の候補を出す"]
A4 --> H4["同じ人かを確定する"]:::human
H4 --> S4["—"]:::out
end
subgraph R5[" "]
direction LR
J5["5. 連携とパーミッションの設定<br/>初回・ツールを足したとき"] --> A5["ツールを読み取りと書き込みに分けた一覧を作る"]
A5 --> H5["外部に反映する操作を確認の対象にする"]:::human
H5 --> S5["—"]:::out
end
subgraph R6[" "]
direction LR
J6["6. チャネルごとの実績の取得<br/>毎週・毎月"] --> A6["同じ期間で取得し、取れなければ「未取得」と書く"]
A6 --> H6["—"]:::human
H6 --> S6["広告の週次レポート"]:::out
end
subgraph R7[" "]
direction LR
J7["7. 定例レポート<br/>毎月"] --> A7["チャネルごとに並べて判定する。合計の行は作らない"]
A7 --> H7["次にやることを選ぶ"]:::human
H7 --> S7["定例レポート"]:::out
end
subgraph R8[" "]
direction LR
J8["8. 打ち手の実験<br/>打ち手ごと"] --> A8["計画シートを書き、決めた件数に届いたら計算で判定する"]
A8 --> H8["判定の基準を始める前に決める"]:::human
H8 --> S8["実験で打ち手を確かめる"]:::out
end
subgraph R9[" "]
direction LR
J9["9. 媒体の選定と予算の配分<br/>予算を決めるとき"] --> A9["候補を絞り、自社の売上の台帳で媒体の効果を推定する"]
A9 --> H9["配分を決め、予算を変える"]:::human
H9 --> S9["媒体を選ぶ/媒体をまたいで効果を測る(MMM)"]:::out
end
subgraph R10[" "]
direction LR
J10["10. ハーネスの点検<br/>実行のたび・定期"] --> A10["記録から失敗の原因を特定し、直し案を作って検証する"]
A10 --> H10["許可の範囲を変えるか"]:::human
H10 --> S10["ハーネスを整備する"]:::out
end
R1 --> R2 --> R3 --> R4 --> R5 --> R6 --> R7 --> R8 --> R9 --> R10ステップ 3AI エージェントで回す PDCA

図の元になった mermaid を見る(AI エージェントにそのまま渡せます)
flowchart TB
Q["答えるべき問いを決める"] --> ONT["オントロジーと正本を更新する<br/>単位・期間の基準・取得経路"]
ONT --> H1["【人】伸ばす数字と予算の配分を決める"]:::human
H1 --> MAKE["AI が素材・下書き・設定案を作る"]
MAKE --> G1("承認<br/>投稿・送信・配信開始・予算の増額"):::gate
G1 --> LOG["実行と承認の記録を残す"]
LOG --> GET["チャネルごとに同じ期間で実績を取る<br/>取れなければ未取得"]
GET --> REP["チャネルごとの判定を並べる<br/>合計の行は作らない"]
GET --> EXP["実験を計算で判定する<br/>勝ち / 負け / まだ分からない"]
GET --> MMM["媒体をまたいだ効果を推定する<br/>自社の売上・予約の台帳"]
REP --> H2["【人】次の仮説と配分を選ぶ"]:::human
EXP --> H2
MMM --> H2
H2 --> FIX["失敗の理由を書き戻す<br/>メモリ・オントロジー・Skill"]
FIX --> H3["【人】許可の範囲を変えるか決める"]:::human
H3 -->|"次の回"| Q段ごとの分担を表で見る
| 段 | AI がやること | 人が決めること | Skill |
|---|---|---|---|
| Plan(計画) | 問いの案、オントロジーと正本の更新案、媒体の候補と比べる計画、配分を考える材料を出す | 伸ばす数字、どの仮説を選ぶか、予算の配分 | オントロジーを管理する/媒体を選ぶ/媒体をまたいで効果を測る(MMM) |
| Do(実行) | 素材・下書き・設定案を作る。外部に反映する操作は確認画面で止め、実行と承認を記録する | 確認画面で許可するか断る | 各チャネルの Skill |
| Check(確認) | チャネルごとに同じ期間で取得して判定する。取れない数字は「未取得」、実験は計算で判定する | — | 定例レポート/実験で打ち手を確かめる/広告の週次レポート |
| Act(改善) | 失敗の原因を特定し、メモリ・オントロジー・Skill を直して検証する | 次の仮説と配分、許可の範囲を変えるか | ハーネスを整備する |
ステップ 4Skill の構成

図の元になった mermaid を見る(AI エージェントにそのまま渡せます)
flowchart TB
R1(["今月の数字をまとめて<br/>全体の調子どう?"]) --> REV["定例レポート<br/>入口"]
R2(["予算をどう割るか"]) --> SEL["媒体を選ぶ<br/>入口"]
REV -->|"△ / ✕ のチャネルだけ"| CH["各チャネルの分析の Skill<br/>広告の週次レポートなど"]:::out
REV -->|"勝ち負けは結果を引用"| EXP["実験で打ち手を確かめる"]
SEL -->|"媒体が 2 つ以上になったら"| MMM["媒体をまたいで効果を測る(MMM)"]
MMM --> HB["【人】配分を決め、予算を変える"]:::human
SEL -.->|"図の言葉で答える"| ONT["オントロジーを管理する<br/>問い・操作の一覧"]
LOGS["実行の記録<br/>ログ・成果物"] --> HAR["ハーネスを整備する<br/>定期実行"]
HAR -->|"書き戻す"| ONT
HAR --> HP["【人】許可の範囲を変える"]:::human入口定例レポート
同じ期間の数字をチャネルごとに並べ、目標比・前回比・判定・次の一手までを 1 本にまとめる
中身を見る
入力
- つながっているチャネル
- 案件の目標
- 前回のレポート
手順
- つながっているチャネルを確かめ、実際に数字が取れたものだけを載せる
- 目標と前回の数字を集める(前回が見つからなければ「今回が基準」と書く)
- チャネルごとに同じ期間の数字を並べ、◎○△✕ の 4 段階と理由 1 行で判定する
- 気になることを「期間 + 実際の数字 + 変化量」で先頭に書く
- 次にやることを 3 つまで書き、△ か ✕ のチャネルだけを各チャネルの分析へ回す
- 末尾に次回のための数値表を残す
返すもの
- 一言でいうと・チャネル別の判定表・次にやること・次回のための数値表
守ること
- チャネルの数字を合計しない。広告費だけは合計してよいが、合計から 1 件あたりの費用は出さない
- 予約が 0 件のときの 1 件あたりの費用は「—」と書く
- 実験の勝ち負けは実験の Skill の結果をそのまま引用し、判定し直さない
入口媒体を選ぶ
候補の媒体を 2〜4 個に絞り、同じ素材・同じ金額・同じ期間で比べる計画まで作る
中身を見る
入力
- 商材
- CV ゴール
- 狙う関心度層
- 予算感・審査リスク
手順
- 前提を整理し、今回狙う関心度層を 1 つに決める
- 誰に・なぜ今まで来なかったか・何を・どう伝えるかを整理する
- 候補を 2〜4 個に絞り、選んだ理由を 1〜2 文で書く
- 比べる計画と撤退ライン(目標の 1 件あたりの費用の倍数)を書く
返すもの
- 候補の媒体と理由
- 比較検証の計画
守ること
- 年齢と性別だけで決めない
- 媒体ごとの管理画面の予約件数を足し合わせた計画にしない
- 利用者数には出典と時点を添える
- 広告の作成や配信はしない
媒体をまたいで効果を測る(MMM)
自社の売上・予約の台帳から、「その媒体が無かったら減っていた売上」を推定する
中身を見る
入力
- 売上・予約の台帳(週ごと)
- 媒体別の出稿費
- 季節性・価格・販促
手順
- 毎回同じ結果が出るスクリプトを「検査 → 推定 → 診断 → 報告」の順に動かす
- 途中の 4 箇所で一度止まる
- 応答曲線を推定し、配分を考える材料にする
返すもの
- 応答曲線と配分の案
守ること
- 管理画面の CV ではなく、自社の売上を目的変数にする
- 診断に落ちた配分は出さない
- 媒体の予算は AI に変更させない
実験で打ち手を確かめる
伸ばす数字を 1 つ決め、始める前に書いた基準で「勝ち / 負け / まだ分からない」を判定する
中身を見る
入力
- 伸ばす数字
- お客さんが離れている段階
- 過去に勝った案と負けた案
手順
- 伸ばす数字を 1 つ決め、お客さんが離れている段階を 1 つ選ぶ
- 案を出し、効果の大きさ・確かさ・やりやすさで順番を付ける
- 計画シートを書き、一度止まって人の確認を取る
- 公開後の実際の数字で、計算によって判定する
- 勝った案も負けた案も記録に残す
返すもの
- 計画シート
- 判定と記録
守ること
- 判定の基準は、始めたあとに変えない
- 1 パターンで変えるのは 1 か所だけ
- 測れていない数字は「未取得」と書き、0 で埋めない
広告の週次レポート
広告の先週の実績を媒体ごとに取得し、前週と比べる
中身を見る
入力
- 媒体ごとの実績
- 前週のレポート
手順
- 期間を月曜から日曜の 7 日間に固定し、期間と取得日時を書く
- 媒体の MCP ツールで取得し、認証エラーならその媒体を「未取得」にして先へ進む
- キャンペーンは名前ではなく ID で前週と突き合わせる
返すもの
- 媒体別の実績の表と、前週からの変化
守ること
- 媒体をまたいで合計しない
- CTR は媒体で単位が違う(パーセントと 0〜1 の比率)。金額は円に直してから表に入れる
- 直近数日の CV は「暫定」と注記する
オントロジーを管理する
複数の Skill が使う図を 1 箇所に置き、問いの一覧・操作の一覧と一緒に渡す
中身を見る
入力
- 答えるべき問い
- 業務に出てくる名詞
手順
- 答えるべき問いを 5〜10 個書く
- エンティティ → 一意キー → 関係 → 状態と操作の順に描く
- 最初の問いに、図の言葉だけで答えられるかを検査する
返すもの
- 図
- 答えるべき問いの一覧
- 操作の一覧
守ること
- 図に無いエンティティ・矢印・状態は作らない。無ければ「定義がありません」と答え、追加を提案する
- 同じ図を 2 つの Skill に貼らない(正本が 2 つになる)
- 書き込めるのは操作の一覧にあるものだけ
ハーネスを整備する
実行の記録から失敗の原因を特定し、メモリ・パーミッション・オントロジー・Skill のどれかを直す
中身を見る
入力
- 実行の記録(ログ・成果物)
手順
- 実行して記録を残す
- 失敗の原因を特定する
- メモリ・オントロジー・Skill のどれかを直す(パーミッションは直し案まで)
- 直した状態で検証してから次の実行に進む
返すもの
- 直し案と検証の結果
守ること
- モデルは変えない
- 評価と許可の範囲はループの外に置く
- 記録はエージェントが読む場所に残す。古くなった部品は外す
補足: チャネルをまたいで合計してよい数字
定例レポートでいちばん多い間違いは、全チャネルの数字を足してしまうことです。AI は頼まれなくても合計の行を作りがちです。どれなら合計してよいかを先に決め、Skill に書いておきます。
| 数字 | 合計してよいか | 理由 |
|---|---|---|
| 広告費(消化額) | 同じ通貨のときだけ合計してよい | 合計した広告費を合計した件数で割った「1 件あたりの費用」は誤った値になる |
| 成果の件数(予約・CV) | 合計しない | 媒体ごとに数え方が違う。広告を見て後日検索して買った人は、両方の媒体で 1 件ずつ数えられることがある |
| 再生数と表示回数 | 合計しない | TikTok の再生数と Instagram の表示回数は、数えているものが違う |
| 重複を除いた人数 | 合計しない | 見た人の人数のような数字は、足すと同じ人を二度数える |
| 表示回数・クリック | 単位と期間の基準がそろっているときだけ | 数値の属性(単位・期間の基準)を見てから判断する |
| CTR などの率 | 率どうしを並べず、分子と分母から出し直す | 0〜1 の比率で返る媒体と、0〜100 のパーセントで返る媒体がある |
このページは、コラム『マーケティングエンジニアの教科書』の 第 2 章「AI Agent の使いこなし方」・第 1 章「マーケティングエンジニアとは」・第 3 章「戦略設計を自動化する」 をもとにまとめたものです。