AI駆動型WordPressコンテンツワーキングフロー
中級
これはContent Creation, Multimodal AI分野の自動化ワークフローで、12個のノードを含みます。主にIf, Code, Postgres, Wordpress, Agentなどのノードを使用。 OpenAIのGPTを使ってPostgreSQLからWordPressへのブログ投稿を自動化
前提条件
- •PostgreSQLデータベース接続情報
- •OpenAI API Key
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "ai-wordpress-blog-automation",
"meta": {
"templateCredsSetupCompleted": false
},
"name": "AI-Powered WordPress Content Workflow",
"tags": [],
"nodes": [
{
"id": "291e2ca0-6eb2-4e69-a147-2369e7f27257",
"name": "🗄️ PostgreSQL Trigger",
"type": "n8n-nodes-base.postgres",
"position": [
-672,
80
],
"parameters": {
"query": "SELECT *\nFROM \"your_table_name\"\nWHERE \"Processed\" = FALSE OR \"Processed\" IS NULL\nORDER BY \"Created_At\" DESC\nLIMIT 1;",
"options": {},
"operation": "executeQuery"
},
"credentials": {
"postgres": {
"id": "YOUR_POSTGRES_CREDENTIALS_ID",
"name": "PostgreSQL Database Connection"
}
},
"typeVersion": 2.4
},
{
"id": "7fbc5898-0f88-46e8-96ce-e4e215122974",
"name": "⏰ Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-896,
80
],
"parameters": {
"rule": {
"interval": [
{}
]
}
},
"typeVersion": 1.1
},
{
"id": "057ddc57-2019-4cad-acdd-a3a69976512d",
"name": "📝 ブログデータのフォーマット",
"type": "n8n-nodes-base.code",
"position": [
128,
80
],
"parameters": {
"jsCode": "// Parse the AI response safely\nconst input = $input.first().json;\n\n// Handle payload structure: sometimes response, sometimes output\nconst aiResponse = input.response || input.output || JSON.stringify(input);\n\n// Try to parse JSON from AI response\nlet blogData;\ntry {\n const jsonMatch =\n aiResponse.match(/```json\\s*([\\s\\S]*?)\\s*```/) ||\n aiResponse.match(/{[\\s\\S]*}/);\n\n if (jsonMatch) {\n blogData = JSON.parse(jsonMatch[1] || jsonMatch[0]);\n } else {\n throw new Error(\"No JSON structure found\");\n }\n} catch (error) {\n const safeText = aiResponse || \"AI did not return text.\";\n blogData = {\n title: safeText.split(\"\\n\")[0] || \"Generated Blog Post\",\n content: safeText,\n excerpt: safeText.substring(0, 200) + \"...\",\n meta_description: safeText.substring(0, 160),\n };\n}\n\n// Ensure fallback values\nconst safeTitle = blogData.title || \"AI Generated Marketing Content\";\nconst safeContent = blogData.content || \"No content generated.\";\nconst safeExcerpt =\n blogData.excerpt || safeContent.substring(0, 200) + \"...\";\nconst safeMeta =\n blogData.meta_description || safeContent.substring(0, 160);\n\n// Get the original database record\nlet dbRecord = {};\ntry {\n dbRecord = $('🗄️ PostgreSQL Trigger').item.json || {};\n} catch (e) {\n dbRecord = { id: \"unknown\", source: \"no-db-record\" };\n}\n\n// Return structured data for WordPress\nreturn {\n json: {\n title: safeTitle,\n content: safeContent,\n excerpt: safeExcerpt,\n status: \"publish\",\n categories: [\"Marketing\"],\n tags: [\"AI\", \"PostgreSQL\", \"WordPress\", \"Marketing\", \"Automation\"],\n meta_description: safeMeta,\n original_record_id: dbRecord.id || \"no-id\",\n source_data: dbRecord,\n },\n};"
},
"typeVersion": 2
},
{
"id": "a2eeca41-110d-4c61-856d-409e8ce0661f",
"name": "✍️ WordPress Publisher",
"type": "n8n-nodes-base.wordpress",
"position": [
352,
80
],
"parameters": {
"tags": {
"tags": [
"AI",
"PostgreSQL",
"WordPress",
"Marketing",
"Automation"
]
},
"title": "={{ $json.title }}",
"status": "publish",
"content": "={{ $json.content }}",
"excerpt": "={{ $json.excerpt }}",
"categories": {
"categories": [
"Marketing"
]
},
"additionalFields": {
"meta": {
"metaProperties": [
{
"key": "meta_description",
"value": "={{ $json.meta_description }}"
}
]
}
}
},
"credentials": {
"wordpressApi": {
"id": "YOUR_WORDPRESS_CREDENTIALS_ID",
"name": "WordPress API Connection"
}
},
"typeVersion": 1
},
{
"id": "946b27ee-37ea-4b82-867b-624f281727d3",
"name": "💾 データベース更新",
"type": "n8n-nodes-base.postgres",
"position": [
576,
80
],
"parameters": {
"query": "UPDATE \"your_table_name\"\nSET \n \"Processed\" = TRUE,\n \"Wordpress_Post_Id\" = $1,\n \"Wordpress_Post_Url\" = $2,\n \"Blog_Title\" = $3,\n \"Processed_At\" = NOW()\nWHERE \"id\" = $4;",
"options": {},
"operation": "executeQuery",
"additionalFields": {
"queryParameters": {
"parameters": [
{
"value": "={{ $json.id }}"
},
{
"value": "={{ $json.link }}"
},
{
"value": "={{ $json.title.rendered }}"
},
{
"value": "={{ $('📝 Format Blog Data').item.json.original_record_id }}"
}
]
}
}
},
"credentials": {
"postgres": {
"id": "YOUR_POSTGRES_CREDENTIALS_ID",
"name": "PostgreSQL Database Connection"
}
},
"typeVersion": 2.4
},
{
"id": "3254f143-fe85-49c8-a454-bb9729fd77dc",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-176,
288
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini"
},
"options": {}
},
"credentials": {
"openAiApi": {
"id": "YOUR_OPENAI_CREDENTIALS_ID",
"name": "OpenAI API Connection"
}
},
"typeVersion": 1.2
},
{
"id": "dde2cc13-b8a2-4771-beb6-09e7fc31a352",
"name": "🔍 レコード存在確認",
"type": "n8n-nodes-base.if",
"position": [
-448,
80
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "condition_1",
"operator": {
"type": "number",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.id }}",
"rightValue": 0
},
{
"id": "c9785b0c-f86c-4293-a5b3-8825e74ad0c4",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.Blog_Title }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2
},
{
"id": "cdacc933-4448-40b8-a9c5-242bf766d62a",
"name": "🤖 ブログ記事生成",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-224,
80
],
"parameters": {
"text": "=You are an expert marketing content writer. Create engaging, SEO-optimized blog posts that convert readers into customers.\n\nUser Message:\nCreate a comprehensive marketing blog post based on this title: \n{{ $json.Blog_Title }}\n\nThe blog post should include:\n1. A catchy, SEO-friendly title\n2. An engaging introduction that hooks the reader\n3. Well-structured body content with subheadings\n4. A compelling conclusion with a call-to-action\n5. Optimize for marketing and conversion\n\nFormat the response as JSON with these fields:\n- title: The blog post title\n- content: The full HTML content of the blog post\n- excerpt: A brief excerpt (150-200 characters)\n- meta_description: SEO meta description (150-160 characters)",
"options": {},
"promptType": "define"
},
"typeVersion": 2.2
},
{
"id": "d2941310-5f0a-43fa-a232-f68f0b990f78",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
-944,
-320
],
"parameters": {
"width": 432,
"height": 720,
"content": "## 1. Trigger & Data Fetch\n\n**Schedule Trigger (⏰ Schedule Trigger)**: Initiates the workflow at regular intervals.\n\n**PostgreSQL Query (🗄️ PostgreSQL Trigger)**: Fetches the latest unprocessed record from your database table.\n\n**Record Existence Check (🔍 Check Record Exists)**: Ensures only valid, non-empty records are processed."
},
"typeVersion": 1
},
{
"id": "539c0737-da51-4e7f-8127-fefd690f75d5",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-496,
-320
],
"parameters": {
"color": 4,
"width": 560,
"height": 720,
"content": "## 2. AI Content Generation\n\n**OpenAI Chat Model (OpenAI Chat Model)**: Receives record input and generates blog content based on the title.\n\n**Blog Post Agent (🤖 Generates Blog Post)**: Structures AI output into a JSON format with:\n- Title\n- Content (HTML)\n- Excerpt (150–200 characters)\n- Meta description (SEO, 150–160 characters)"
},
"typeVersion": 1
},
{
"id": "252aa9dd-5b44-4ba2-8621-19895689f740",
"name": "付箋2",
"type": "n8n-nodes-base.stickyNote",
"position": [
80,
-320
],
"parameters": {
"color": 3,
"width": 208,
"height": 720,
"content": "## 3. Data Formatting & Safety\n\n**Code Node (📝 Format Blog Data)**:\nPrepares a structured payload for WordPress, including:\n- Categories and tags\n- Original database record reference\n- Error handling for malformed AI responses"
},
"typeVersion": 1
},
{
"id": "af0ac8f3-d7e9-4546-8b27-02c1d9629d23",
"name": "付箋3",
"type": "n8n-nodes-base.stickyNote",
"position": [
304,
-320
],
"parameters": {
"color": 5,
"width": 432,
"height": 720,
"content": "## 4. Publishing & Database Update\n\n**WordPress Publisher (✍️ WordPress Publisher)**: Publishes the formatted blog content to WordPress with proper categories, tags, and meta data.\n\n**Database Update (💾 Update Database)**: After successful publishing, updates the original record to:\n- Mark it as processed\n- Store WordPress post ID and URL\n- Record processing timestamp\n\n**Purpose**: Ensures content is live and database stays synchronized."
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "00000000-0000-0000-0000-000000000000",
"connections": {
"3254f143-fe85-49c8-a454-bb9729fd77dc": {
"ai_languageModel": [
[
{
"node": "cdacc933-4448-40b8-a9c5-242bf766d62a",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"7fbc5898-0f88-46e8-96ce-e4e215122974": {
"main": [
[
{
"node": "291e2ca0-6eb2-4e69-a147-2369e7f27257",
"type": "main",
"index": 0
}
]
]
},
"946b27ee-37ea-4b82-867b-624f281727d3": {
"main": [
[]
]
},
"057ddc57-2019-4cad-acdd-a3a69976512d": {
"main": [
[
{
"node": "a2eeca41-110d-4c61-856d-409e8ce0661f",
"type": "main",
"index": 0
}
]
]
},
"dde2cc13-b8a2-4771-beb6-09e7fc31a352": {
"main": [
[
{
"node": "cdacc933-4448-40b8-a9c5-242bf766d62a",
"type": "main",
"index": 0
}
],
[]
]
},
"cdacc933-4448-40b8-a9c5-242bf766d62a": {
"main": [
[
{
"node": "057ddc57-2019-4cad-acdd-a3a69976512d",
"type": "main",
"index": 0
}
]
]
},
"a2eeca41-110d-4c61-856d-409e8ce0661f": {
"main": [
[
{
"node": "946b27ee-37ea-4b82-867b-624f281727d3",
"type": "main",
"index": 0
}
]
]
},
"291e2ca0-6eb2-4e69-a147-2369e7f27257": {
"main": [
[
{
"node": "dde2cc13-b8a2-4771-beb6-09e7fc31a352",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - コンテンツ作成, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
LeadFusion - AIリードエンリッチメントワークフロー
GPT-4oを活用したAIリードスコアリングとエンリッチメント(MailchimpからHubSpotおよびPipedriveへ)
If
Code
Hubspot
+
If
Code
Hubspot
13 ノードAvkash Kakdiya
コンテンツ作成
コンテンツジェネレーター v3
AI驱动ブログ自動化:使用GPT-4生成并公開SEO記事至WordPressとTwitter
If
Set
Code
+
If
Set
Code
144 ノードJay Emp0
コンテンツ作成
キーワードからGPT-5とfal.ai画像を使ってWordPressまで自動SEOブログ生成のプロセス
GPT-5とfal.ai画像を使用したキーワードからWordPressへのSEOブログ自動化プロセス
Set
Code
Wait
+
Set
Code
Wait
96 ノードPaul
コンテンツ作成
WordPressブログの自動化プロフェッショナル版(先端研究)v2.1マーケットプラグイン
GPT-4o、Perplexity AI、そして多言語対応を使ったSEO最適化ブログ作成の自動化
If
Set
Xml
+
If
Set
Xml
125 ノードDaniel Ng
コンテンツ作成
YouTube 動画に基づく自律ブログ公開
YouTube 動画から ChatGPT、Sheets、Apify、Pexels、WordPress を使用してブログの自主公開
If
Set
Code
+
If
Set
Code
80 ノードOriol Seguí
コンテンツ作成
完全な B2B セールスフロー:Apollo リード生成、Mailgun 外信、および AI 返信管理
完全なB2Bセールスフロー:Apolloリード生成、Mailgunアウト Reach、AI返信管理
If
Set
Code
+
If
Set
Code
116 ノードPaul
コンテンツ作成
ワークフロー情報
難易度
中級
ノード数12
カテゴリー2
ノードタイプ8
作成者
Avkash Kakdiya
@itechnotion🚀 Founder of iTechNotion — we build custom AI-powered automation workflows for startups, agencies, and founders. 💡 Specializing in agentic AI systems, content automation, sales funnels, and digital workers. 🔧 14+ years in tech | Building scalable no-code/low-code solutions using n8n, OpenAI, and other API-first tools. 📬 Let’s automate what slows you down.
外部リンク
n8n.ioで表示 →
このワークフローを共有