{
  "id": "IfGyCP3gPgpTWQnI",
  "name": "SEO & GEO Blog Engine: Research \u2192 4000+ Words \u2192 Images \u2192 Publish \u2192 Google Index",
  "tags": [
    {
      "id": "6nModdDgdkKLz1kZ",
      "name": "SEO",
      "createdAt": "2026-04-19T17:39:43.170Z",
      "updatedAt": "2026-04-19T17:39:43.170Z"
    },
    {
      "id": "DzdIsCvTKwlcHi0z",
      "name": "Blog",
      "createdAt": "2026-04-19T17:40:33.380Z",
      "updatedAt": "2026-04-19T17:40:33.380Z"
    },
    {
      "id": "4EG8uIkXC3nV9ErK",
      "name": "WordPress",
      "createdAt": "2026-04-19T17:40:20.382Z",
      "updatedAt": "2026-04-19T17:40:20.382Z"
    },
    {
      "id": "dCJcgTAGwCAIgldt",
      "name": "Marketing",
      "createdAt": "2026-04-19T17:40:24.953Z",
      "updatedAt": "2026-04-19T17:40:24.953Z"
    },
    {
      "id": "ypd5sBCiz6eTpDYg",
      "name": "GEO",
      "createdAt": "2026-04-19T17:40:27.820Z",
      "updatedAt": "2026-04-19T17:40:27.820Z"
    }
  ],
  "nodes": [
    {
      "id": "9e1ea1ed-99a0-49ca-9f1e-ba69fb6298eb",
      "name": "Setup Guide",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -928,
        -1488
      ],
      "parameters": {
        "color": 4,
        "width": 740,
        "height": 952,
        "content": "# \u2699\ufe0f BEFORE YOU START \u2014 Full Setup Guide\n\n## Step 1 \u2014 Create a Siah Account\nGo to **seosiah.com** \u2192 Sign up \u2192 Log in\n\n## Step 2 \u2014 Register Your Website\n`Dashboard \u2192 Websites \u2192 Add Website`\nFill in: site URL, name, industry, language, country.\n\u26a0\ufe0f **Required** :  the workflow uses your website ID. Without it, nothing works.\n\n## Step 3 \u2014 Get Your API Token\n`Dashboard \u2192 Settings \u2192 API Tab \u2192 Generate API Token`\n\u26a0\ufe0f The token is shown **only once** , copy it immediately and store it safely.\n\n## Step 4 \u2014 Configure the Webhook\n`Dashboard \u2192 Settings \u2192 API Tab \u2192 Webhook Configuration`\n1. Copy the **Webhook URL** from the Webhook node below (click it \u2192 copy Production URL)\n2. Paste it into Siah's Webhook URL field\n3. Save \u2192 copy the **Webhook Secret** shown\n4. Click **Test Webhook** to verify\n\n## Step 5 \u2014 Add Credentials in n8n\nIn n8n go to **Credentials** and create:\n- `HTTP Bearer Auth` \u2014 name it **SEOSIAH**, paste your API Token\n- `Google OAuth2` \u2014 connect your Google account (needs Indexing API access)\n\n## Step 6 \u2014 Set Your Website URL\nFind the **\"\ud83d\udc49 Set Your Website URL Here\"** node below\nReplace the placeholder with your exact website URL (same one you registered in Siah)\n\n## Step 7 \u2014 Activate\nSet your preferred schedule time in the **Schedule Trigger** node, then toggle the workflow ON."
      },
      "typeVersion": 1
    },
    {
      "id": "9dea5ee8-0a7c-4301-a3b0-48e5550bc30b",
      "name": "Flow 1 Info",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -128,
        -1488
      ],
      "parameters": {
        "color": 6,
        "width": 1740,
        "height": 956,
        "content": "## \ud83d\udd01 FLOW 1 \u2014 Daily Auto-Generation\nRuns every morning at 08:00.\nFetches your website's AI-suggested topics from Siah,\npicks one randomly, and triggers full blog generation.\n\nGeneration includes (handled by Siah's 18-agent engine):\n- Keyword research & SEO structure\n- 4000+ word human-tone article\n- AI-generated images\n- Internal & external links\n- Slug + meta title + meta description\n\nThe generated blog is sent to Flow 2 via Webhook."
      },
      "typeVersion": 1
    },
    {
      "id": "36585d8b-c3dc-4a35-96b0-8115471c4f73",
      "name": "Flow 2 Info",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -128,
        -480
      ],
      "parameters": {
        "color": 6,
        "width": 1740,
        "height": 756,
        "content": "## \ud83d\udce1 FLOW 2 \u2014 Publish + Google Index\nTriggered by Siah's webhook when a blog is ready.\n\n1. **Publishes** the blog to your CMS via Siah API\n2. **Waits** 2 minutes for the CMS to process\n3. **Submits** the new URL to Google Indexing API\n   \u2192 Google crawls it immediately, no waiting"
      },
      "typeVersion": 1
    },
    {
      "id": "f04836ca-6d10-4390-929b-84e763376d25",
      "name": "Webhook Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -48,
        -208
      ],
      "parameters": {
        "color": 7,
        "width": 424,
        "height": 432,
        "content": "## \ud83d\udce1 Webhook Node\n**After activating the workflow:**\n1. Click this node\n2. Copy the **Production Webhook URL**\n3. Paste it in Siah:\n   `Settings \u2192 API \u2192 Webhook Configuration`\n4. Save and note the Webhook Secret"
      },
      "typeVersion": 1
    },
    {
      "id": "88e1d030-d3d5-45cd-92ca-b1816b3518c9",
      "name": "Siah Credential Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        400,
        -1120
      ],
      "parameters": {
        "color": 7,
        "width": 1004,
        "height": 520,
        "content": "## \ud83d\udd11 Siah API Credential\nThis node uses **HTTP Bearer Auth**.\n\nIn n8n Credentials, create:\n- Type: `HTTP Bearer Auth`\n- Name: `SEOSIAH`\n- Token: your API token from\n  `Siah \u2192 Settings \u2192 API \u2192 Generate Token`\n\nApply the same credential to ALL nodes\nthat call seosiah.com (4 nodes total)."
      },
      "typeVersion": 1
    },
    {
      "id": "f8e2561d-9908-49c2-b434-6934e8bc3f78",
      "name": "Google Indexing Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1184,
        -256
      ],
      "parameters": {
        "width": 364,
        "height": 488,
        "content": "## \ud83c\udf10 Google Indexing API\nThis node uses **Google OAuth2**.\n\nSetup:\n1. In Google Cloud Console, enable the **Indexing API**\n2. Create OAuth 2.0 credentials\n3. In n8n \u2192 Credentials \u2192 create `Google OAuth2`\n4. Assign it to this node\n\n\u26a0\ufe0f Your Google Search Console property must\nbe verified for the submitted URL."
      },
      "typeVersion": 1
    },
    {
      "id": "ea19ce6a-dd77-4289-8a5b-16295a3510e5",
      "name": "URL Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        144,
        -1120
      ],
      "parameters": {
        "color": 3,
        "height": 522,
        "content": "## \ud83d\udc49 Set Your Website URL Here\nReplace the value in this node with\nthe **exact URL** of the website you\nregistered in Siah.\n\nExample: `https://yourdomain.com`\n\n\u26a0\ufe0f Must match the URL you entered\nwhen adding the website in Siah."
      },
      "typeVersion": 1
    },
    {
      "id": "860fc8af-976a-4d15-95e7-3d47bc100538",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        0,
        32
      ],
      "parameters": {
        "path": "ea155fba-f54b-4647-a255-f0295229e1d9",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2.1
    },
    {
      "id": "00d48f4f-7001-425b-833d-271dc979ab3c",
      "name": "Publish the generate blog into the CMS",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        848,
        32
      ],
      "parameters": {
        "url": "=https://seosiah.com/api/v1/public/cms/publish",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "postId",
              "value": "={{ $json.body.data.post_id }}"
            },
            {
              "name": "publicationMode",
              "value": "publish"
            }
          ]
        },
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "59b76423-fecb-41e1-b146-d3cddf134419",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        1056,
        32
      ],
      "parameters": {
        "unit": "minutes",
        "amount": 2
      },
      "typeVersion": 1.1
    },
    {
      "id": "d0d50afa-fe6a-44bd-b43f-d40314c3f7a5",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -16,
        -784
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 8
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "f89fc642-d44c-4d92-9c52-08456d4574d6",
      "name": "Select Website id",
      "type": "n8n-nodes-base.code",
      "position": [
        640,
        -784
      ],
      "parameters": {
        "jsCode": "let website_id = \"\";\n\nconst input = $input.first().json;\nconst editFields = $('\ud83d\udc49 Set Your Website URL Here').first().json;\n\nfor (const item of input.items) {\n  if (item.url === editFields.website) {\n    website_id = item.id;\n    break;\n  }\n}\n\nreturn [\n  {\n    json: {\n      website_id\n    }\n  }\n];"
      },
      "typeVersion": 2
    },
    {
      "id": "65c73fe4-4828-40d4-ad7f-2239635f4706",
      "name": "\ud83d\udc49 Set Your Website URL Here",
      "type": "n8n-nodes-base.set",
      "position": [
        224,
        -784
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "6974c1dd-ad46-4766-8535-620558401c8b",
              "name": "website",
              "type": "string",
              "value": "https://YOUR-WEBSITE-URL.com"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "4a32b18b-5e28-4260-b2cd-004c1f7a42e2",
      "name": "Get Websites info",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        432,
        -784
      ],
      "parameters": {
        "url": "https://seosiah.com/api/v1/public/websites",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.3
    },
    {
      "id": "f7018d1f-ce24-4979-bfdb-5c52115358a5",
      "name": "Google Indexing URL Updated",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1264,
        32
      ],
      "parameters": {
        "url": "=https://indexing.googleapis.com/v3/urlNotifications:publish",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "predefinedCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "url",
              "value": "={{ $('Publish the generate blog into the CMS').item.json.remoteUrl }}"
            },
            {
              "name": "type",
              "value": "URL_UPDATED"
            }
          ]
        },
        "nodeCredentialType": "googleOAuth2Api"
      },
      "typeVersion": 4.1
    },
    {
      "id": "d88eae4d-b6cf-4ecd-b5bc-62cc14cabf87",
      "name": "Generate Full SEO blog",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1264,
        -784
      ],
      "parameters": {
        "url": "=https://seosiah.com/api/v1/public/generate/from-suggestion",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "authentication": "genericCredentialType",
        "bodyParameters": {
          "parameters": [
            {
              "name": "suggestionId",
              "value": "={{ $json.id }}"
            },
            {
              "name": "contentLength",
              "value": "medium"
            }
          ]
        },
        "genericAuthType": "httpBearerAuth"
      },
      "typeVersion": 4.3
    },
    {
      "id": "58cb2be9-7d44-46c5-9c45-02c2bf76fa2b",
      "name": "Pick a suggested topic",
      "type": "n8n-nodes-base.code",
      "position": [
        1056,
        -784
      ],
      "parameters": {
        "jsCode": "const inputJson = $input.first().json;\n\nconst root = Array.isArray(inputJson) ? inputJson[0] : inputJson;\n\nconst itemsArr = root?.items;\n\nif (!Array.isArray(itemsArr) || itemsArr.length === 0) {\n  throw new Error('No items found at input.json[0].items (or input.json.items).');\n}\n\nconst idx = Math.floor(Math.random() * itemsArr.length);\nconst picked = itemsArr[idx];\n\nreturn [{ json: picked }];"
      },
      "typeVersion": 2
    },
    {
      "id": "6357d48b-d43c-42f1-bd2a-b642aeb0c492",
      "name": "Get all suggested topics for the website",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        848,
        -784
      ],
      "parameters": {
        "url": "=https://seosiah.com/api/v1/public/suggestions?websiteId={{ $json.website_id }}&status=active&limit=50",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBearerAuth"
      },
      "typeVersion": 4.3
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "4b429b8d-dccf-4617-80a8-2916126268dc",
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Google Indexing URL Updated",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Publish the generate blog into the CMS",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "\ud83d\udc49 Set Your Website URL Here",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Websites info": {
      "main": [
        [
          {
            "node": "Select Website id",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Select Website id": {
      "main": [
        [
          {
            "node": "Get all suggested topics for the website",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Pick a suggested topic": {
      "main": [
        [
          {
            "node": "Generate Full SEO blog",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "\ud83d\udc49 Set Your Website URL Here": {
      "main": [
        [
          {
            "node": "Get Websites info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Publish the generate blog into the CMS": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get all suggested topics for the website": {
      "main": [
        [
          {
            "node": "Pick a suggested topic",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}