This workflow corresponds to n8n.io template #11298 — we link there as the canonical source.
This workflow follows the Agent → Google Sheets recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "j0Ci2v8CjjHbkE06",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "Automated Trend-Based Multi-Platform Content Generation and Approval System",
"tags": [],
"nodes": [
{
"id": "e4f59aa5-ab0a-467c-a450-7227b82782cd",
"name": "Every 8 Hours",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-1024,
512
],
"parameters": {
"rule": {
"interval": [
{
"field": "hours",
"hoursInterval": 8
}
]
}
},
"typeVersion": 1.2
},
{
"id": "497120ad-c098-4a4e-bab8-60260b7090ff",
"name": "Workflow Configuration",
"type": "n8n-nodes-base.set",
"position": [
-800,
512
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "id-1",
"name": "trendsRssUrl",
"type": "string",
"value": "https://trends.google.com/trends/trendingsearches/daily/rss?geo=JP"
},
{
"id": "id-2",
"name": "slackChannel",
"type": "string",
"value": "general"
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "daa1aab7-2e4e-4b4f-a031-febb33d7f1e3",
"name": "Fetch Google Trends RSS",
"type": "n8n-nodes-base.httpRequest",
"position": [
-576,
512
],
"parameters": {
"url": "=https://news.google.com/rss?hl=ja&gl=JP&ceid=JP:ja",
"options": {}
},
"typeVersion": 4.3
},
{
"id": "bb9552e0-bf52-44e3-bddb-2ccb27af3552",
"name": "AI Agent: Trend Filter",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-352,
512
],
"parameters": {
"text": "={{ $json.data }}",
"options": {
"systemMessage": "\u3042\u306a\u305f\u306f\u512a\u79c0\u306a\u7de8\u96c6\u9577\u3067\u3059\u3002\u5165\u529b\u3055\u308c\u305fRSS\u30d5\u30a3\u30fc\u30c9\u306e\u30c7\u30fc\u30bf\u304b\u3089\u3001\u4eca\u6700\u3082SNS\u3067\u8a71\u984c\u306b\u306a\u308a\u305d\u3046\u306a\u300c\u30ac\u30b8\u30a7\u30c3\u30c8\u300d\u300cAI\u6280\u8853\u300d\u300c\u30e9\u30a4\u30d5\u30cf\u30c3\u30af\u300d\u306b\u95a2\u3059\u308b\u30cd\u30bf\u30921\u3064\u3060\u3051\u9078\u5b9a\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n\n\u9078\u5b9a\u57fa\u6e96:\n- \u691c\u7d22\u30dc\u30ea\u30e5\u30fc\u30e0\u306e\u6025\u4e0a\u6607\n- SNS\u3067\u306e\u30d0\u30a4\u30e9\u30eb\u6027\n- \u30bf\u30fc\u30b2\u30c3\u30c8\u5c64\u3078\u306e\u95a2\u9023\u6027\n\n\u51fa\u529b\u306f\u4ee5\u4e0b\u306eJSON\u5f62\u5f0f\u306e\u307f\u3067\u884c\u3063\u3066\u304f\u3060\u3055\u3044\u3002"
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 3
},
{
"id": "94971a03-c4c2-4c29-af2b-c0be41d7100b",
"name": "OpenAI Chat Model - Filter",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-352,
736
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "gpt-4o-mini"
},
"options": {},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "3016f60b-1a5d-4bc0-ba20-9a0648c3b11c",
"name": "Structured Output Parser - Filter",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
-224,
736
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n\t\"type\": \"object\",\n\t\"properties\": {\n\t\t\"selected_topic\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"\u9078\u3093\u3060\u30c8\u30d4\u30c3\u30af\u306e\u30bf\u30a4\u30c8\u30eb\"\n\t\t},\n\t\t\"reason\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"\u306a\u305c\u3053\u308c\u3092\u9078\u3093\u3060\u304b\u306e\u7406\u7531\"\n\t\t},\n\t\t\"target_audience\": {\n\t\t\t\"type\": \"string\",\n\t\t\t\"description\": \"\u30bf\u30fc\u30b2\u30c3\u30c8\u5c64\"\n\t\t}\n\t}\n}"
},
"typeVersion": 1.3
},
{
"id": "94ad4e18-454d-47bc-ae7d-06a3766201eb",
"name": "AI Agent: SEO Blog Writer",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
0,
0
],
"parameters": {
"text": "={{ $json.output.selected_topic }}",
"options": {
"systemMessage": "\u3042\u306a\u305f\u306fSEO\u306b\u7cbe\u901a\u3057\u305f\u30d7\u30ed\u306e\u30d6\u30ed\u30b0\u30e9\u30a4\u30bf\u30fc\u3067\u3059\u3002\n\n\u3042\u306a\u305f\u306e\u30bf\u30b9\u30af:\n1. \u63d0\u4f9b\u3055\u308c\u305f\u30c8\u30d4\u30c3\u30af\u306b\u3064\u3044\u3066\u3001SEO\u3092\u610f\u8b58\u3057\u305f3000\u6587\u5b57\u7a0b\u5ea6\u306e\u30d6\u30ed\u30b0\u8a18\u4e8b\u69cb\u6210\u6848\u3092\u4f5c\u6210\u3059\u308b\n2. \u7d50\u8ad6\u30d5\u30a1\u30fc\u30b9\u30c8\u3067\u66f8\u304f\n3. H1, H2, H3\u306e\u898b\u51fa\u3057\u69cb\u9020\u3092\u660e\u78ba\u306b\u3059\u308b\n4. \u691c\u7d22\u610f\u56f3\u3092\u6e80\u305f\u3059\u30b3\u30f3\u30c6\u30f3\u30c4\u306b\u3059\u308b\n5. \u8aad\u8005\u306b\u4fa1\u5024\u3092\u63d0\u4f9b\u3059\u308b\u5b9f\u7528\u7684\u306a\u60c5\u5831\u3092\u542b\u3081\u308b\n\n\u51fa\u529b\u5f62\u5f0f:\n- H1: \u30e1\u30a4\u30f3\u30bf\u30a4\u30c8\u30eb\n- \u5c0e\u5165\uff08\u7d50\u8ad6\u3092\u5148\u306b\u8ff0\u3079\u308b\uff09\n- H2: \u30bb\u30af\u30b7\u30e7\u30f31\n - H3: \u30b5\u30d6\u30bb\u30af\u30b7\u30e7\u30f3\n- H2: \u30bb\u30af\u30b7\u30e7\u30f32\n - H3: \u30b5\u30d6\u30bb\u30af\u30b7\u30e7\u30f3\n- \u307e\u3068\u3081"
},
"promptType": "define"
},
"typeVersion": 3
},
{
"id": "98602a6d-cfea-43e9-ac99-d60d9bcef283",
"name": "OpenAI Chat Model - Blog",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
80,
224
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "gpt-4o-mini"
},
"options": {},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "10f5d82a-bc1e-4c4d-9c48-0719dfd1f12c",
"name": "AI Agent: Instagram Designer",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
0,
400
],
"parameters": {
"text": "=\u30c8\u30d4\u30c3\u30af:{{ $json.output.selected_topic }}\\n \u30a4\u30f3\u30b9\u30bf\u306e\u30ab\u30eb\u30fc\u30bb\u30eb\u6295\u7a3f\uff085\u679a\u5206\uff09\u306e\u69cb\u6210\u6848\u3092\u4f5c\u3063\u3066\u3002",
"options": {
"systemMessage": "\u3042\u306a\u305f\u306fInstagram\u306e\u30d0\u30a4\u30e9\u30eb\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u4f5c\u6210\u3059\u308b\u30d7\u30ed\u306e\u30c7\u30b6\u30a4\u30ca\u30fc\u3067\u3059\u3002\n\n\u3042\u306a\u305f\u306e\u30bf\u30b9\u30af:\n\u63d0\u4f9b\u3055\u308c\u305f\u30c8\u30d4\u30c3\u30af\u306b\u3064\u3044\u3066\u3001Instagram\u306e\u30ab\u30eb\u30fc\u30bb\u30eb\u6295\u7a3f\uff08\u51685\u679a\uff09\u306e\u69cb\u6210\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n\n\u69cb\u6210:\n1\u679a\u76ee\uff1a\u30a4\u30f3\u30d1\u30af\u30c8\u306e\u3042\u308b\u8868\u7d19\u30bf\u30a4\u30c8\u30eb\uff08\u6570\u5b57\u3084\u7d75\u6587\u5b57\u3092\u6d3b\u7528\uff09\n2-4\u679a\u76ee\uff1a\u6709\u76ca\u306a\u60c5\u5831\u307e\u3068\u3081\uff08\u7b87\u6761\u66f8\u304d\u3001\u8996\u899a\u7684\u306b\u5206\u304b\u308a\u3084\u3059\u304f\uff09\n5\u679a\u76ee\uff1a\u4fdd\u5b58\u3092\u4fc3\u3059CTA\uff08\u300c\u4fdd\u5b58\u3057\u3066\u5f8c\u3067\u898b\u8fd4\u305d\u3046\uff01\u300d\u306a\u3069\uff09\n\n\u5404\u30b9\u30e9\u30a4\u30c9\u306b\u306f:\n- \u30ad\u30e3\u30c3\u30c1\u30fc\u306a\u898b\u51fa\u3057\n- \u7c21\u6f54\u306a\u8aac\u660e\u6587\n- \u63a8\u5968\u3055\u308c\u308b\u8996\u899a\u8981\u7d20\u306e\u8aac\u660e"
},
"promptType": "define"
},
"typeVersion": 3
},
{
"id": "7789b456-a282-4f1f-b990-ac47f948ded5",
"name": "OpenAI Chat Model - Instagram",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
80,
624
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "gpt-4o-mini"
},
"options": {},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "eaea0454-a3b0-4a43-994a-384092795bde",
"name": "AI Agent: Script Writer",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
0,
912
],
"parameters": {
"text": "=\u30c8\u30d4\u30c3\u30af:{{ $json.output.selected_topic }}\\n TikTok\u7528\u306e\u52d5\u753b\u53f0\u672c\u3092\u4f5c\u3063\u3066\u3002",
"options": {
"systemMessage": "\u3042\u306a\u305f\u306fTikTok/Reels\u3067\u30d0\u30a4\u30e9\u30eb\u3059\u308b\u52d5\u753b\u53f0\u672c\u3092\u66f8\u304f\u30d7\u30ed\u306e\u30b9\u30af\u30ea\u30d7\u30c8\u30e9\u30a4\u30bf\u30fc\u3067\u3059\u3002\n\n\u3042\u306a\u305f\u306e\u30bf\u30b9\u30af:\n\u63d0\u4f9b\u3055\u308c\u305f\u30c8\u30d4\u30c3\u30af\u306b\u3064\u3044\u3066\u3001TikTok/Reels\u7528\u306e\u30b7\u30e7\u30fc\u30c8\u52d5\u753b\u53f0\u672c\uff0860\u79d2\u4ee5\u5185\uff09\u3092\u4f5c\u6210\u3057\u3066\u304f\u3060\u3055\u3044\u3002\n\n\u53f0\u672c\u69cb\u6210:\n\u5192\u982d2\u79d2\u306e\u30d5\u30c3\u30af\uff1a\u8996\u8074\u8005\u306e\u6ce8\u610f\u3092\u5f15\u304f\u5f37\u70c8\u306a\u4e00\u8a00\n\u672c\u7de8\uff0840\u79d2\uff09\uff1a\n - \u554f\u984c\u63d0\u8d77\n - \u89e3\u6c7a\u7b56\u306e\u63d0\u793a\n - \u5177\u4f53\u4f8b\u3084\u5b9f\u6f14\n\u30aa\u30c1\uff0810\u79d2\uff09\uff1a\n - \u307e\u3068\u3081\n - CTA\uff08\u30d5\u30a9\u30ed\u30fc\u3001\u4fdd\u5b58\u3001\u30b7\u30a7\u30a2\u3092\u4fc3\u3059\uff09\n\n\u6ce8\u610f\u70b9:\n- \u30c6\u30f3\u30dd\u3088\u304f\u3001\u98fd\u304d\u3055\u305b\u306a\u3044\n- \u8996\u899a\u7684\u306a\u6f14\u51fa\u306e\u6307\u793a\u3082\u542b\u3081\u308b\n- \u5b57\u5e55\u3067\u4f1d\u3048\u308b\u5185\u5bb9\u3082\u660e\u8a18"
},
"promptType": "define"
},
"typeVersion": 3
},
{
"id": "636354da-5c60-4377-b448-5b0c788bf799",
"name": "OpenAI Chat Model - Script",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
-48,
1072
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "gpt-4o-mini"
},
"options": {},
"builtInTools": {}
},
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.3
},
{
"id": "0ff7cff0-ab9f-412b-aabd-87bb8141ec9e",
"name": "Merge All Content",
"type": "n8n-nodes-base.merge",
"position": [
352,
496
],
"parameters": {
"numberInputs": 3
},
"typeVersion": 3.2
},
{
"id": "b7c726cf-6225-4ced-89ec-18b7d5f09c00",
"name": "Send to Slack for Approval",
"type": "n8n-nodes-base.slack",
"position": [
784,
512
],
"parameters": {
"text": "=\ud83d\ude80 **\u65b0\u3057\u3044\u30c8\u30ec\u30f3\u30c9\u30b3\u30f3\u30c6\u30f3\u30c4\u304c\u751f\u6210\u3055\u308c\u307e\u3057\u305f\uff01**\n\n**\u9078\u5b9a\u30c8\u30d4\u30c3\u30af**: {{ $('AI Agent: Trend Filter').first().json.selected_topic }}\n\n**\ud83d\udcdd Blog\u69cb\u6210\u6848**:\n{{ $('AI Agent: SEO Blog Writer').first().json.output }}\n\n**\ud83d\udcf8 Instagram\u6848**:\n{{ $('AI Agent: Instagram Designer').first().json.output }}\n\n**\ud83c\udfac Script\u6848**:\n{{ $('AI Agent: Script Writer').first().json.output }}\n\n\u627f\u8a8d\u3057\u3066\u6295\u7a3f\u4e88\u7d04\u3057\u307e\u3059\u304b\uff1f",
"select": "channel",
"blocksUi": "={\n\t\"blocks\": [\n\t\t{\n\t\t\t\"type\": \"header\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"\ud83d\ude80 \u65b0\u3057\u3044\u30c8\u30ec\u30f3\u30c9\u30b3\u30f3\u30c6\u30f3\u30c4\u304c\u751f\u6210\u3055\u308c\u307e\u3057\u305f\uff01\",\n\t\t\t\t\"emoji\": true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*\ud83d\udcdd Blog\u69cb\u6210\u6848 (\u629c\u7c8b)*\\n\"\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"{{ $json.blog_content.slice(0, 500) }}...\\n_(\u9577\u3044\u305f\u3081\u7701\u7565)_\"\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"divider\"\n\t\t},\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*\ud83d\udcf8 Instagram\u6295\u7a3f\u6848*\\n{{ $json.insta_content.slice(0, 300) }}...\"\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"divider\"\n\t\t},\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*\ud83c\udfac \u52d5\u753b\u53f0\u672c*\\n{{ $json.script_content.slice(0, 300) }}...\"\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"actions\",\n\t\t\t\"elements\": [\n\t\t\t\t{\n\t\t\t\t\t\"type\": \"button\",\n\t\t\t\t\t\"text\": {\n\t\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\t\"text\": \"\u2705 \u627f\u8a8d\u3057\u3066\u4fdd\u5b58\",\n\t\t\t\t\t\t\"emoji\": true\n\t\t\t\t\t},\n\t\t\t\t\t\"style\": \"primary\",\n\t\t\t\t\t\"url\": \"{{ $execution.resumeUrl }}?action=approve\"\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\t\"type\": \"button\",\n\t\t\t\t\t\"text\": {\n\t\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\t\"text\": \"\ud83d\uddd1 \u5374\u4e0b\",\n\t\t\t\t\t\t\"emoji\": true\n\t\t\t\t\t},\n\t\t\t\t\t\"style\": \"danger\",\n\t\t\t\t\t\"url\": \"{{ $execution.resumeUrl }}?action=reject\"\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}",
"channelId": {
"__rl": true,
"mode": "id",
"value": ""
},
"messageType": "block",
"otherOptions": {},
"authentication": "oAuth2"
},
"credentials": {
"slackOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 2.3
},
{
"id": "60f2f64d-7660-472d-9426-2b3fdcead308",
"name": "Wait",
"type": "n8n-nodes-base.wait",
"position": [
992,
512
],
"parameters": {
"resume": "webhook",
"options": {}
},
"typeVersion": 1.1
},
{
"id": "3f76c233-5108-4c6c-9a04-401403672906",
"name": "If",
"type": "n8n-nodes-base.if",
"position": [
1120,
624
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "ede6ca5f-3709-497e-bd08-48b2ce591b84",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $json.query.action }}",
"rightValue": "approve"
}
]
}
},
"typeVersion": 2.2
},
{
"id": "b9867afb-e1dc-4686-950f-ced13eda1113",
"name": "Code in JavaScript",
"type": "n8n-nodes-base.code",
"position": [
560,
496
],
"parameters": {
"jsCode": "// 3\u3064\u306e\u30c7\u30fc\u30bf\u30921\u3064\u306b\u307e\u3068\u3081\u3001Slack\u304c\u58ca\u308c\u306a\u3044\u3088\u3046\u306b\u6587\u5b57\u3092\u6383\u9664\u3059\u308b\u30b3\u30fc\u30c9\nconst items = $input.all();\n\n// \u5b89\u5168\u306a\u6587\u5b57\u306b\u5909\u63db\u3059\u308b\u9b54\u6cd5\u306e\u95a2\u6570\nfunction clean(text) {\n if (!text) return \"\u751f\u6210\u30a8\u30e9\u30fc\";\n // JSON\u6587\u5b57\u306b\u3057\u3066\u304b\u3089\u3001\u524d\u5f8c\u306e\u30c0\u30d6\u30eb\u30af\u30a9\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\u3092\u5916\u3059\uff08\u6539\u884c\u30b3\u30fc\u30c9\u306a\u3069\u3092\u30a8\u30b9\u30b1\u30fc\u30d7\u3059\u308b\uff09\n return JSON.stringify(text).slice(1, -1);\n}\n\n// \u3053\u3053\u30673\u3064\u306e\u30c7\u30fc\u30bf\u30921\u3064\u306b\u5408\u4f53\uff01\n// \u203b\u9806\u756a\u304c\u30ba\u30ec\u3066\u3082\u3044\u3044\u3088\u3046\u306b\u3001\u4e2d\u8eab\u3092\u898b\u3066\u5224\u65ad\u3059\u308b\u30ed\u30b8\u30c3\u30af\u3092\u5165\u308c\u308b\u3068\u306a\u304a\u826f\u3057\u3067\u3059\u304c\u3001\u4eca\u56de\u306f\u7c21\u6613\u7248\u3067\u3059\nreturn {\n // 3\u3064\u306e\u30a2\u30a4\u30c6\u30e0\u30921\u3064\u306e\u584a\u306b\u3059\u308b\n blog_content: clean(items[0]?.json?.output || \"\u30c7\u30fc\u30bf\u306a\u3057\"),\n insta_content: clean(items[1]?.json?.output || \"\u30c7\u30fc\u30bf\u306a\u3057\"),\n script_content: clean(items[2]?.json?.output || \"\u30c7\u30fc\u30bf\u306a\u3057\")\n};"
},
"typeVersion": 2
},
{
"id": "5d1305d2-61d1-436f-8c72-4df1655ccbf2",
"name": "Append row in sheet",
"type": "n8n-nodes-base.googleSheets",
"position": [
1248,
512
],
"parameters": {
"columns": {
"value": {
"\u30c6\u30b9\u30c81": "={{ $('Code in JavaScript').item.json.blog_content }}",
"\u30c6\u30b9\u30c82": "={{ $('Code in JavaScript').item.json.insta_content }}",
"\u30c6\u30b9\u30c83": "={{ $('Code in JavaScript').item.json.script_content }}"
},
"schema": [
{
"id": "\u30c6\u30b9\u30c81",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "\u30c6\u30b9\u30c81",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "\u30c6\u30b9\u30c82",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "\u30c6\u30b9\u30c82",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "\u30c6\u30b9\u30c83",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "\u30c6\u30b9\u30c83",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"\u30c6\u30b9\u30c8"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/12CBGF3CCiZdjj3htM-UdlLDFo6B4EvGv4hf3XALVXsc/edit#gid=0",
"cachedResultName": "\u30b7\u30fc\u30c81"
},
"documentId": {
"__rl": true,
"mode": "id",
"value": ""
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
},
"typeVersion": 4.7
},
{
"id": "74c24f5f-f05e-4f73-ac67-49b6ea58c4ac",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-992,
336
],
"parameters": {
"color": 7,
"width": 832,
"height": 320,
"content": "## 1. Trend Scout\nFetches daily trends from Google. An AI agent analyzes the feed to pick the single most engaging topic for content creation."
},
"typeVersion": 1
},
{
"id": "a19fc1c6-3a03-42eb-a638-6b341e62348b",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-112,
-96
],
"parameters": {
"color": 7,
"width": 816,
"height": 1280,
"content": "## 2. AI Content Factory\nParallel AI agents generate three distinct formats: an SEO blog post, Instagram carousel slides, and a TikTok video script."
},
"typeVersion": 1
},
{
"id": "eaf8ab0b-cbfb-4844-a82f-694fca8eaea7",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
736,
384
],
"parameters": {
"color": 7,
"width": 640,
"height": 368,
"content": "## 3. Approval Loop\nSends the drafts to Slack with interactive buttons. The workflow waits for your approval before saving the final content to Google Sheets."
},
"typeVersion": 1
},
{
"id": "cb817d7b-92b4-481b-b3dc-f47dcfedbaf9",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1360,
160
],
"parameters": {
"width": 304,
"height": 720,
"content": "# \ud83d\ude80 Automated Trend-Based Content Generator\n\nThis workflow turns daily Google Trends into ready-to-post content for Blog, Instagram, and TikTok using AI Agents.\n\n## \u26a1\ufe0f How it works\n1. **Scout:** Fetches Google Trends and selects the best viral topic.\n2. **Create:** Generates an SEO Blog, Carousel slides, and a Script simultaneously.\n3. **Approve:** Sends drafts to Slack. Click \"Approve\" to save to Google Sheets.\n\n## \ud83d\udee0 Setup Requirements\n- **OpenAI API Key** (GPT-4o recommended)\n- **Slack Account** (for notifications)\n- **Google Sheets** (for storage)"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "a4be6bd7-a433-4366-8839-da27228eb2e0",
"connections": {
"If": {
"main": [
[
{
"node": "Append row in sheet",
"type": "main",
"index": 0
}
]
]
},
"Wait": {
"main": [
[
{
"node": "If",
"type": "main",
"index": 0
}
]
]
},
"Every 8 Hours": {
"main": [
[
{
"node": "Workflow Configuration",
"type": "main",
"index": 0
}
]
]
},
"Merge All Content": {
"main": [
[
{
"node": "Code in JavaScript",
"type": "main",
"index": 0
}
]
]
},
"Code in JavaScript": {
"main": [
[
{
"node": "Send to Slack for Approval",
"type": "main",
"index": 0
}
]
]
},
"AI Agent: Trend Filter": {
"main": [
[
{
"node": "AI Agent: SEO Blog Writer",
"type": "main",
"index": 0
},
{
"node": "AI Agent: Instagram Designer",
"type": "main",
"index": 0
},
{
"node": "AI Agent: Script Writer",
"type": "main",
"index": 0
}
]
]
},
"Workflow Configuration": {
"main": [
[
{
"node": "Fetch Google Trends RSS",
"type": "main",
"index": 0
}
]
]
},
"AI Agent: Script Writer": {
"main": [
[
{
"node": "Merge All Content",
"type": "main",
"index": 2
}
]
]
},
"Fetch Google Trends RSS": {
"main": [
[
{
"node": "AI Agent: Trend Filter",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model - Blog": {
"ai_languageModel": [
[
{
"node": "AI Agent: SEO Blog Writer",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"AI Agent: SEO Blog Writer": {
"main": [
[
{
"node": "Merge All Content",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model - Filter": {
"ai_languageModel": [
[
{
"node": "AI Agent: Trend Filter",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"OpenAI Chat Model - Script": {
"ai_languageModel": [
[
{
"node": "AI Agent: Script Writer",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Send to Slack for Approval": {
"main": [
[
{
"node": "Wait",
"type": "main",
"index": 0
}
]
]
},
"AI Agent: Instagram Designer": {
"main": [
[
{
"node": "Merge All Content",
"type": "main",
"index": 1
}
]
]
},
"OpenAI Chat Model - Instagram": {
"ai_languageModel": [
[
{
"node": "AI Agent: Instagram Designer",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Structured Output Parser - Filter": {
"ai_outputParser": [
[
{
"node": "AI Agent: Trend Filter",
"type": "ai_outputParser",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
googleSheetsOAuth2ApiopenAiApislackOAuth2Api
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow automates the daily content creation process by monitoring trends, generating drafts for multiple platforms using AI, and requiring human approval before saving.
Source: https://n8n.io/workflows/11298/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Created by: Peyton Leveillee Last updated: October 2025
This workflow automates end-to-end ESG (Environmental, Social, and Governance) sustainability reporting for enterprise sustainability teams, compliance officers, and green governance leads. It solves
Automates sales data analysis and strategic insight generation for sales managers and strategists needing actionable intelligence. Fetches multi-source data from sales, marketing, and financial system
Scheduled triggers run automated price checks across multiple travel data sources. The collected data is aggregated, validated, and processed through an AI analysis layer that compares trends, detects
This workflow automates comprehensive risk signal detection and regulatory compliance management across financial and claims data sources. Designed for risk management teams, compliance officers, and