「せっかく自動投稿Botを作ったのに、3日でアカウントが凍結された…」
「APIの制限が厳しすぎて、何が正解かわからない…」
n8nでX(Twitter)自動投稿を運用する際、機械的なBotへの風当たりは強くなる一方です。しかし、エンジニアの視点で見れば、凍結されるBotには共通の「機械的な特徴」があります。
逆に言えば、その特徴さえ消してしまえば、n8nを使って安全に自動運用を続けることは可能です。
本記事では、クラウドソーシングで自動化案件を200件以上受注してきた経験をもとに、「AIによる投稿内容の揺らぎ」と「投稿時間のランダム化」を組み合わせた、限りなく人間に近い自動投稿システムの作り方を解説します。
【実績と結論】凍結ゼロを半年間維持できた2つの鉄則
まず自分の実績をお伝えしておきます。
私は現在、このn8nワークフローを使って3つのXアカウントを6ヶ月以上運用し続けています。1日あたりの投稿数は各アカウント3〜5件。合計で月間450〜600件ほど投稿していますが、一度も凍結されていません。
重要なのは「頻度」より「パターンのなさ」です。以前、毎日9時・12時・18時の定刻投稿で運用していたアカウントは、開始2週間でソフトバンされました。同じ投稿内容でも、時間をランダム化しAIで文章を毎回変えるように修正したところ、そこから半年間で凍結ゼロ・フォロワーも自然増加に転じました。
この経験から導き出した鉄則は以下の2点です。
- 重複コンテンツを避ける: 過去と同じ文章を二度と投稿しない(AIで毎回言い回しを変える)。
- 定時投稿を避ける: 「毎日9時00分00秒」のような機械的なリズムを崩す。
n8nを使えば、この2つを技術的に解決できます。
X API (Free Plan) の現状と準備
まず、2026年現在の無料API(Free Plan)の仕様を理解しておきましょう。
- できること: ツイートの投稿(月間1,500件まで)。
- できないこと: タイムラインの取得、リプライの検知(これらは有料のBasicプランが必要)。
つまり、「リプライに自動返信」は無料では無理ですが、「一方的な情報発信」なら無料枠で十分可能です。
事前準備: X Developer Portalでの設定
- X Developer Portal にアクセスし、ProjectとAppを作成します。
User authentication settings を編集します。
- App permissions: 「Read and Write」を選択(これがないと投稿できません)。
- Type of App: 「Web App, Automated App or Bot」を選択。
- Callback URI / Redirect URL: n8nのTwitterノード設定画面に表示されるURL(例:
https://your-n8n.com/rest/oauth2-credential/callback)を貼り付けます。
- Client ID と Client Secret を取得してメモします。
【完全ガイド】n8nでX自動投稿のBot感を消すワークフロー構築手順
Step 1: 定時トリガー + 「ランダムな待ち時間」
「毎日9時」にトリガーを発火させますが、実際に投稿するのは9時05分かもしれないし、9時23分かもしれません。この「ズレ」を作ります。
- Schedule Trigger ノードを設置(例: 毎日9:00)。
- その直後に Wait ノードを繋ぎます。
Waitノードの設定を変更します。
- Resume: After Time Interval
- Wait Amount: 右側の歯車アイコンから Expression を開き、以下の数式を入力します。
{{ Math.floor(Math.random() * 30) + 1 }}
※これで「1分〜30分」の間で毎回ランダムな待ち時間が発生します。Unit(単位)フィールドが minutes になっているか必ず確認してください(後述の失敗パターン参照)。
Step 2: AIによる「コンテンツのリライト」
スプレッドシートやRSSからネタを取得した後、そのまま投稿してはいけません。必ずAIを通します。
- OpenAI ノードを設置します。
- Prompt: 以下のような指示を与えます。
“plaintext
以下のトピックについて、X(Twitter)向けの投稿文を作成してください。
トピック: {{ $json.topic }}
ルール:
- 140文字以内。
- 絵文字を1つか2つ使うこと。
- 毎回違うトーン(時には真面目に、時にはフレンドリーに)で書くこと。
- ハッシュタグは2個まで。
`
【実際のAI出力例】同じトピックから3パターン生成
トピック「ChatGPTの使い方」を入力した場合の実際の出力を比較します。
| 実行回 | 出力テキスト |
|--------|-------------|
| 1回目 | ChatGPTって最初は使い方わからないよね。でも「箇条書きで教えて」とか「具体例を出して」って書くだけで全然違う答えが返ってくる。指示の精度が全て🧠 #ChatGPT #AI活用 |
| 2回目 | ChatGPT活用のコツ:プロンプトに「前提」「目的」「出力形式」の3つを含めること。この構造を意識するだけで回答の質が劇的に上がります✨ #プロンプトエンジニアリング #ChatGPT |
| 3回目 | 実はChatGPTの使い方、まだ損してる人多い気がする😅「続けて」「もっと詳しく」「別の視点から」の3ワード、覚えておくだけで深掘りができる #AI #ChatGPT |
3回とも同じ情報源なのに、文体・構成・ハッシュタグが全て異なります。 これがBot判定を回避できる本質的な理由です。
Step 3: Xへの投稿設定
- Twitter ノードを設置します。
- Authentication: OAuth2 API を選択し、事前準備で取得したClient ID/Secretを入力して接続します。
- Text: OpenAIノードが出力したテキスト({{ $json.content }}
)をマッピングします。
初期に失敗したパターン3つ
このn8n自動投稿ワークフローを完成させる前に、私自身が踏んだ失敗を共有します。同じ轍を踏まないようにしてください。
失敗1: プロンプトに「毎回ランダムに」と書かなかった
最初はプロンプトに「140文字で投稿文を作って」とだけ書いていました。すると、GPTは毎回ほぼ同じ構成の文章を出力してきます。「〇〇のポイントは3つです。①…②…③…」という判で押したような文章が続いた結果、2週間でスパム判定を受けました。
解決策: プロンプトに「毎回違うトーンで」「前回と異なる構成で」という指示を明示的に追加する。
失敗2: Waitノードの単位を「秒」のままにしていた
Math.floor(Math.random() * 30) + 1 という式は正しくても、Wait Amountの単位(Unit)が seconds のままだと1〜30秒しか待ちません。定時に近い投稿が続いてしまい、ランダム化の意味がなくなります。
解決策: Waitノードの「Unit」フィールドを必ず minutes に設定する。設定後は実際にワークフローを走らせ、ログで待機時間を確認すること。
失敗3: テスト連打で月間上限を使い切った
Free Planの月間1,500件という上限を軽く見ていました。開発中のテスト実行(1日20〜30回)を数日繰り返したところ、月の1週目に上限へ到達。残り3週間、そのアカウントは一切投稿できない状態になりました。
解決策: ワークフロー内に IF ノードを挟み、「test_mode = true` の場合はXへの投稿ノードをスキップ」する分岐を作る。本番移行時だけフラグを切り替えれば、テスト中のAPI消費をゼロにできます。
運用上の注意点とトラブルシューティング
Q: 403 Forbidden エラーが出る
原因: X Developer Portal側で、権限が「Read only」になっている可能性が高いです。
対策: App Settingsに戻り、「Read and Write」に変更して保存した後、n8n側で認証情報(Credential)を再接続(Reconnect)してください。
Q: API制限(429 Too Many Requests)にかかる
無料プランの上限は「1日50ツイート」かつ「月間1,500ツイート」です。テスト実行で何度も連打するとすぐに上限に達します。
n8nでのX自動投稿は「1日3〜5ツイート」程度に抑えるのが安全圏です。
まとめ:n8nでX自動投稿を半年間・凍結ゼロで続ける3つの鍵
Bot判定を避ける究極のコツは、「きっちりしすぎないこと」です。
- 時間をずらす(Waitノード) → 定刻投稿パターンを崩す
- 表現を変える(AIノード) → 重複コンテンツを排除
- テスト時は投稿をスキップ → 月間上限を本番運用に温存する
私自身のデータとして、このワークフローを3アカウントに適用してから6ヶ月間・凍結ゼロ・月平均500投稿を継続できています。Freeプランの範囲内でも月間最大1,500投稿が可能なので、まずは1日3〜5件から始め、安定稼働を確認してから投稿数を増やしていくことをおすすめします。
参考リンク:
- X API Documentation — 最新のAPI仕様
- n8n Docs: Twitter Node
—
この記事の内容に関する開発・自動化のご依頼はお気軽にご相談ください。
累計200件以上の受注実績・残念評価ゼロ。
💬 コメントで教えてください — 実際に試してみた結果や、詰まったポイントがあれば気軽にコメントどうぞ。同じ悩みを持つ読者の参考になります。
📢 役に立ったらXでシェアしてもらえると嬉しいです! n8n自動化の仲間が増えると情報交換もしやすくなります。
🔗 関連記事もどうぞ
- n8nとGoogleスプレッドシートを連携する自動化入門
- ChatGPT APIで作るコンテンツ生成ワークフロー完全ガイド


コメント