問題
私はコミュニティプラットフォームを移行していました。簡単そうに聞こえますよね?ただリンクを変更するだけです。
しかし私には“小さな”点がありました:1,000件以上の記事のHTMLに、旧コミュニティURLを指すハードコードされたCTAが含まれていました。
なぜハードコードか?効率にこだわっているからです。追加のWordPressプラグインはロード時間をミリ秒単位で増やします。CTAは直接コード内に埋め込まれていました。
明らかな解決策(そしてなぜ機能しないのか)
オプション1:SQL置換
UPDATEwp_postsSETpost_content=REPLACE(post_content,'old-community-url.com','skool.com/new-community');
問題: これでリンクは解決しますが、機会を無駄にします。
各記事はそれぞれ異なります:
- スタートアップ資金調達の機会に関する投稿 → 投資家とつながるCTA
- AIツールに関する投稿 → 実装に関するCTA
- 分析に関する投稿 → より深く掘り下げるCTA
盲目的な置換は汎用的なCTAを生成します。私はそれを望んでいませんでした。
オプション2:手動(1件ずつ)
1,000件以上の投稿を開いて、それぞれを読み、文脈に沿ったCTAを生成して更新します。
問題: 煩雑な作業に100時間以上。そして私は人間です――疲れたり、気を散らしたり、ミスをします。
オプション3:カスタムスクリプト
投稿を読み取り、AIを使って内容を分析し、文脈に合わせたCTAを生成し、WordPressを更新するPython/Nodeスクリプトを書きます。
問題: 開発日数。デバッグ。保守。結局一度しか行いません。
実際の解決策: n8n + Groq + Llama 3.3
必要だったのは、以下の特性を備えたものです:
- ✅ インテリジェント(コンテンツのセマンティック理解)
- ✅ 高速(何週間も待てません)
- ✅ 経済的(できれば無料)
- ✅ 再利用可能(将来の変更のため)
- ✅ 視覚的(コードを書き換えずに調整しやすい)
登場: n8n + Groq + Llama 3.3
The Stack
- n8n (自己ホスト型): 視覚的ワークフローオーケストレーター
- Groq API: 超高速オープンソースモデルへの無料アクセス
- Llama 3.3 70B: 推論力の強いMetaのモデル
- WordPress REST API: 投稿の取得と更新
ワークフロー(ステップごとに)
1. WordPressから投稿を取得
HTTP Requestノード → GET /wp-json/wp/v2/posts?per_page=100
パラメータ:
-
per_page=100(バッチあたりの最大値) -
_fields=id,title,content,link(必要なものだけ)
2. 1件ずつ処理
「Split in Batches」ノード → batch_size = 1
なぜ1件ずつ? レート制限を管理し、リアルタイムで進捗を確認するためです。
3. 脳: LLMエージェント(Groq + Llama 3.3)
システムプロンプト:
あなたはスタートアップ系ブログのCTAに特化したコンテンツ編集者です。
ルール:
1. CTAが存在しない場合 → 最後の段落の前に追加する
2. 古いコミュニティURLがある場合 → 新しいURLに置換する
3. 必要に応じてボタンの色を更新する
CTAはコンテンツのタイプに基づく:
- 資金調達/投資関連の投稿 → "同じ創業者とつながる..."
- AI/ツール → "他の人がこれをどう実装しているかを知る..."
- 分析 → "これらの話題をさらに深掘りする..."
JSONで返答:
{
"content": "updated HTML or null",
"hasChanges": true/false
}
ユーザープロンプト:
Title:{{$json.title}}Categories:{{$json.categories}}Content:{{$json.content}}
4. 決定: 更新するかスキップするか?
IF ノード → {{ $json.hasChanges }} === true
TRUEの場合 → WordPressを更新
FALSEの場合 → 「変更不要」と記録
5. WordPressを更新
HTTP Requestノード → POST /wp-json/wp/v2/posts/{{ $json.postId }}
本文:
{
"content": "{{ $json.updatedContent }}"
}
6. ループバック
「Split in Batches」ノードへ戻り、次の投稿へ
実際の数値
| 指標 | 結果 |
|---|---|
| ワークフロー設計 | 2時間 |
| 実行(1,000件の投稿) | 約1.5時間 |
| コスト | $0(Groq無料枠) |
| 更新された投稿数 | 847件(残りはすでに問題なし) |
| 生成された文脈CTA | 847 |
| 書いたコード行数 | 0 |
比較:
- SQL置換: 5分、ただし一般的なCTA ❌
- 手動: 100時間以上、不安定 ❌
- カスタムスクリプト: 開発とデバッグで2〜3日 ❌
- n8n + AI: 合計3.5時間、完璧な結果
これが意味すること
1. ノーコード + AI = 判断力の掛け合わせ
私は判断力をAIに置き換えたわけではありません。私はそれを1,000倍に増幅しました。
私は次のことを定義しました:
- WHAT: 関連する文脈を持つCTAを更新する
- WHY: 移行とコンバージョンの改善
AIはコンテンツのセマンティック理解を用いてHOWを実行しました。
2. 実ビジネスケースにはビジュアルが有利
n8n の視覚的ワークフローは以下のとおりです:
- ✅ 理解しやすい(「未来の私」でも)
- ✅ 調整が速い(ドラッグ&ドロップ)
- ✅ 再利用が容易(複製して変更)
私はコードを書かなかったのは、コードが必要なかったからです。
3. オープンソースLLMsは本番運用向き
Llama 3.3 70B via Groq:
- 100〜200トークン/秒(OpenAIの10倍)
- 無料(合理的な制限付き)
- 構造化タスクに対してGPT-4oと同等の品質
このためにGPT-5は必要ありません。オープンソースで十分です。
学んだ教訓
うまくやるべきこと:
- 小さなバッチから始める: 1,000件すべてを処理する前に10件でテストする
- 詳細なログ: 各投稿を記録(更新/スキップ/エラー)
- 控えめなレート制限: 1投稿につき2-3秒ごと(スロットリングを回避)
- 構造化出力: スキーマ検証付きのJSONを保証
- 冪等性: 2回実行しても壊れない(すでに更新済みの投稿を検出)
避けるべきこと:
- 十分にテストしていない: 出力を検証せずにほぼ全バッチを起動しそうになった
- AIを盲信する: 大規模運用の前に必ずサンプルを検証する
- WordPressのキャッシュを無視する: 後でCDNキャッシュを消去する必要があった
このスタックの未来
このワークフローは使い捨てではありません。将来のために以下の用途で再利用します:
- 季節別CTA更新(ブラックフライデー、年間の機会)
- メッセージA/Bテスト(CTAを大幅に変更して変換を測定)
- フォーマット移行(将来CTAデザインを変更する場合)
- コンテンツ翻訳(同じ流れ、別のプロンプト)
投資: 2時間
ROI: 無限(これを今後10回以上使います)
結論
実際のビジネス課題がありました。文脈を持つCTAを1,000件以上の投稿で更新する必要がありました。
「簡単」な解決策(SQL)は不十分でした。「複雑」な解決策(手動/スクリプト)は非効率的でした。
n8n + Groq + Llama 3.3 = 理想的な中間地点。
これは「未来」ではなく、今日です。
ツールは存在します。無料(または安価)です。アクセス可能です。
質問は「これをすることができるか」ではありません。
問いは「この方法で他に何を自動化できるか?」です。
このアプローチで何を自動化しますか?コメント欄で教えてください。
📝 元々スペイン語で公開されたものです。cristiantala.com