出稿期間が翌月に終わる広告主ごとに、配信結果の要点と継続・見直しの提案メールを下書きして担当営業に渡す
出稿期間が翌月に終わる広告主を毎月拾い、配信結果の要点と、継続・見直しを提案するメールの下書きを広告主ごとに作ります。担当営業は下書きを直して送るだけになり、期間が切れる前に提案が届きます。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- 広告
- 対象部門
- マーケティング/営業
- 対象業務
- 書類作成/集計・分析
- 主な課題
- 営業フォローが追いつかない/書類作成に時間がかかる/期限・対応漏れが起きる
- AIで行う処理
- 生成
- 主な効果
- 品質標準化/工数削減/機会損失防止
- 導入難易度
- ★☆☆☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 担当営業が、案件台帳を出稿終了日で並べ替え、翌月に期間が終わる広告主を探す
- 広告主ごとに実績の表を開き、出稿期間の月の行を絞り込む
- 媒体ごとの数字を見比べ、目標に届いた媒体と届かなかった媒体を拾い出す
- 運用担当に、期間中に何を変えたか、次に何を試したいかをチャットで聞く
- 次の期間の方向(継続・増額・見直し・停止の検討)を考える
- 結果の要点と提案をメールに書き、数字を表から写す
- 上長に見せてから広告主へ送る
- 人運用担当が、毎月の実績の表の更新に合わせて、案件台帳の「次の期間の方向」と「運用メモ」の列を埋める
- 自動毎月5日の朝にワークフローが動き、案件台帳から翌月に出稿期間が終わる広告主を拾う
- 自動広告主ごとに、出稿期間の月の実績の行を実績の表から取り出す
- 自動取り出した行を1つにまとめ、案件の情報と運用メモをあわせてAIに渡す
- 自動AIが結果の要点と提案メールの下書きを、決まった形のJSONで返す
- 自動下書きに使われた数字が、渡した表の値と一致しているかを照らす
- 自動下書きを担当営業へ社内のメールで送り、提案の管理表に行を足す
- 人担当営業が下書きを読み、数字と提案の方向を確かめて直す
- 人担当営業が自分のメールから広告主へ送り、管理表に送った日を入れる
各工程の詳しい説明を読む
- 担当営業が、案件台帳を出稿終了日で並べ替え、翌月に期間が終わる広告主を探す
- 広告主ごとに実績の表を開き、出稿期間の月の行を絞り込む
- 媒体ごとの数字を見比べ、目標に届いた媒体と届かなかった媒体を拾い出す
- 運用担当に、期間中に何を変えたか、次に何を試したいかをチャットで聞く
- 次の期間の方向(継続・増額・見直し・停止の検討)を考える
- 結果の要点と提案をメールに書き、数字を表から写す
- 上長に見せてから広告主へ送る
(a)提案が期間の終わりに間に合わない。 1番目の洗い出しを月の初めに忘れると、気づいたときには期間の終わりまで1週間しか残っていません。広告主の社内で次の期間の予算を通す時間がなく、「いったん止めて、また相談します」となって、出稿が途切れます。 再開までの空白の月は、そのまま売上の空白です。
(b)数字の写し間違いが起きる。 6番目で、表から獲得単価や件数を手で写します。媒体が4つ、月が3つあると、12行の中から写すことになり、前月の数字や別の媒体の数字を書いてしまうことがあります。 広告主の担当者は自社でも数字を見ているので、誤りはすぐに見つかります。
(c)提案の質が担当営業ごとに違う。 数字の読み方に慣れた担当営業は「どの媒体が効いて、次に何を試すか」まで書きますが、慣れていない担当営業は「今期もありがとうございました。引き続きよろしくお願いします」で終わります。 広告主から見ると、同じ会社なのに担当によって提案の中身がまったく違います。
(d)運用担当とのやり取りが毎回発生する。 4番目のチャットは1社ごとに必要で、運用担当の返事を待つあいだ提案が止まります。運用担当が実績の表に一言メモを残す決まりがあれば、聞かずに済む内容がほとんどです。
- 【人】 運用担当が、毎月の実績の表の更新に合わせて、案件台帳の「次の期間の方向」と「運用メモ」の列を埋める
- 【自動】 毎月5日の朝にワークフローが動き、案件台帳から翌月に出稿期間が終わる広告主を拾う
- 【自動】 広告主ごとに、出稿期間の月の実績の行を実績の表から取り出す
- 【自動】 取り出した行を1つにまとめ、案件の情報と運用メモをあわせてAIに渡す
- 【自動】 AIが結果の要点と提案メールの下書きを、決まった形のJSONで返す
- 【自動】 下書きに使われた数字が、渡した表の値と一致しているかを照らす
- 【自動】 下書きを担当営業へ社内のメールで送り、提案の管理表に行を足す
- 【人】 担当営業が下書きを読み、数字と提案の方向を確かめて直す
- 【人】 担当営業が自分のメールから広告主へ送り、管理表に送った日を入れる
8番目が、この設計の分かれ目です。 AIの下書きは、そのまま広告主に届くことはありません。担当営業が読み、直し、自分の名前で送ります。 下書きは担当営業の受信箱に届くだけで、広告主へのメールの宛先には一度も入りません。
1番目を人の仕事として残しているのも、意図してのことです。 方向の列が空のまま下書きを作ると、AIは数字だけを見て方向を決めようとします。運用担当が1語選ぶだけで、下書きの中身はずっと具体的になります。
02今回想定するシステム構成
運用担当が実績の表と案件台帳(方向・運用メモ)を更新 ▼【トリガー】毎月5日 9時(Make の Monthly の予定) Make ├──▶ Google Sheets:案件台帳を Search Rows(翌月に出稿終了日がある広告主) │ 広告主ごとに1つのまとまりとして流れる ├──▶ Google Sheets:実績の表を Search Rows(その広告主の出稿期間の月) ├──▶ JSON:Aggregate to JSON(実績の行を1つにまとめる) ├──▶ Anthropic Claude:Make an API Call(Messages API、構造化出力) │ ① 結果の要点3つ ② 次の期間の提案 ③ 申込の締切の案内 ├──▶ JSON:Parse JSON ├──▶ 数字の照合(下書きの数字と渡した表の値) ▼ Gmail:担当営業へ下書きを社内のメールで送る Google Sheets:提案の管理表に Add a Row ▼ 【人】担当営業が直して広告主へ送る
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| ワークフロー | Make | Zapier、n8n、Power Automate |
| 生成AI | Claude API(結果の要点と提案メールの下書き) | OpenAI API、Gemini API |
| 台帳 | Google スプレッドシート(案件台帳・実績の表・提案の管理表) | Airtable |
| メール | Gmail(担当営業への社内のメール) | Outlook |
案件台帳と実績の表は、いま使っているものに列を2つ足すだけです。 足すのは「次の期間の方向」と「運用メモ」で、どちらも運用担当が埋めます。新しく作るのは、提案の管理表の1枚だけです。
Make の Google Sheets には、条件に合う行を返す Search Rows があります。 返す件数の上限を Limit で決められ、1回の実行で扱う件数を絞れます。案件台帳の検索は Limit を広告主の数より大きくしておきます。 小さいままだと、その月の広告主の一部だけが拾われ、残りは提案が作られないまま月が進みます。
AIの呼び出しは、Make の Anthropic Claude のアプリの Make an API Call で Messages API を呼びます。 このアプリには Create a Prompt もありますが、アプリの説明には構造化出力の設定が書かれていません。Claude API の構造化出力は、output_config.format に type: "json_schema" を渡す形で一般提供されています。 決まった形のJSONで受け取りたいので、APIを直接呼ぶ形にします。接続にはAnthropic の Console で作った API キーを使います。
03どうやって実装するのか
処理の起点を決める
毎月5日の朝9時に、Make のシナリオを予定で動かします。 Make の予定には At regular intervals、Daily、Weekly、Monthly、Specified dates などがあり、Monthly で日付と時刻を決めます。 5日にしているのは、前月分の実績が実績の表に入りそろうのを待つためです。1日に動かすと、前月の最後の数日分が入っていない数字で提案を書くことになります。
対象にするのは「出稿終了日が翌月の1日から末日まで」の広告主です。 当月に終わる広告主は、すでに間に合いません。翌月に終わる広告主に、終わる日の3〜8週間前に提案が届くように、この幅にしています。広告主の社内で次の期間の予算を通すのに、それくらいの時間がかかるからです。
月の途中で契約が決まり、すぐに期間が終わる広告主もいます。 予定の実行のほかに、On demand の実行(Run once)で、担当営業が案件台帳の行を指定して1社だけ動かせるようにしておきます。例外を予定の実行に混ぜないで、別の動かし方で拾います。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 案件の情報 | 広告主名、担当営業、出稿開始日・終了日、媒体、月額の予算、目標(獲得単価・件数) | 案件台帳 |
| 次の期間の方向 | 継続/増額して継続/見直して継続/停止を含めて検討 のどれか | 案件台帳(運用担当が選ぶ) |
| 運用メモ | 期間中に変えたこと、効いたこと、次に試したいこと(200字程度) | 案件台帳(運用担当が書く) |
| 配信結果 | 媒体・月ごとの表示回数、クリック、コンバージョン、費用、クリック率、獲得単価、目標に対する達成率 | 実績の表 |
| 申込の決まり | 次の期間の申込の締切(出稿終了日の何営業日前か)、申込の方法 | 営業部で用意する一覧 |
質を決めるのは、方向と運用メモの2つです。 数字だけを渡すと、AIは「クリック率が上がりました」のような、表を読めば分かることしか書けません。運用メモに「4月から検索広告の除外キーワードを見直した」と一言あれば、「見直しの結果、獲得単価が下がった」という提案の芯が書けます。
実績の表の率は、表の式で計算したものを渡します。 クリック率・獲得単価・達成率を、AIに件数と費用から計算させることはしません。AIの仕事は、計算された値を写して文章にすることです。
データの取得方法を決める
| 取るもの | どこから | どのモジュールで |
|---|---|---|
| 対象の広告主 | 案件台帳 | Google Sheets の Search Rows(出稿終了日が翌月、状態が「出稿中」) |
| 出稿期間の実績 | 実績の表 | Google Sheets の Search Rows(広告主コードと月で絞る) |
| 実績の行のまとめ | 前のモジュールの出力 | JSON の Aggregate to JSON |
| 申込の決まり | 別のシート | Google Sheets の Search Rows |
| 下書き | Messages API | Anthropic Claude の Make an API Call |
案件台帳の Search Rows は、条件に合う行を1行ずつ別のまとまりとして返します。 後ろのモジュールは広告主1社ずつ動くので、広告主ごとに実績の検索とAIの呼び出しが1回ずつ行われます。 1社の中で複数の媒体・月の行がある実績は、Aggregate to JSON で1つにまとめてからAIに渡します。JSON の Aggregate to JSON は、複数のまとまりを1つにまとめるモジュールです。
配列を1件ずつに分けたいときは、Make の Iterator を使います。 Iterator は配列を一連のまとまりに変える特別なモジュールで、AIが返した「数字の一覧」を1つずつ照合するときに使います(後述)。
実績の表は、広告主コードで引きます。 広告主名で引くと、「株式会社」の有無や略称の違いで行が拾えません。案件台帳と実績の表の両方に、同じ広告主コードの列を持たせておきます。
AIへ渡す前に整形する
- 出稿期間の月だけに絞る … 実績の表には過去の期間の行も残っています。出稿開始日の月から前月までの行だけを渡します
- 当月の行を落とす … 当月は途中の数字なので、渡すと月の途中の数字で比べることになります
- 数字の形をそろえる … 費用は円の整数、率は小数1桁の文字列にして渡します。AIが桁を読み違える余地を減らします
- 方向の列を確かめる … 空なら、下書きを作らずに「方向が未入力」として担当営業と運用担当に知らせます
- 運用メモの長さを確かめる … 1,000字を超えるものは、運用担当に短くしてもらいます。長いメモは要点がずれる原因になります
- 停止の連絡が来ていないか確かめる … 案件台帳の状態が「停止連絡あり」なら、提案は作りません
4番目を省かないでください。 方向が空のまま渡すと、AIは数字だけを見て方向を選び、目標に届かなかった広告主に「増額して継続」と書くことがあります。 下書きが担当営業の受信箱に入るとはいえ、方向の誤った下書きは直すより書き直すほうが早く、作った意味がなくなります。
6番目は、運用担当が広告主から直接連絡を受けることがあるためです。 停止が決まっている広告主に継続の提案を送ると、広告主の話を聞いていない会社に見えます。
AIに処理させる
させるのは、渡した数字と運用メモから、結果の要点を3つと、決められた方向の提案を書くことだけです。
| 書くもの | 中身 | 書けないときの扱い |
|---|---|---|
| 件名 | 広告主名と出稿期間、「次の期間のご提案」 | - |
| 期間のふり返り | 出稿期間と媒体、全体の費用と成果を1〜2文 | 実績の行が無い月があれば data_gaps に書く |
| 結果の要点3つ | 目標に届いた媒体、届かなかった媒体、運用メモの施策とその後の数字 | 運用メモが無ければ施策の要点は書かず questions に回す |
| 次の期間の提案 | 方向の列どおりの提案と、その理由を数字で1つ | 方向の列と数字が食い違うときは questions に書く |
| 申込の案内 | 締切の日付と申込の方法 | 締切が計算されていなければ空欄 |
| 使った数字の一覧 | 本文に書いたすべての数字と、渡した表のどの値か | - |
いちばん下の行が、この構成の安全装置です。 本文に書いた数字を、どの媒体・月・項目の値かとあわせて一覧で返させます。ワークフローの側で、その一覧の数字が渡した表の値と同じかを照らします。AIの文章を人が読む前に、数字の写し間違いを機械で拾います。
| させないこと | 理由 |
|---|---|
| 提案の方向を決めること | 広告主との関係と自社の売上の判断。運用担当と担当営業が決める |
| 率や合計の計算 | 表の式で計算した値だけを使う。計算させると桁や分母を誤る |
| 成果を約束する表現 | 「必ず」「確実に」「〇件増えます」は書かせない |
| 媒体の仕様や新機能の紹介 | 渡していない情報。古い知識で書くと誤りになる |
| ほかの広告主の事例 | 渡していない。書かせると、別の広告主の情報が混ざる |
| 値引きや条件の提示 | 価格は営業部の決まりと上長の判断 |
2行目と3行目が、いちばん起きやすい失敗です。 「3か月合計でコンバージョンは何件」と書かせると、AIは月ごとの値を足して書きます。足し算が合っていても、表の合計の行と違う値になることがあります(集計の対象期間や、媒体の計測の遅れの扱いが違うため)。合計が要るなら、表に合計の行を作って渡します。
指示内容を固定する
あなたは広告会社の営業部で、担当営業が広告主に送る提案メールの下書きを書く立場です。
渡した案件の情報・配信結果・運用メモだけを使って書いてください。
【書くもの】
1. 件名(広告主名、出稿期間、「次の期間のご提案」を入れる)
2. 期間のふり返り(1〜2文)
3. 結果の要点を3つ(目標に届いた媒体、届かなかった媒体、運用メモの施策とその後の数字)
4. 次の期間の提案(方向は {direction} のとおりに書く。理由を数字で1つ添える)
5. 次の期間の申込の締切と方法の案内
【数字の扱い】
- 数字は、配信結果の表にある値をそのまま写してください。
- 足し算・割り算・比率の計算をしないでください。合計や率が表に無ければ、その数字は書かないでください。
- 本文に書いた数字は、すべて figures_used に、媒体・月・項目名とあわせて並べてください。
- 「約」「およそ」で数字を丸めないでください。
【厳守事項】
- 提案の方向は {direction} です。数字を見て別の方向が良いと思っても、方向は変えず、
その考えは questions に書いてください。
- direction が空のときは、提案の段落を書かず、questions に「方向が未入力」と書いてください。
- 「必ず」「確実に」「保証」など、成果を約束する表現を使わないでください。
- 媒体の仕様・新機能・ほかの広告主の事例は書かないでください。
- 値引き、料金、契約条件の変更を提案しないでください。
- 運用メモに書かれていない施策を、行ったこととして書かないでください。
- 実績の行が欠けている月があれば、その月を本文で触れず、data_gaps に書いてください。
- 文体は丁寧語。1段落は3文まで。本文は600字以内。
【案件の情報】{deal}
【配信結果】{results_json}
【運用メモ】{ops_memo}
【申込の決まり】{renewal_rule}
「方向は変えず、考えは questions に書く」を明記しないと、AIは数字に合わせて方向を書き換えます。 達成率が低い広告主に「継続」と指定すると、「見直しをおすすめします」と書いてくることがあります。AIの考えを捨てるのではなく、担当営業への確認事項に移します。 担当営業が読んで、運用担当の判断と食い違うと気づけば、それはそれで役に立ちます。
「運用メモに無い施策を書かない」も同じ理由で入れています。 数字が改善した月があると、AIは「入札の調整により」のような、もっともらしい理由を付け足します。行っていない施策を広告主に報告することになります。
出力形式を固定する
次の形のJSONで受け取ります。 構造化出力のスキーマとして渡し、この形以外では返らないようにします。
{
"advertiser_code": "",
"subject": "",
"body": "",
"direction_used": "continue | increase | revise | consider_stop | none",
"figures_used": [
{ "value": "", "media": "", "month": "", "metric": "" }
],
"data_gaps": [""],
"questions": [""]
}
1つ目の理由は、figures_used で数字を機械で照らせることです。 Make の Parse JSON で受け、Iterator で figures_used を1件ずつに分け、実績の表の該当の値と比べます。1つでも一致しなければ、下書きに「数字の確認が要る」の印を付けて担当営業に送ります。 Claude の構造化出力は数値の範囲や文字列の長さの制約に対応していないので、値は文字列で受け、照合はワークフロー側で行います。
2つ目は、direction_used で方向の取り違えを拾えることです。 案件台帳の方向の列と direction_used が違えば、AIが方向を書き換えたということです。その下書きは送らず、作り直しに回します。
3つ目は、questions を本文と分けておけることです。 担当営業へのメールの先頭に questions と data_gaps を置き、その下に下書きを置きます。確認事項が本文に混ざると、広告主へのメールに「方向が未入力」と書かれたまま送られることがあります。
担当営業へ届くメールは、次の並びです。
【確認してほしいこと】
・(questions の各行)
・(data_gaps の各行)
【数字の照合】一致 12件/不一致 0件
【下書き】
件名:(subject)
(body) システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 案件台帳 | Make の Google Sheets(Search Rows、Update a Row) | 対象を拾い、提案を作った印を付ける |
| 実績の表 | Make の Google Sheets(Search Rows) | 出稿期間の実績を取る(読むだけ) |
| Claude API | Make の Anthropic Claude(Make an API Call) | 下書きと使った数字の一覧を返す |
| Gmail | Make の Gmail(Send an email) | 担当営業へ社内のメールで下書きを送る |
| 提案の管理表 | Make の Google Sheets(Add a Row) | 広告主、作った日、照合の結果、送った日の列 |
広告主へのメールは、この構成からは送りません。 Gmail のモジュールには Send an email も Create a draft email もありますが、送り先は社内の担当営業だけにします。 Create a draft email で下書きを作る形も考えられますが、下書きができるのはつないだアカウントの下書きフォルダです。担当営業8名それぞれの受信箱に下書きを置くには、8つの接続が要ります。社内のメールで送り、担当営業が自分のメールに貼るほうが、つなぐものが少なく済みます。
案件台帳への書き込みは、「提案を作った日」の列だけです。 同じ月に2回動いても、この列に日付が入っている広告主は対象から外します。同じ広告主に下書きが2通届くことを防ぎます。
人が確認する
担当営業は、届いた下書きを全件読みます。 ここは省けません。広告主に届くメールで、送り主は担当営業本人です。
- 確認事項を先に読む …
questionsとdata_gapsがあれば、運用担当に確かめてから下書きを直します - 数字の照合の結果を見る … 不一致があれば、その数字を実績の表で確かめて直します。一致していても、本文の数字が正しい媒体・月の値かを1つは見ます
- 提案の方向を確かめる … 広告主の最近の様子と合っているかを見ます。方向を変えるなら、運用担当と話してから案件台帳の列も直します
- 自分の言葉に直す … 挨拶や結びは、広告主との関係に合わせて書き換えます
- 送ったら管理表に日付を入れる … 送らないと決めたものは、理由を1語入れます
3番目で方向を変えたら、台帳の列も直します。 列を直さないと、翌月の照合と管理表で、方向が食い違ったまま残ります。
目標は、60件をならして1件12分です。 下書きを読んで直すのに数分、確認事項があるものは運用担当とのやり取りが加わります。確認事項が多い月は、運用メモの書き方を運用部と見直す材料にします。
例外に対処する
| 起きること | 対応 |
|---|---|
| 方向の列が空 | 下書きを作らず、担当営業と運用担当に「方向が未入力」と知らせる |
| 出稿期間の月の実績が欠けている | 欠けた月を data_gaps に入れ、下書きは作る。欠けた月の数字は書かない |
| 数字の照合で不一致 | 下書きに「数字の確認が要る」の印を付けて送る。照合の結果を管理表に残す |
direction_used が台帳と違う | 下書きを送らず、作り直しに回す。2回続けば人が書く |
| 担当営業が不在・異動 | 案件台帳の担当営業の列が空なら、営業部の共有アドレスに送る |
| 停止の連絡がすでにある | 状態が「停止連絡あり」の広告主は対象から外す |
| 期間の途中で媒体を止めた | 止めた月以降の行が無い媒体は、運用メモに理由を書いてもらう |
| AIの呼び出しが失敗する | 案件台帳の「提案を作った日」を入れず、次の On demand の実行で拾い直す |
| 同じ月に2回動いた | 「提案を作った日」が入っている広告主は対象から外す |
上の2行が、例外の大半です。 どちらもAIの問題ではなく、運用担当が台帳と実績の表を月初めにそろえられているかの問題です。 毎月5日に動かす前に、運用部で「方向と運用メモの入力を4日までに終える」と決めておきます。
記録を残す
- 実行した日時と、対象になった広告主の一覧
- AIに渡した案件の情報、実績の行、運用メモ(そのときの値)
- AIが返したJSONの全文(
body、figures_used、questions) - 数字の照合の結果(一致・不一致の件数と、不一致の値)
- 担当営業が送った日と、送らなかった理由
- 広告主の返事(継続・見直し・停止)と、次の期間の申込の有無
2つ目で「そのときの値」を残すのは、実績の表が後から直されるためです。 媒体の計測の遅れで前月の数字が書き換わると、下書きの数字と表が合わなくなります。どちらが正しかったかを、そのときの値で確かめられるようにします。
最後の行は、方向の選び方を見直す材料になります。 「見直して継続」で書いた提案がどれだけ継続につながったかを数か月分並べると、運用担当が方向を選ぶときの手がかりになります。
04実装レベルの3段階
最小構成では、洗い出しの漏れが防げません。 1社ずつ貼る形なので、期間の終わりに気づかなかった広告主は、そもそも貼られません。 確かめるための段階です。 半自動化で、1件40分が12分程度になります。 洗い出しと実績の絞り込み、下書きの作成が自動になり、担当営業は読んで直すだけになります。この段階が本記事の想定です。 本格構成で増えるのは、提案を出したあとの追いかけで、1件あたりの時間はあまり変わりませんが、返事のない広告主を締切の前に拾えるようになります。 段階を飛ばさないでください。 半自動化を数か月回すと、方向の列が空になりやすい運用担当と、数字の照合で不一致が出やすい実績の表の列が分かります。そこを直してから本格構成に進むほうが、追いかけの通知が当てになります。
05工数削減シミュレーション
導入後 60件 × 12分 ÷ 60 = 12 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 運用型広告やSNS広告を中心に、期間を区切った出稿の契約を多くの広告主と結んでいる広告会社。媒体ごとの実績を毎月スプレッドシートにまとめる仕組みがすでにあり、案件台帳に出稿終了日と担当営業が入っている場合。期間の終わりが近づいても継続の提案が出ないまま終わる広告主がいる場合。
- 広告主が数社で、担当営業が毎週の定例で結果を直接話している場合。出稿が年間の一括契約だけで、期間の区切りが毎月発生しない場合。配信結果が媒体の管理画面にしか無く、スプレッドシートにまとめる仕組みが無い場合。なお、継続を勧めるか、予算や条件をどう変えるかの判断は、この構成では代替できません。
07最小構成で試す方法
- 先月と先々月に期間が終わった広告主から10社を選ぶ(うち数社は、提案が間に合わずに出稿が途切れた広告主を入れる)
- その10社について、担当営業が実際に送った提案メールを集める
- 実績の表の該当の行と運用メモを、手元の生成AIの画面に1社ずつ貼る
- 第7章の指示を少し短くして渡し、提案メールの下書きを書かせる
- 出てきた下書きを、実際に送ったメールと見比べる
10社は必ずやってください。 ワークフローを組む前に、「表の数字と一言のメモで、提案の芯が書けるか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 実際のメールと同じくらいの提案が書けた | ワークフローに進む |
| 数字を足したり率を計算したりした | 指示の書き方で直る。構成は有効 |
| 数字の羅列だけで、提案の理由が書けない | 運用メモの書き方が先。 AIの問題ではない |
3行目が出ることは珍しくありません。 運用メモに「特になし」や空欄が多いと、AIは数字を並べるしかありません。運用担当に、施策と結果を1行で書く形を決めてもらってから、同じ10社で試し直します。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 下書きの数字が表と合わない | 計算をさせず、表の値だけを写させる。 figures_used で照らす |
| AIが提案の方向を書き換える | 方向は台帳の列で渡し、direction_used と照らす |
| 方向の列が空のまま動く | 空なら下書きを作らない。運用部の入力の締切を決める |
| 行っていない施策が書かれる | 「運用メモに無い施策を書かない」を指示に入れる |
| 一部の広告主が拾われない | Search Rows の Limit を広告主の数より大きくする |
| 広告主名で実績が引けない | 広告主コードで引く |
| 当月の途中の数字が入る | 当月の行を落としてから渡す |
| 同じ広告主に下書きが2通届く | 「提案を作った日」の列で対象から外す |
| 停止が決まった広告主に提案が届く | 状態の列を見て対象から外す |
| 構造化出力でエラーになる | 数値の範囲や文字列の長さの制約をスキーマに書かない |
| 成果を約束する表現が混ざる | 禁止する語を指示に並べ、担当営業の確認で消す |
| 下書きがそのまま送られる | 担当営業が自分の言葉に直してから送る決まりにする |
上の2行が、この構成の失敗のほとんどです。 どちらも、AIに「数字から考えて書いて」と任せたときに起きます。数字を計算する役も、方向を決める役も、AIの外に置くことで防ぎます。
下の行も早く効いてきます。 下書きが良くできているほど、担当営業はそのまま送るようになります。同じ言い回しの提案が複数の広告主に届くと、広告主の側で「型の文章だ」と分かります。 挨拶と結びは毎回書き換える決まりにしておきます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 広告主の名前、出稿の予算と費用、目標と達成の状況、運用の施策のメモです。広告主にとっては、競合に知られたくない情報です。
- 外部へ渡す範囲を、1社分の実績と運用メモに限る … AIの呼び出しは広告主1社ずつで、ほかの広告主の実績を同じ呼び出しに入れません。 1回の呼び出しに複数社を入れると、下書きに別の広告主の数字が混ざるおそれがあります
- 広告主へのメールを自動で送らない … 出すのは担当営業への社内のメールまでです。送り主は担当営業で、送る判断も担当営業がします
- この構成は営業の判断を代替しません … 継続を勧めるか、予算や条件をどう変えるかは、運用担当と担当営業、必要なら上長が決めることです。 この構成が出すのは、決まった方向を文章にした下書きだけです
- 広告主との契約で、データの扱いを確かめる … 広告主から預かった実績を外部のサービスに渡してよいかは、契約の秘密保持の条項で確かめます。 API の利用条件で入力が学習に使われるかどうかも、使う前に確かめます
- API キーを担当者個人のものにしない … Make の接続に使う API キーは、営業部の業務用として作ります。作ったときにしか値を見られないので、管理する人を決めておきます
- 担当営業へのメールの宛先を固定する … 宛先は案件台帳の担当営業の列から取り、社内のドメイン以外には送らないフィルタを置きます
誤りが起きた場合のリスクは、誤った数字で提案することと、誤った方向で提案することの2つです。 前者は figures_used の照合で、後者は direction_used の照合で拾います。どちらも、担当営業が読む前に機械で止められる形にしておきます。
10まず何から始めるか
1週目:案件台帳に2つの列を足す
案件台帳に、「次の期間の方向」と「運用メモ」の列を足し、広告主コードの列が実績の表と同じ値かを確かめます。運用部と、方向の4つの選び方と、運用メモを1行で書く形を決めます。
2週目:10社で試す
先月と先々月に期間が終わった広告主から10社を選び、手元の生成AIに実績と運用メモを貼って下書きを書かせます。実際に送ったメールと見比べ、数字を計算していないか、方向を書き換えていないかを最優先で見ます。
3週目:入力の締切を決める
運用部に、毎月4日までに方向と運用メモを埋めてもらう決まりを作ります。 ここが決まらないうちにワークフローを組むと、5日の実行で「方向が未入力」の知らせばかりが届きます。あわせて、申込の締切の決まりを一覧にします。
4週目:洗い出しから下書きまでをつなぐ
Make で Monthly の予定を組み、案件台帳の検索、実績の検索、Aggregate to JSON、Make an API Call、Parse JSON、担当営業への社内のメールまでを作ります。この時点では数字の照合を入れず、下書きだけを担当営業に読んでもらいます。
2か月目: Iterator で figures_used を照らす処理と、direction_used の照合を足し、提案の管理表に結果を残します。3か月目以降: 広告主の返事と申込の有無を管理表に集め、1件40分が何分になったかを実測します。期間の終わる広告主が洗い出しから漏れず、毎月の提案が締切の前にそろった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| Anthropic Claude のアプリに Create a Prompt、Upload a File、Make an API Call などのモジュールがあり、接続に Console で作った API キーを使うこと。キーは作ったときにしか見られないこと。アプリの説明に構造化出力の設定が書かれていないこと | Make: Anthropic Claude | 2026-10-13 |
| Search Rows が条件に合う行を返し、Limit で1回の実行で返す件数の上限を決めること。Add a Row、Update a Row があること | Make: Google Sheets modules | 2026-10-13 |
| Send an email と Create a draft email があり、下書きは指定が無ければ Drafts フォルダに作られること | Make: Gmail modules | 2026-10-13 |
| Aggregate to JSON が複数のまとまりを1つにまとめること。Parse JSON が JSON の文字列を読んで分けること | Make: JSON | 2026-10-13 |
| 予定の選び方に At regular intervals、Daily、Weekly、Monthly、Specified dates、On demand などがあり、On demand は API の呼び出しか Run once で動くこと | Make: Schedule a scenario | 2026-10-13 |
| Iterator が配列を一連のまとまりに変える特別なモジュールであること | Make: Iterator | 2026-10-13 |
構造化出力が output_config.format に type: "json_schema" を渡す形で一般提供されていること。数値の範囲(minimum など)や文字列の長さ(minLength など)の制約に対応していないこと | Claude: Structured outputs | 2026-10-13 |
継続を勧めるか、予算や条件をどう変えるかは、運用担当と担当営業で決めてください。 本記事は上の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1358)についてのご相談はこちらから。
