AutomationFlowsContent & Video › Create SEO Blog Drafts in WordPress from Trending Topics

Create SEO Blog Drafts in WordPress from Trending Topics

Original n8n title: Create SEO Blog Drafts in Wordpress From Trending Topics with Perplexity and Huggingface

ByNayankumar Thakor @nayanthakor on n8n.io

Automatically discover trending developer and security topics, generate SEO-optimized blog posts, and publish them to WordPress as drafts — complete with AI-generated featured images. Discover trends — Perplexity AI identifies the hottest topic from the last 24-48 hours Queue…

Event trigger★★★★☆ complexity18 nodesWordPressHTTP RequestPerplexityGoogle Sheets
Content & Video Trigger: Event Nodes: 18 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #12386 — we link there as the canonical source.

This workflow follows the Google Sheets → HTTP Request 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 →

Download .json
{
  "nodes": [
    {
      "id": "1bf916c9-017b-4bce-8adc-30aac2f7a10a",
      "name": "When clicking 'Execute workflow'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        752,
        -288
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "8da0df60-1ffa-4735-9ad2-b7f6ee3b0515",
      "name": "Parse Content from string to JSON",
      "type": "n8n-nodes-base.code",
      "position": [
        2160,
        -288
      ],
      "parameters": {
        "jsCode": "function parseJSONString(jsonString) {\n  try {\n    let cleanString = jsonString.trim()\n      .replace(/^```json\\n?/g, '')\n      .replace(/\\n?```$/g, '')\n      .trim();\n\n    \n    const parsedData = JSON.parse(cleanString);\n\n    if (typeof parsedData !== 'object' || parsedData === null) {\n      return {\n        success: false,\n        error: \"Parsed data is not a valid object\",\n        data: null\n      };\n    }\n\n    return {\n      success: true,\n      error: null,\n      data: parsedData\n    };\n  } catch (error) {\n    return {\n      success: false,\n      error: error.message,\n      data: null\n    };\n  }\n}\n\nreturn parseJSONString($input.first().json.choices[0].message.content);"
      },
      "typeVersion": 2,
      "alwaysOutputData": false
    },
    {
      "id": "c5efa66e-4846-4468-80fc-97eabed55657",
      "name": "Create a post",
      "type": "n8n-nodes-base.wordpress",
      "position": [
        960,
        0
      ],
      "parameters": {
        "title": "={{ $json.title }}",
        "additionalFields": {
          "status": "draft",
          "content": "={{ $json.content }}",
          "authorId": 4
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e77b9ec4-6ac6-451e-aa4d-c67c805ab65e",
      "name": "Update name and extension of image",
      "type": "n8n-nodes-base.code",
      "position": [
        1424,
        0
      ],
      "parameters": {
        "jsCode": "// Fix FLUX binary filename/extension\nconst inputBinary = $input.first().binary.data; // Get FLUX binary\n\nif (inputBinary) {\n  // Override bad FLUX metadata\n  const newItem = {\n    json: $input.first().json, // Keep JSON data\n    binary: {\n      data: {\n        ...inputBinary, // Keep original binary content\n        fileName: 'generated-image.jpg', // Fixed name\n        fileExtension: 'jpg',            // Fixed extension\n        mimeType: 'image/jpeg'           // Fixed MIME\n      }\n    }\n  };\n  return [newItem];\n} else {\n  throw new Error('No binary data found from FLUX');\n}\n"
      },
      "typeVersion": 2
    },
    {
      "id": "9b582c7e-5863-40f2-b47b-d0bb8573ec64",
      "name": "Upload image to WP media Library",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1648,
        0
      ],
      "parameters": {
        "url": "=https://your-site.com/wp-json/wp/v2/media",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "binaryData",
        "sendHeaders": true,
        "authentication": "predefinedCredentialType",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Disposition",
              "value": "=attachment; filename={{$binary.data.fileName}}.{{ $binary.data.fileExtension }}"
            },
            {
              "name": "Content-Type",
              "value": "=application/octet-stream"
            }
          ]
        },
        "inputDataFieldName": "=data",
        "nodeCredentialType": "wordpressApi"
      },
      "typeVersion": 4.3
    },
    {
      "id": "559a37e9-e060-45e3-8d61-397920414ba1",
      "name": "Assign image to an article as a Featured image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1872,
        0
      ],
      "parameters": {
        "url": "=https://your-site.com/wp-json/wp/v2/posts/{{ $('Create a post').item.json.id }}",
        "method": "PUT",
        "options": {},
        "jsonBody": "={\n  \"featured_media\": {{ $json.id }}\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "wordpressApi"
      },
      "typeVersion": 4.3
    },
    {
      "id": "1a35e95e-57cd-4e53-9430-43fd3b9d8ba7",
      "name": "Find top trending topics",
      "type": "n8n-nodes-base.perplexity",
      "position": [
        976,
        -288
      ],
      "parameters": {
        "options": {},
        "messages": {
          "message": [
            {
              "content": "=IMPORTANT:\n- Do NOT include citations, references, footnotes, or bracketed numbers like [1], [2], (1), or similar.\n- Do NOT include source markers anywhere in the output.\n- The output must be citation-free and clean JSON only.\n\nYou are a real-time trend analyzer. Search current popular and authoritative sources relevant to the specified industry, such as major news sites, community forums, social media platforms, trend aggregators, and official updates, to identify the most important topic in the last 24\u201348 hours within the given sector: [Sector of choice].\n\nReturn ONE topic ranked by:\n\nMajor breaking news or critical alerts (e.g., security incidents, regulatory changes, major product recalls)\n\nSignificant product releases, version updates, or launches\n\nHighly viral discussions or debates (e.g., >500+ mentions across authoritative platforms)\n\nFormat your answer exactly as:\n\nTopic: [Specific title]\nSector: [Sector of choice]\nWhy hot: [2 sentences with clear evidence: citations, engagement metrics, official sources]\nActionable angle: [1 sentence on what relevant stakeholders should do]\nPublish title: [SEO-optimized headline]\n\nDo not include multiple topics. Focus only on the most verifiable, urgent, and actionable trend.\n\nIMPORTANT:\n- Do NOT include citations, references, footnotes, or bracketed numbers like [1], [2], (1), or similar.\n- Do NOT include source markers anywhere in the output.\n- The output must be citation-free and clean JSON only.\n\nFinal output rules:\n- Return ONLY valid JSON\n- NO citations\n- NO bracketed numbers\n- NO references\n- NO explanations outside JSON"
            }
          ]
        },
        "requestOptions": {}
      },
      "typeVersion": 1
    },
    {
      "id": "84b79e05-ae29-4647-ac3e-d566c2263b55",
      "name": "Select a clean trending topic",
      "type": "n8n-nodes-base.code",
      "position": [
        1200,
        -288
      ],
      "parameters": {
        "jsCode": "// Get the input data from the previous node\nconst inputData = $input.first().json;\n\n// Extract the search_results array\nconst searchResults = inputData.search_results;\n\n// Validate that search results exist\nif (!searchResults || searchResults.length === 0) {\n  throw new Error('No search results found in input data');\n}\n\n// Select a random index from the search results\nconst randomIndex = Math.floor(Math.random() * searchResults.length);\n\n// Get the random topic\nconst selectedTopic = searchResults[randomIndex];\n\n// Return the selected topic as the output (n8n standard format)\nreturn [{ json: selectedTopic }];"
      },
      "typeVersion": 2
    },
    {
      "id": "39c4fc04-9a02-45a6-be16-031c7fdc1902",
      "name": "Add topic to Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "notes": "Replace YOUR_GOOGLE_SHEET_ID with your own Google Sheet ID.",
      "position": [
        1488,
        -288
      ],
      "parameters": {
        "columns": {
          "value": {
            "Topic": "={{ $json.snippet }}",
            "is_generated": "0"
          },
          "schema": [
            {
              "id": "Topic",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Topic",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "is_generated",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "is_generated",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "Sheet1",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID/edit#Sheet1",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_GOOGLE_SHEET_ID",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID/edit?usp=drivesdk",
          "cachedResultName": "MyArticles"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "c72691df-220a-488b-ab9f-cf28a0e78a1f",
      "name": "Get most recent topics from Google Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1712,
        -288
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "0",
              "lookupColumn": "is_generated"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "Sheet1",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID/edit#Sheet1",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_GOOGLE_SHEET_ID",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID/edit?usp=drivesdk",
          "cachedResultName": "MyArticles"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "877d021b-cb3d-44de-8987-85d296cc024c",
      "name": "Generate content and image prompt using Perplexity AI",
      "type": "n8n-nodes-base.perplexity",
      "position": [
        1936,
        -288
      ],
      "parameters": {
        "model": "sonar-pro",
        "options": {},
        "messages": {
          "message": [
            {
              "content": "=You are an expert content generator. Based on the topic I provide, generate a well-structured JSON object containing all the elements needed for a high-quality blog post.\n\nTopic: {{ $json.Topic }}\n\nPlease respond strictly in JSON format, with the following structure:\n\n{\n  \"row_number\": {{ $json.row_number }},\n  \"Topic\": {{ $json.Topic }}\n  \"title\": \"Action Required: Please Provide Topic\",\n  \"summary\": \"This is a template response. To generate actual blog content, please provide the specific topic you want covered in the 'Topics' field of your JSON input.\",\n  \"keywords\": [\"prompt\", \"template\", \"topic-required\"],\n  \"image_prompt\": \"A minimalist illustration showing a form with empty fields waiting to be filled, representing a prompt awaiting input parameters.\",\n  \"sections\": [\n    {\n      \"heading\": \"How to Use This Prompt\",\n      \"content\": \"<p>To generate blog content, send a JSON object with the following structure:</p><pre><code>{\\n  \\\"row_number\\\": 1,\\n  \\\"Topics\\\": \\\"Your specific topic here\\\"\\n}</code></pre><p>Replace \\\"Your specific topic here\\\" with the subject you want the blog post to cover.</p>\"\n    },\n    {\n      \"heading\": \"Example\",\n      \"content\": \"<p>For example, to get a blog post about WordPress security:</p><pre><code>{\\n  \\\"row_number\\\": 1,\\n  \\\"Topics\\\": \\\"WordPress Security Best Practices for 2026\\\"\\n}</code></pre>\"\n    }\n  ],\n  \"additional_elements\": {\n    \"call_to_action\": \"Provide your topic in the Topics field to receive your customized blog post JSON.\",\n    \"meta_description\": \"Template response for blog post generator awaiting topic input.\",\n    \"related_topics\": [\"prompt-engineering\", \"json-format\", \"content-generation\"]\n  }\n}\n\nMake sure all HTML is semantic (using <h2>, <p>, <ul>, etc.) and ready to embed on a blog platform. Avoid markdown. Do not include explanations outside the JSON object. Do not include citation counts at the end of <p> tags."
            }
          ]
        },
        "requestOptions": {}
      },
      "typeVersion": 1
    },
    {
      "id": "c42fe286-494b-4654-96c3-1c8d88cc7edb",
      "name": "Update Google Sheet with generated content",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        736,
        0
      ],
      "parameters": {
        "columns": {
          "value": {
            "title": "={{ $json.data.title }}",
            "content": "={{ $json.data.sections[0].heading }}{{ $json.data.sections[0].content }}{{ $json.data.sections[1].heading }}{{ $json.data.sections[1].content }}{{ $json.data.sections[2].heading }}{{ $json.data.sections[2].content }}{{ $json.data.sections[3].heading }}{{ $json.data.sections[3].content }}{{ $json.data.sections[4].heading }}{{ $json.data.sections[4].content }}",
            "keywords": "={{ $json.data.keywords.join() }}",
            "meta_title": "={{ $json.data.Topic }}",
            "row_number": "={{ $json.data.row_number }}",
            "meta_description": "={{ $json.data.additional_elements.meta_description }}"
          },
          "schema": [
            {
              "id": "Topic",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Topic",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "is_generated",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "is_generated",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "title",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "meta_title",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "meta_title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "content",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "content",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "meta_description",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "meta_description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "keywords",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "keywords",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "image_url",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "image_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "is_published",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "is_published",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "Sheet1",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID/edit#Sheet1",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "YOUR_GOOGLE_SHEET_ID",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/YOUR_GOOGLE_SHEET_ID/edit?usp=drivesdk",
          "cachedResultName": "MyArticles"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "5956316f-3859-4122-8443-aebf27fee08b",
      "name": "Generate featured image using HuggingFace FLUX",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1200,
        0
      ],
      "parameters": {
        "url": "https://router.huggingface.co/hf-inference/models/black-forest-labs/FLUX.1-schnell",
        "method": "POST",
        "options": {
          "response": {
            "response": {
              "responseFormat": "file"
            }
          }
        },
        "jsonBody": "={\n  \"inputs\": \"{{ $('Parse Content from string to JSON').item.json.data.image_prompt }}\"\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            },
            {
              "name": "Authorization",
              "value": "Bearer YOUR_TOKEN_HERE"
            },
            {
              "name": "Accept",
              "value": "image/png"
            }
          ]
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "e05330af-2f47-47ff-9bfc-7a2312b7dc70",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -16,
        -384
      ],
      "parameters": {
        "width": 684,
        "height": 572,
        "content": "## Publish WordPress Blog Posts from Trending Topics with Perplexity, Google Sheets and HuggingFace\n\n### How it works\n1. **Discover trends** \u2014 Perplexity AI finds the hottest developer/security topic from the last 24-48 hours\n2. **Queue topics** \u2014 Selected topics are saved to Google Sheets for tracking\n3. **Generate content** \u2014 Perplexity creates SEO-optimized blog posts with titles, sections, and keywords\n4. **Create draft** \u2014 Content is published as a WordPress draft for review\n5. **Generate image** \u2014 HuggingFace FLUX creates a featured image from an AI prompt\n6. **Attach media** \u2014 The image is uploaded and assigned to the post\n\n### Setup steps\n1. Add credentials: **Perplexity AI**, **Google Sheets**, **WordPress**, **HuggingFace**\n2. Create a Google Sheet with columns: `Topic`, `is_generated`, `title`, `content`, `keywords`, `meta_description`\n3. Replace `YOUR_GOOGLE_SHEET_ID` in the Google Sheets nodes\n4. Replace `your-site.com` with your WordPress site URL\n5. Replace `YOUR_TOKEN_HERE` with your HuggingFace API token\n6. Update the `authorId` in the WordPress node to match your author"
      },
      "typeVersion": 1
    },
    {
      "id": "82238abd-74c0-4823-a84b-1ecdff0c2498",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        688,
        -384
      ],
      "parameters": {
        "color": 6,
        "width": 724,
        "height": 276,
        "content": "### \ud83d\udd0d Trend Discovery\nPerplexity searches for breaking news and viral topics, then selects one for content generation."
      },
      "typeVersion": 1
    },
    {
      "id": "c92476e2-de69-4740-964a-cff0789cb67a",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1440,
        -384
      ],
      "parameters": {
        "color": 6,
        "width": 908,
        "height": 276,
        "content": "### \u270d\ufe0f Content Generation\nTopics are queued in Sheets, then Perplexity generates full blog content with SEO metadata. The JSON is parsed and saved back."
      },
      "typeVersion": 1
    },
    {
      "id": "50728ace-6689-4369-9a4a-4b777ba0bcb7",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        688,
        -96
      ],
      "parameters": {
        "color": 6,
        "width": 400,
        "height": 276,
        "content": "### \ud83d\udcdd WordPress Publishing\nCreates a draft post with the generated title and content."
      },
      "typeVersion": 1
    },
    {
      "id": "89660276-c432-463f-a535-0363bf59a1f8",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1136,
        -96
      ],
      "parameters": {
        "color": 6,
        "width": 1032,
        "height": 276,
        "content": "### \ud83d\uddbc\ufe0f Featured Image\nFLUX generates an image, which is uploaded to WordPress and set as the featured media."
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Create a post": {
      "main": [
        [
          {
            "node": "Generate featured image using HuggingFace FLUX",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Find top trending topics": {
      "main": [
        [
          {
            "node": "Select a clean trending topic",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Add topic to Google Sheets": {
      "main": [
        [
          {
            "node": "Get most recent topics from Google Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Select a clean trending topic": {
      "main": [
        [
          {
            "node": "Add topic to Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload image to WP media Library": {
      "main": [
        [
          {
            "node": "Assign image to an article as a Featured image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking 'Execute workflow'": {
      "main": [
        [
          {
            "node": "Find top trending topics",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Content from string to JSON": {
      "main": [
        [
          {
            "node": "Update Google Sheet with generated content",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update name and extension of image": {
      "main": [
        [
          {
            "node": "Upload image to WP media Library",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get most recent topics from Google Sheet": {
      "main": [
        [
          {
            "node": "Generate content and image prompt using Perplexity AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update Google Sheet with generated content": {
      "main": [
        [
          {
            "node": "Create a post",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate featured image using HuggingFace FLUX": {
      "main": [
        [
          {
            "node": "Update name and extension of image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate content and image prompt using Perplexity AI": {
      "main": [
        [
          {
            "node": "Parse Content from string to JSON",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Automatically discover trending developer and security topics, generate SEO-optimized blog posts, and publish them to WordPress as drafts — complete with AI-generated featured images. Discover trends — Perplexity AI identifies the hottest topic from the last 24-48 hours Queue…

Source: https://n8n.io/workflows/12386/ — original creator credit. Request a take-down →

More Content & Video workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Content & Video

100% autonomous workflow that transforms YouTube videos into unique, high-quality, SEO-optimized blog articles and automatically publishes them to WordPress. No human intervention required: it uses Yo

HTTP Request, Stop And Error, Google Sheets +8
Content & Video

Enrich Faq Sections On Your Website Pages At Scale With Ai. Uses manualTrigger, lmChatOpenAi, splitInBatches, splitOut. Event-driven trigger; 36 nodes.

OpenAI Chat, Google Drive, Google Sheets +6
Content & Video

Strapi Splitout. Uses manualTrigger, lmChatOpenAi, splitInBatches, splitOut. Event-driven trigger; 36 nodes.

OpenAI Chat, Google Drive, Google Sheets +6
Content & Video

2434. Uses lmChatOpenAi, googleDrive, googleSheets, executeWorkflowTrigger. Event-driven trigger; 36 nodes.

OpenAI Chat, Google Drive, Google Sheets +6
Content & Video

This n8n workflow template lets you easily generate comprehensive FAQ (Frequently Asked Questions) content for multiple services (or any items or pages you need to add the FAQs to). Simply provide the

OpenAI Chat, Google Drive, Google Sheets +6