柴田よっしゃ!前回の記事で、ついにAIにリライト案を提案してもらったぞ!…このままAIがリライトしてくれればいいのになぁ…(チラッ)



何見てるんですカ?ワタシは別のデータ分析があるからリライトなんかしませんヨ?スプシに出力しとくので自分でやってくだサイ



む…手厳しい…
このシリーズも最終回です。
第2回でGSCデータを取得し、第3回でリライト優先度をスコアリングし、第4回でClaude/Geminiにリライト提案を生成させました。
この記事ではこれらの結果をGoogleスプレッドシートに自動出力して、毎週見るだけで「今週何をリライトすべきか」が一目でわかるダッシュボードを作ります。
これでワークフローが完成します。
【この記事でわかること】
- n8nからGoogleスプレッドシートへの出力設定
- リライト優先度・Claude/Geminiの提案を見やすく整理する方法
- ワークフロー全体の完成形
ワークフロー全体のおさらい
ここまでで作ってきたワークフローはこうなっています。
Scheduleトリガー(週1)
├→ HTTP Request(数学ブログのGSCデータ取得)
→ Codeノード(スコアリング・上位10記事抽出)
→ Codeノード(プロンプト生成)
├→ HTTP Request(Claude)
→ Codeノード(レスポンス整形)
→ Google Sheets(出力)★今回はここ
Step1:Googleスプレッドシートを準備する
新しくスプレッドシートを作成して、以下の列を用意します。
| 列 | 内容 |
|---|---|
| A | 日付 |
| B | サイト名 |
| C | URL |
| D | 主要キーワード |
| E | 平均順位 |
| F | CTR |
| G | 表示回数 |
| H | スコア |
| I | スコアの理由 |
| J | Claude提案 |


Step2:n8nにGoogle Sheetsノードを追加する
ワークフローの最後にGoogle Sheetsノードを追加します。



ここも「実際に詰まったこと」があるので、先にそちらを読んでください!
ノードの設定
| 項目 | 設定値 |
|---|---|
| Resource | Sheet Within Document |
| Operation | Append Row |
| Document | 作成したスプレッドシートを選択 |
| Sheet | シート名を選択 |




ハマりポイント① 第2回でGSC接続用に作った「Google OAuth2 API」のクレデンシャルは、そのままでは選択肢に出てきません。n8nでは「Google OAuth2 API」と「Google Sheets OAuth2 API」はクレデンシャルタイプとして別物扱いだからです。
ただしGoogle Cloud Platform側のClient ID・Client Secretは使い回せます。手順はこうです。
- Google Sheetsノードの認証欄で「+ Create new credential」を選び、「Google Sheets OAuth2 API」の新規作成画面を開く
- 第2回で作成したクレデンシャル(Automated Analytics GSCなど)を別タブで開き、Client IDとClient Secretをコピーする
- 新規作成画面に同じClient ID・Client Secretを貼り付ける
- スコープに
https://www.googleapis.com/auth/spreadsheetsが含まれているか確認する- 保存して認証(Connect)する
GCPのプロジェクト・OAuthクライアントは1つのまま、n8n側のクレデンシャルだけタイプ別に複数登録する、というイメージです。






Step3:サイト名を識別できるようにする
今後分析するブログを増やした場合、どのブログのデータわからなくなるので、最初のCodeノード(スコアリング)でsiteNameフィールドを追加しておきます。



スプシのノードを閉じて一度前のCodeノードに戻りましょう!
最初のCodeノードの最後の方(後ろから5行目〜30行目くらい)にある、results.pushに以下の1行を書き加えます
…
results.push({
siteName: "数学ブログ", //←この1行追加
url: d.url,
…
});Step4:列のマッピング
Mapping Column Modeで「Map Each Column Manually」を選び、各列にどのデータを入れるかをマッピングします。
INPUTのJSONには、各ノードで出力したデータが拾えるので、
- Claude提案:直前のCodeノードから渡ってきた”suggestion”
- 日付:{{ new Date().toISOString().split(‘T’)[0] }}(←これをコピペしてください、今日の日付が入ります)
- その他:この記事シリーズに従って作った場合、3つ目のCodeノード(GSCのデータをスコアリングしたもの)から拾ってきます



各JSONのデータを拾ってきたいときは、項目を左ドラッグでもってくるだけです。
画面左上、INPUTを「JSON」タブに切り替えると、その下にあるプルダウンで直前だけでなく、そこまでに出力したJSONデータを選べるので、そこから3つ目のCodeノードを選んで必要なデータを引っ張り出してください




(正しく紐づけできたら以下のようになるはずです。
| 列 | Expression(内容) |
|---|---|
| 日付 | {{ new Date().toISOString().split(‘T’)[0] }} |
| サイト名 | {{ $(‘【3つ目のCodeノード名】’).item.json.siteName }} |
| URL | {{ $(‘【3つ目のCodeノード名】’).item.json.url }} |
| 主要キーワード | {{ $(‘【3つ目のCodeノード名】’).item.json.topKeyword }} |
| 平均順位 | {{ $(‘【3つ目のCodeノード名】’).item.json.avgPosition }} |
| CTR | {{ $(‘【3つ目のCodeノード名】’).item.json.avgCtr }} |
| 表示回数 | {{ $(‘【3つ目のCodeノード名】’).item.json.totalImpressions }} |
| スコア | {{ $(‘【3つ目のCodeノード名】’).item.json.score }} |
| スコアの理由 | {{ $(‘【3つ目のCodeノード名】’).item.json.reasons }} |
| Claude提案 | {{ $json.suggestion }} |
完成したダッシュボードのイメージ
毎週月曜にこのスプレッドシートが自動更新され、こういう状態になります。




スコアの高い順にソートしておけば、開いた瞬間に「今週リライトすべき記事トップ10」が一目でわかります。



ついに完成!お疲れ様でした!
実際に詰まったこと
スプシにデータを追記する際、
- スプシを開くために「Google Drive API」を有効にする
- スプシのシートを開くために「Google Sheets API」を有効にする
…と、2つのAPIサービスを有効にしておかないといけません。
あらかじめGoogle Cloudeコンソール(https://console.cloud.google.com/)の左上メニュー「≡」→「APIとサービス」→「ライブラリ」の中から上記2つのAPIを有効にしておいてください。






1ヶ月運用してみた感想



こちらは実際使ってみてから報告しますね
このシリーズのまとめ
全5回でお届けしてきたGSC自動解析ワークフローはこれで完成です。
| 回 | 内容 |
|---|---|
| 第1回 | 全体設計【6ノード構成】 |
| 第2回 | GSC APIへの接続とデータ取得 |
| 第3回 | Codeノードでスコアリングロジックを組む |
| 第4回 | Claude/Gemini APIでリライト提案を生成 |
| 第5回(今回) | スプレッドシートへの自動出力 |
毎週手動で数時間かかっていたGSC確認作業が、月60円程度のAPI費用で完全自動化されました。
完成版ワークフローは公式ラインで配布します
今回全部を統合した完成版ワークフローを公式ラインで配布します。
公式LINEに登録して、「GSC自動解析」とメッセージをください。ワークフローのJSONファイルへのリンクを送信します!



完全無料配布です!このブログ記事を参考にセットアップしてみてください!











