n8nでGoogleスプレッドシートとWordPressを連携しようとすると、
- 「Google Sheetsのデータが取れない」
- 「WordPressに接続できない」
- 「Credentialは合っているはずなのにエラーになる」
- 「記事タイトルは入るのに本文が空になる」
といったトラブルが起こることがあります。
特にn8nを始めたばかりだと、
n8nが悪いのか
Google Sheetsが悪いのか
WordPressが悪いのか
わからなくなりがちです。
でも、確認する順番を決めておけば、それほど難しくありません。
この記事では、
Google Sheets
↓
n8n
↓
WordPress
の連携がうまくいかないときに確認したいポイントを、中学生でも意味を追えるように実例つきで解説します。
最初に全部を同時に直そうとしない
一番大切なのは、
「どこまで正常に動いているか」
を確認することです。
たとえば、
Google Sheets
↓
OpenAI
↓
WordPress
というワークフローでエラーが出たとします。
この場合、
Google Sheetsが原因
とは限りません。
OpenAIまでは正常で、WordPressだけ失敗している可能性もあります。
そこで、
Google Sheetsだけ実行
↓
成功したか確認
OpenAIまで実行
↓
成功したか確認
WordPressを実行
↓
成功したか確認
という順番で調べます。
自動化では、
「最後に正常だったノードはどこか」
を探すと原因を見つけやすくなります。
今回の基本構成
たとえば次のワークフローを考えます。
Google Sheets
↓
入稿待ちの記事を取得
↓
WordPress
↓
下書き作成
↓
Google Sheets
↓
完了へ更新
正常なら、
Google Sheetsの記事A
↓
n8nが取得
↓
WordPressへ記事Aを作成
↓
Google Sheetsの記事Aを完了へ変更
となります。
では、うまくいかない場合を順番に見ていきます。
原因1:Googleアカウントとの接続ができていない
まず確認したいのがGoogle SheetsのCredentialです。
Credentialとは、
「n8nがこのGoogleアカウントを使っていいですよ」
という接続情報です。
Google Sheetsノードを開いて、
正しいCredentialが選ばれているか
を確認します。
複数のGoogleアカウントを使っている場合は特に注意しましょう。
実例:別のGoogleアカウントを選んでいた
たとえば、
GoogleアカウントA
→ 記事管理シートを所有
GoogleアカウントB
→ n8nで接続
となっていたとします。
Bから対象スプレッドシートを見る権限がなければ、正常に取得できないことがあります。
この場合は、
正しいGoogleアカウントを接続する
または、
対象スプレッドシートを接続中のアカウントから使えるようにする
必要があります。
原因2:Documentが違う
かなり起こりやすいミスです。
Google Sheetsノードには、
Document
という項目があります。
ここでは、
「どのGoogleスプレッドシートを使うか」
を指定します。
たとえば古いサイト用のワークフローをコピーした場合、
新しいGoogleスプレッドシートを作った
のに、
n8nは古いスプレッドシートを見ている
ことがあります。
実例:ワークフローをコピーした場合
以前、
ブログA
で使っていたn8nワークフローをコピーして、
ブログB
でも使うとします。
Googleスプレッドシートだけ新しく作っても、n8nのDocument設定が自動でブログB用へ変わるとは限りません。
そのため、
Google Sheetsノード
↓Document
を開いて、
本当に今回使いたいシートになっているか
確認します。
原因3:Sheetが違う
Documentが正しくても、
Sheet
が違う場合があります。
1つのスプレッドシートの中に、
- 記事管理
- キーワード
- 投稿済み
- テスト
など複数のシートがある場合です。
たとえば記事データが、
記事管理
にあるのに、
n8nでは「テスト」
を選んでいたら、欲しい記事は取得できません。
DocumentとSheetは別々に確認しましょう。
原因4:「入稿待ち」が見つからない
Google Sheetsとの接続自体は成功しているのに、
0件
になることがあります。
この場合は、条件設定を確認します。
たとえばn8n側で、
入稿ステータス
=入稿待ち
を取得する設定にしているとします。
Google Sheetsでは、
入稿待ち
のように最後へ余計な空白が入っていると、条件が合わないことがあります。
また、
入稿待
入稿まち
待機中
など別の文字になっていても一致しません。
実例
n8n側:
入稿待ち
Google Sheets側:
入稿待ち
なら一致します。
しかし、
n8n側:
入稿待ち
Google Sheets側:
入稿 待ち
なら別の文字として扱われる可能性があります。
ステータス名は同じ表記にそろえましょう。
原因5:列名が違う
Google Sheetsから記事は取得できたのに、
WordPressでタイトルが空
になることがあります。
この場合はExpressionを確認します。
たとえばGoogle Sheetsの列名が、
タイトル
なのに、
{{ $json["記事タイトル"] }}
と指定していたとします。
「記事タイトル」という項目が存在しないので、欲しい値を取得できません。
正しくは、
{{ $json["タイトル"] }}
OUTPUTを見ると原因を探しやすい
Expressionを直す前に、
Google SheetsノードのOUTPUT
を確認しましょう。
たとえば、
タイトル
完成本文
カテゴリ
入稿ステータス
が表示されているなら、その名前をそのまま使います。
初心者は、
「自分がこういう名前にしたつもり」
ではなく、
「OUTPUTに実際に何という名前で出ているか」
を見るのがおすすめです。
Google Sheetsはここまで確認する
Google Sheets側で問題がありそうなら、
CredentialDocumentSheet- 取得条件
- 列名
OUTPUT
の順番で確認します。
Google Sheetsノードだけを実行して、欲しい記事がOUTPUTへ出てくれば、次へ進みます。
次はWordPressとの接続を確認する
Google Sheetsが正常なら、次はWordPressです。
n8nからWordPressへ記事を作るには、
WordPressサイト
と、
n8n
を認証する必要があります。
WordPressでは、外部アプリからREST APIへ接続する方法としてApplication Passwordsが用意されています。
Application Passwordとは?
Application Passwordは、
「n8nなど外部ツール専用のパスワード」
と考えるとわかりやすいです。
普段WordPress管理画面へログインするときのパスワードとは別です。
WordPressでは、
ユーザー
↓
プロフィール
などからApplication Passwordを発行できます。
発行したものをn8nとの接続に使います。
原因6:普通のログインパスワードを使っている
初心者が間違えやすいポイントです。
たとえば、
WordPressユーザー名
+
いつものWordPressログインパスワード
をn8nへ入れても、想定したREST API認証にならない場合があります。
Application Passwordsを使う構成なら、
WordPressユーザー名
+
発行したApplication Password
を使います。
原因7:WordPressのユーザー名が違う
メールアドレスとWordPressユーザー名を混同する場合があります。
n8n側で求められている情報と、
実際のWordPressユーザー
が一致しているか確認しましょう。
WordPressに複数ユーザーがいる場合は、記事を作成できる権限を持ったユーザーかどうかも重要です。
原因8:サイトURLが違う
たとえばサイトが、
https://example.com
なのに、
http://example.com
を設定している。
または、
https://example.com/blogにWordPressがあるのに、
https://example.comだけを設定している。
このような違いでも接続できないことがあります。
実際にWordPressが動いているURLを確認しましょう。
HTTPSを使う
Application Passwordsを外部API認証に使う場合は、HTTPSで接続するのが基本です。
たとえば、
https://example.com
です。
httpではなく、
https
になっているか確認しましょう。
原因9:Application Passwordをコピーし間違えた
Application Passwordを発行したあと、
- 一部だけコピーした
- 別のパスワードを貼った
- 古い
Application Passwordを使った
といったミスもあります。
わからなくなった場合は、
n8n用など名前を付けて新しく発行し直す方法もあります。
不要になったApplication Passwordは個別に無効化できます。
原因10:REST APIが制限されている
Credentialが正しいのにWordPressへ接続できない場合、
REST APIへのアクセスが止められている
ことがあります。
原因としては、
- レンタルサーバーのセキュリティ設定
- セキュリティプラグイン
- WAF
- REST API制限機能
などが考えられます。
REST APIとは?
REST APIは、
「外部サービスがWordPressとやり取りするための窓口」
です。
人間なら、
WordPress管理画面を開く
↓
記事を作る
という操作をします。
n8nなら、
n8n
↓
WordPress REST API
↓
記事を作る
という形です。
WordPress公式では投稿用のREST APIとして、
/wp/v2/posts
などのエンドポイントが用意されています。
REST APIが使えるか確認する
たとえば通常の投稿一覧を取得する公開APIなら、
https://あなたのサイト/wp-json/wp/v2/posts
のようなURLがあります。
ブラウザで開いたときにJSON形式のデータが返れば、
REST APIそのものは応答している
と確認する材料になります。
ただし、
公開データが見える
=認証付き投稿も必ず成功する
という意味ではありません。
投稿作成には認証と適切な権限が必要です。
REST API制限を全部OFFにすればいい?
おすすめしません。
接続できないからといって、
セキュリティ機能を全部無効化
するのは危険です。
まず、
どの設定がREST APIを止めているのか
を確認します。
レンタルサーバーやセキュリティプラグインごとに仕組みが違うため、利用中サービスの公式情報も確認しましょう。
実例:Credentialは合っているのに接続できない
たとえば、
サイトURL
正しい
WordPressユーザー名
正しい
Application Password
正しい
それでもエラー。
この場合、
n8n
↓
WordPress
の間で、サーバー側がREST APIアクセスを止めている可能性があります。
ここでCredentialを何度も作り直すだけでは解決しません。
WordPress側・サーバー側も確認します。
エラー番号もヒントになる
HTTP Requestなどを使っていると、
400
401
403
404
といった数字を見ることがあります。
これをHTTPステータスコードと呼びます。
初心者なら、おおまかに次のように覚えておけば十分です。
400=送った内容がおかしい可能性401=認証に問題がある可能性403=権限やアクセス制限の可能性404=URLや対象が見つからない可能性
ただし、この数字だけで原因を100%決められるわけではありません。
一緒に表示されるエラーメッセージも確認しましょう。
実例:401が出た
たとえばWordPress投稿時に401が出たとします。
まず確認するのは、
ユーザー名
Application Password
Credential
です。
さらに、
そのユーザーに記事を作成する権限があるか
も確認します。
実例:403が出た
403なら、
認証情報は届いているが権限が足りない
サーバー側で拒否されている
セキュリティ機能がブロックしている
といった可能性があります。
ここでも、
「403だから絶対これ」
と決めつけず、エラー本文を読みます。
実例:404が出た
404なら、まずURLを確認します。
たとえば、
https://example.com/wp-json/wp/v2/posts
へ送るつもりなのに、
URLが間違っている
WordPressの設置場所が違う
エンドポイントの文字を間違えた
といったケースです。
原因11:WordPressには接続できるのに記事が空
これは接続エラーではなく、
データ受け渡し
の問題であることが多いです。
たとえばWordPressには記事が作られた。
でも、
タイトル
空
本文
空
だったとします。
この場合はWordPress Credentialより、
前のノードのOUTPUT
Expression
を確認します。
実例:本文の参照先が間違っている
Google Sheetsには、
完成本文
という列があります。
しかしWordPress Contentで、
{{ $json["本文"] }}
を参照していたとします。
「本文」という項目がなければ、欲しい文章を取得できません。
正しく、
完成本文
を指定します。
原因12:途中のノードで必要なデータがなくなった
ワークフローが、
Google Sheets
↓
OpenAI
↓
Edit Fields
↓
WordPress
だったとします。
Google Sheetsではタイトルがあった。
でもEdit Fieldsで、
本文だけ残す
設定にしてしまった。
するとWordPressまで来たときに、
タイトルがない
状態になる可能性があります。
INPUTとOUTPUTを順番に見る
この場合は、
Google Sheets OUTPUT
↓
タイトルあり
OpenAI OUTPUT
↓
タイトルあり
Edit Fields OUTPUT
↓
タイトルなし
と見れば、
Edit Fieldsで消えた
とわかります。
n8nのトラブル解決では、この確認方法がかなり重要です。
原因13:別のノードを参照している
Expressionで、
{{ $('記事A取得').first().json['タイトル'] }}
のように別ノードを直接参照することがあります。
ところがノードをコピーしたあと、
古いノード名
を参照したままになることがあります。
すると、
別の記事
古いデータ
空のデータ
を使う可能性があります。
Expression内のノード名も確認しましょう。
複数記事では.first()にも注意
複数の記事を処理している場合、
.first()
を使うと、
「そのノードの最初のアイテム」
を参照します。
たとえば、
記事A
記事B
記事C
を順番に投稿したいのに、毎回最初の記事Aを参照すると、
記事A
記事A
記事A
のような結果になる可能性があります。
複数データを扱う場合は、
現在処理中のデータを参照しているか
確認しましょう。
WordPressカテゴリだけ設定できない場合
タイトルと本文は入る。
でもカテゴリだけ違う。
この場合はカテゴリIDを確認します。
WordPress REST APIでは、カテゴリをIDで扱います。
たとえば、
n8n=2
ChatGPT=3
だったとします。
この数字はサイトごとに違います。
他人のWordPressサイトのカテゴリIDをそのまま使ってはいけません。
実例:カテゴリ名をそのまま送っていた
Google Sheets:
カテゴリ
=n8n
WordPressへ:
categories
=n8n
と送るのではなく、
自分のサイトでn8nカテゴリのIDが2なら、
categories
=[2]
のように扱います。
自分のWordPressのカテゴリIDを確認しましょう。
Google Sheetsの更新だけ失敗する場合
WordPress投稿は成功した。
でも最後のGoogle Sheets更新だけ失敗。
これは特に注意が必要です。
なぜなら、
WordPress=記事あり
Google Sheets=まだ入稿待ち
になるからです。
もう一度実行すると重複投稿する可能性があります。
再実行する前に確認する
この場合は、すぐ再実行しません。
まず、
WordPressに記事があるか
Post IDが取得できているか
Google SheetsのWP投稿済みはどうなっているか
を確認します。
すでにWordPressに記事があれば、
新規投稿
ではなく、
Google Sheets側だけ修正
すればいい場合があります。
失敗しにくい確認順序
初心者なら、次の順番で確認するとわかりやすいです。
- Google Sheetsノードだけ実行する
- 欲しい行が
OUTPUTにあるか確認する - タイトル・本文・カテゴリがあるか確認する
- WordPress
Credentialをテストする - テスト記事を1件だけDraftで作る
- Post IDが返るか確認する
- Google Sheets更新を追加する
- 同じ行が正しく更新されるか確認する
この順番なら、
どこで壊れたのか
見つけやすくなります。
実例:記事が投稿されない場合の調べ方
たとえば、
Google Sheets
↓
OpenAI
↓
WordPress
でWordPress記事ができなかったとします。
まずGoogle Sheetsを実行。
結果:
タイトルあり
本文あり
ならGoogle SheetsはひとまずOK。
次にOpenAIを実行。
結果:
文章あり
ならOpenAIもOK。
次にWordPress。
ここで401エラー。
なら、
WordPress認証周辺
を重点的に確認します。
このように、
前から順番に見る
のが基本です。
実例:記事はできたけど本文が空
Google Sheets
↓OUTPUTに完成本文あり
WordPress
↓
記事作成成功
↓
本文なし
なら、
WordPressのContentへ何を渡しているか
確認します。
Credentialを作り直す必要はありません。
接続自体は成功しているからです。
実例:Google Sheetsから何も取得できない
WordPressを見る前に、
Google Sheetsノード
を確認します。
特に、
DocumentSheet- 入稿ステータス条件
- 列名
を見ます。
入口でデータが取れていなければ、後ろのWordPressを直しても解決しません。
エラーが出たノードだけ見ない
たとえばWordPressノードにエラー表示が出ても、
本当の原因は、
前のノードからタイトルが来ていない
ことかもしれません。
そのため、
エラーのノード
+
1つ前のOUTPUT
を見るクセをつけると原因を見つけやすくなります。
テスト用の記事を1件作っておく
トラブル解決用に、
n8n接続テスト
という記事を1件作るのもおすすめです。
たとえば、
タイトル
n8n接続テスト
本文
これはテスト記事です。
カテゴリ
n8n
ステータス
入稿待ち
です。
この1件だけを使って、
Google Sheets
↓
WordPress Draft
まで試します。
本番記事を使わないので、失敗しても修正しやすくなります。
本番ではDraftがおすすめ
テスト時は、
publish
ではなく、
draft
を使いましょう。
draftは下書きです。
設定を間違えても公開ページに出にくいため、安全に確認できます。
接続できないからといって全部作り直さない
初心者はエラーが出ると、
Credentialを削除- ノードを削除
- ワークフローを全部作り直す
とやりたくなるかもしれません。
でも、その前に、
どのノードまでは成功しているか
を確認した方が早いです。
Google Sheetsまで成功しているなら、そこは触らなくていい可能性があります。
ココナラのn8nテンプレートについて
私は、
「ChatGPTで作った記事をWordPressへ半自動入稿するn8nテンプレート Lite」
をココナラで公開しています。
このようなテンプレートを使うと、
Google Sheets
↓
n8n
↓
WordPress
という基本のノード構成をゼロから作る手間は減らせます。
ただし、テンプレートを使っても、
Google Credential
対象スプレッドシート
WordPress URL
WordPress Credential
Application Password
カテゴリID
などは、自分の環境に合わせた設定が必要です。
テンプレートでも接続エラーは起こる
テンプレートは、
「何もしなくても必ず動くもの」
ではありません。
たとえば、
別のGoogle Sheetsが選ばれている
WordPress Credentialが未設定
サーバーがREST APIを制限している
場合は動きません。
テンプレートのメリットは、
完成した構成を見ながら、
どこを自分用に変更すればいいか
確認しやすいことです。
初心者向けチェックリスト
Google Sheetsで止まったら、
- Credentialは正しいか
- Documentは正しいか
- Sheetは正しいか
- 入稿待ちの行があるか
- 列名は合っているか
OUTPUTにデータがあるか
を確認します。
WordPressで止まったら、
- サイトURLは正しいか
- HTTPSになっているか
- ユーザー名は正しいか
Application Passwordは正しいか- そのユーザーに必要な権限があるか
REST APIが制限されていないか- エラー番号・メッセージは何か
を確認します。
データがおかしい場合は、
- 前のノードの
OUTPUT Expression- 参照しているノード名
- 列名
.first()の使い方
を確認します。
まとめ
n8nでGoogleスプレッドシートとWordPressを連携できないときは、
「全部がおかしい」
と考えないことが大切です。
まず、
Google Sheets
↓
データ取得できた?
次に、
途中のノード
↓
必要なデータがある?
最後に、
WordPress
↓
認証・投稿できた?
という順番で確認します。
特に初心者がつまずきやすいのは、
Google SheetsのDocument違い
Sheet違い
列名・Expression違い
WordPressのApplication Password
REST API制限
カテゴリID
です。
一番大切なのは、
1ノードずつ実行
↓OUTPUTを見る
↓
正常なら次へ
という進め方です。
エラーになったら全部作り直すのではなく、
「どこまでは正常だったか」
を探してみましょう。
それだけでも、n8nのトラブル解決はかなり簡単になります。
注意事項
n8n、Google Sheets、WordPressはアップデートによって画面、ノード名、設定項目などが変更される場合があります。
WordPressのApplication Passwordは外部アプリやスクリプトによるAPI認証向けの機能です。通常のブラウザログイン用パスワードとは別に管理してください。
Application PasswordやAPIキーなどの認証情報は、記事、SNS、スクリーンショットなどで公開しないでください。
REST APIへ接続できない場合でも、原因を確認せずセキュリティ設定をすべて無効化することはおすすめしません。
レンタルサーバー、WAF、WordPressのセキュリティプラグインなどを変更する場合は、それぞれの公式情報も確認してください。
大量の記事で試す前に、テスト記事1件をDraftで投稿し、
取得
↓
投稿
↓
Post ID取得
↓
Google Sheets更新
まで正常に動くことを確認してください。
参考・公式情報
- ・n8n公式ドキュメント
- ・n8n公式ドキュメント「Google Sheets」
- ・n8n公式ドキュメント「WordPress」
- ・n8n公式ドキュメント「Expressions / Data Mapping」
- ・WordPress Developer Resources「Authentication – REST API Handbook」
- ・WordPress Developer Resources「Application Passwords」
- ・WordPress Developer Resources「Posts – REST API Handbook」
- ・WordPress Developer Resources「REST API Reference」
n8nやWordPressは継続的に更新されているため、実際の画面や設定方法が異なる場合は最新の公式ドキュメントも確認してください。
次に読む記事
自分で組み立てる時間を減らしたい方へ
この記事の手順を自分で試す方法に加え、設定の土台として使える販売テンプレートも用意しています。
- WordPress記事入稿 Liteの商品内容・価格を見る(ココナラ)
用意した記事をHTMLに整えてWordPressへ下書き保存。 自動公開はしません。Google Sheets・OpenAI・WordPressの接続設定が必要です。
ご自身の環境に合わせた初期設定が必要です。OpenAIを使う商品ではAPI利用料金が別途かかります。購入前に販売ページの対応範囲をご確認ください。