{
  "id": "alHsXe0YAu9A3KBX",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Guest Post Automation",
  "tags": [
    {
      "id": "YATfMg1YuHUabPZ1",
      "name": "Publicado",
      "createdAt": "2025-08-20T19:02:14.993Z",
      "updatedAt": "2025-08-20T19:02:23.890Z"
    },
    {
      "id": "ucccuBhEgmPfgzUw",
      "name": "UpWork Proporsal",
      "createdAt": "2025-08-20T19:01:50.621Z",
      "updatedAt": "2025-08-20T19:01:50.621Z"
    }
  ],
  "nodes": [
    {
      "id": "68a9526a-163e-438f-a957-7e828315fce9",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        752,
        -224
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "gpt-4o-mini"
        },
        "options": {
          "temperature": 0.7,
          "presencePenalty": 0
        }
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "984ca7ac-7bf6-4c75-a3a0-5d72cea27bd6",
      "name": "Start Manual Trigger",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -352,
        -336
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "45d96bcb-8343-46e4-bf31-71cf00d7bcff",
      "name": "Read Config Sheet",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -128,
        -336
      ],
      "parameters": {
        "options": {
          "dataLocationOnSheet": {
            "values": {
              "rangeDefinition": "specifyRange"
            }
          }
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RT9otz1mopBLNY-jgp74xZ586ppcgUMJodOBo5ivFW0/edit#gid=0",
          "cachedResultName": "Config"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1RT9otz1mopBLNY-jgp74xZ586ppcgUMJodOBo5ivFW0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RT9otz1mopBLNY-jgp74xZ586ppcgUMJodOBo5ivFW0/edit?usp=drivesdk",
          "cachedResultName": "Guest Post Automation"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7,
      "alwaysOutputData": true
    },
    {
      "id": "5586500f-e6b1-4080-8b3c-acd768666222",
      "name": "Check if Status is Start",
      "type": "n8n-nodes-base.if",
      "position": [
        96,
        -336
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "90df972e-5b50-4bd0-992f-659f66420168",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.ESTADO }}",
              "rightValue": "Start"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "d3acad1d-b721-4745-9f85-fd83fd9270d5",
      "name": "Read Guest Post Input",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        320,
        -624
      ],
      "parameters": {
        "options": {
          "dataLocationOnSheet": {
            "values": {
              "rangeDefinition": "specifyRange"
            }
          }
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 688443584,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RT9otz1mopBLNY-jgp74xZ586ppcgUMJodOBo5ivFW0/edit#gid=688443584",
          "cachedResultName": "Inputs"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1RT9otz1mopBLNY-jgp74xZ586ppcgUMJodOBo5ivFW0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RT9otz1mopBLNY-jgp74xZ586ppcgUMJodOBo5ivFW0/edit?usp=drivesdk",
          "cachedResultName": "Guest Post Automation"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7,
      "alwaysOutputData": false
    },
    {
      "id": "89411d00-5a17-443a-82c8-2667a6782819",
      "name": "Read Writting Rules",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        320,
        -432
      ],
      "parameters": {
        "options": {
          "dataLocationOnSheet": {
            "values": {
              "rangeDefinition": "specifyRange"
            }
          }
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1915076691,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RT9otz1mopBLNY-jgp74xZ586ppcgUMJodOBo5ivFW0/edit#gid=1915076691",
          "cachedResultName": "Rules"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1RT9otz1mopBLNY-jgp74xZ586ppcgUMJodOBo5ivFW0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RT9otz1mopBLNY-jgp74xZ586ppcgUMJodOBo5ivFW0/edit?usp=drivesdk",
          "cachedResultName": "Guest Post Automation"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "715c3f06-7238-49a6-ac33-a62d2f919b14",
      "name": "Read Portfolio Requirements",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        320,
        -240
      ],
      "parameters": {
        "options": {
          "dataLocationOnSheet": {
            "values": {
              "rangeDefinition": "specifyRange"
            }
          }
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 472870513,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RT9otz1mopBLNY-jgp74xZ586ppcgUMJodOBo5ivFW0/edit#gid=472870513",
          "cachedResultName": "Portfolio"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1RT9otz1mopBLNY-jgp74xZ586ppcgUMJodOBo5ivFW0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RT9otz1mopBLNY-jgp74xZ586ppcgUMJodOBo5ivFW0/edit?usp=drivesdk",
          "cachedResultName": "Guest Post Automation"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "d5a4244e-a8ec-4062-96a9-29aa4eb4f0b6",
      "name": "Merge All Inputs",
      "type": "n8n-nodes-base.merge",
      "position": [
        544,
        -448
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition",
        "numberInputs": 3
      },
      "typeVersion": 3.2
    },
    {
      "id": "35ceb1ee-2b8f-42f4-9b41-c4d31165e7a5",
      "name": "Generate post with AI (German)",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        752,
        -448
      ],
      "parameters": {
        "text": "=Schreibe einen professionellen Gastbeitrag auf Deutsch f\u00fcr den Monat {{ $json[\"Month\"] }} \u00fcber das Thema \"{{ $json[\"Theme\"] }}\". \nDer Text soll ungef\u00e4hr {{ $json[\"How much words\"] }} W\u00f6rter lang sein. \nVermeide das Wort \"{{ $json[\"Words cant use\"] }}\". \nStrukturiere den Text logisch mit Einleitung, Hauptteil und Schluss. \nDer Beitrag soll sich f\u00fcr Outreach und Foren eignen.\n",
        "options": {
          "systemMessage": "Du bist ein erfahrener SEO-Content-Stratege und Texter. Du schreibst klare, strukturierte und hochwertige Inhalte auf Deutsch f\u00fcr Outreach-Kampagnen.\n"
        },
        "promptType": "define"
      },
      "typeVersion": 2.2
    },
    {
      "id": "91f40b8c-6121-4525-8bd9-ec91b4d3473c",
      "name": "Save Generated Content to Outreach",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1104,
        -448
      ],
      "parameters": {
        "columns": {
          "value": {
            "Month": "={{ $('Merge All Inputs').item.json.Month }}",
            "Theme": "={{ $('Merge All Inputs').item.json.Theme }}",
            "Content": "={{ $json.output }}"
          },
          "schema": [
            {
              "id": "Month",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Month",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Theme",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Theme",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Content",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Content",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": 1128967644,
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RT9otz1mopBLNY-jgp74xZ586ppcgUMJodOBo5ivFW0/edit#gid=1128967644",
          "cachedResultName": "Outreach"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1RT9otz1mopBLNY-jgp74xZ586ppcgUMJodOBo5ivFW0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RT9otz1mopBLNY-jgp74xZ586ppcgUMJodOBo5ivFW0/edit?usp=drivesdk",
          "cachedResultName": "Guest Post Automation"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "8490dcef-5467-4c1b-9310-8eaaadb7c542",
      "name": "Mark Config Row as Finished",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1312,
        -448
      ],
      "parameters": {
        "columns": {
          "value": {
            "ESTADO": "Finished",
            "row_number": 2
          },
          "schema": [
            {
              "id": "ESTADO",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "ESTADO",
              "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": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RT9otz1mopBLNY-jgp74xZ586ppcgUMJodOBo5ivFW0/edit#gid=0",
          "cachedResultName": "Config"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1RT9otz1mopBLNY-jgp74xZ586ppcgUMJodOBo5ivFW0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1RT9otz1mopBLNY-jgp74xZ586ppcgUMJodOBo5ivFW0/edit?usp=drivesdk",
          "cachedResultName": "Guest Post Automation"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "369f25ff-116b-4743-b15d-0fb1815fbede",
      "name": "Notify When No Action is Taken",
      "type": "n8n-nodes-base.gmail",
      "position": [
        96,
        -48
      ],
      "parameters": {
        "sendTo": "user@example.com",
        "message": "Hey change the sheets Config status.",
        "options": {},
        "subject": "Config not activated, workflow stoped",
        "operation": "sendAndWait"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "99372085-e6d6-4dec-bbae-7e34ef589845",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -672,
        -864
      ],
      "parameters": {
        "width": 288,
        "height": 352,
        "content": "## \ud83e\udde0 Overview\nThis workflow automates the generation of guest post content using OpenAI, based on inputs from a Google Sheet. It is designed to streamline outreach content production.\n\n- Input: Google Sheet with topics, month, and writing parameters\n- Output: AI-generated article in German, saved back to a Google Sheet\n- Includes: Status checks, notifications, merge logic, and content generation\n"
      },
      "typeVersion": 1
    },
    {
      "id": "185e18a8-f9bc-4f50-ac83-8ee77934db16",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -240,
        -512
      ],
      "parameters": {
        "color": 4,
        "width": 384,
        "height": 144,
        "content": "## 1. Manual Trigger & Config\nThis part of the workflow starts manually and reads the configuration sheet containing all scheduled content rows.\n\nOnly rows with STATUS = \"Start\" are processed.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "d61118df-18be-467f-a3f6-2edceb330584",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        464,
        -688
      ],
      "parameters": {
        "color": 2,
        "width": 352,
        "height": 192,
        "content": "## 2. Merge Guest Post Data\nThis node merges:\n- Guest post topic input\n- Writing rules\n- Portfolio requirements\n...into a single object to be passed to the OpenAI Agent.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "567f30b3-9a2f-451a-bfaa-4336bf369880",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        720,
        -64
      ],
      "parameters": {
        "color": 3,
        "content": "## 3. Generate Content with AI\nThe AI Agent uses the merged input to generate a guest post in German.\n\nModel: OpenAI GPT-4 (configurable)\nMemory: Optional\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8545fc83-4906-495d-8265-fc245583ad0a",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1104,
        -576
      ],
      "parameters": {
        "color": 5,
        "width": 384,
        "height": 112,
        "content": "## 4. Save Results\n- Append generated content to the Outreach Sheet\n- Mark the original row in Config sheet as \"Finished\"\n"
      },
      "typeVersion": 1
    },
    {
      "id": "7c3a0856-b060-48f6-ad39-377d04f5c95b",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -464,
        -96
      ],
      "parameters": {
        "color": 7,
        "width": 272,
        "content": "## Optional: Email Notification\nIf the status is not \"Start\", the workflow sends a Gmail notification to let you know that no action was taken.\n"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "f6b6d867-0d2c-42e8-9705-2e1e29d382c6",
  "connections": {
    "Merge All Inputs": {
      "main": [
        [
          {
            "node": "Generate post with AI (German)",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Generate post with AI (German)",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Read Config Sheet": {
      "main": [
        [
          {
            "node": "Check if Status is Start",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Writting Rules": {
      "main": [
        [
          {
            "node": "Merge All Inputs",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Start Manual Trigger": {
      "main": [
        [
          {
            "node": "Read Config Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Guest Post Input": {
      "main": [
        [
          {
            "node": "Merge All Inputs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if Status is Start": {
      "main": [
        [
          {
            "node": "Read Guest Post Input",
            "type": "main",
            "index": 0
          },
          {
            "node": "Read Writting Rules",
            "type": "main",
            "index": 0
          },
          {
            "node": "Read Portfolio Requirements",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Notify When No Action is Taken",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Portfolio Requirements": {
      "main": [
        [
          {
            "node": "Merge All Inputs",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Generate post with AI (German)": {
      "main": [
        [
          {
            "node": "Save Generated Content to Outreach",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notify When No Action is Taken": {
      "main": [
        [
          {
            "node": "Read Config Sheet",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Save Generated Content to Outreach": {
      "main": [
        [
          {
            "node": "Mark Config Row as Finished",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}