{
  "id": "n8J6zsScmXcHxLmk",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "[TEMPLATE] Automated Reddit Discussion Posts",
  "tags": [
    {
      "id": "0IajwbFHtkq5MMtw",
      "name": "[TEMPLATE] Automated Reddit Discussion Posts",
      "createdAt": "2025-07-22T03:53:08.426Z",
      "updatedAt": "2025-07-22T03:53:08.426Z"
    }
  ],
  "nodes": [
    {
      "id": "77505753-0436-4664-9176-8f9455373790",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        112,
        384
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 19
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "cfdf8308-6d1a-48b2-9fc5-e9342c54edf5",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1312,
        592
      ],
      "parameters": {
        "model": "gpt-4o",
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6b9ab420-06d1-4a08-970c-5c2ed0369106",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        944,
        384
      ],
      "parameters": {
        "options": {},
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "Copy"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "aceb63e9-de20-424f-b1ff-5442b670a22e",
      "name": "Generate New Discussion",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1312,
        384
      ],
      "parameters": {
        "text": "=Generate a short open-ended question of the [WEEK/DAY] about [INSERT TOPIC HERE] for the r/[SUBREDDIT NAME HERE] subreddit. ONLY provide the short open-ended question and nothing else in your output. Make sure it isn't any of the following previously used below.\n\n{{ $json.Copy }}",
        "promptType": "define"
      },
      "executeOnce": true,
      "typeVersion": 1.4
    },
    {
      "id": "f9c7896d-bd76-4bb1-9df7-6a397527dbad",
      "name": "Post Discussion",
      "type": "n8n-nodes-base.reddit",
      "position": [
        1888,
        384
      ],
      "parameters": {
        "text": "={{ $json.text }}",
        "title": "={{ $json.text }}",
        "subreddit": "Biohackers"
      },
      "credentials": {
        "redditOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 1
    },
    {
      "id": "b57f25dc-1010-40b3-aa4c-063cf72fab97",
      "name": "Create Archived Discussion",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2336,
        384
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "app6wzQqegKIJOiOg",
          "cachedResultUrl": "https://airtable.com/app6wzQqegKIJOiOg",
          "cachedResultName": "[TEMPLATE] Reddit Discussion"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblri7AaMrd36HwfE",
          "cachedResultUrl": "https://airtable.com/app6wzQqegKIJOiOg/tblri7AaMrd36HwfE",
          "cachedResultName": "Content"
        },
        "columns": {
          "value": {
            "Question": "={{ $('Generate New Discussion').item.json.text }}",
            "Subreddit": "r/Example",
            "Published Date": "={{ $now }}"
          },
          "schema": [
            {
              "id": "Question",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Question",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Subreddit",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "r/Example",
                  "value": "r/Example"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Subreddit",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Published Date",
              "type": "dateTime",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Published Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "create"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "fb3cfb26-b091-4a54-a1fd-b9da5e9236c5",
      "name": "Get Previous Discussions",
      "type": "n8n-nodes-base.airtable",
      "position": [
        512,
        384
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "app6wzQqegKIJOiOg",
          "cachedResultUrl": "https://airtable.com/app6wzQqegKIJOiOg",
          "cachedResultName": "[TEMPLATE] Reddit Discussion"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblri7AaMrd36HwfE",
          "cachedResultUrl": "https://airtable.com/app6wzQqegKIJOiOg/tblri7AaMrd36HwfE",
          "cachedResultName": "Content"
        },
        "options": {
          "view": {
            "__rl": true,
            "mode": "list",
            "value": "viwkayBLay4AKcrQg",
            "cachedResultUrl": "https://airtable.com/app6wzQqegKIJOiOg/tblri7AaMrd36HwfE/viwkayBLay4AKcrQg",
            "cachedResultName": "r/Example"
          }
        },
        "operation": "search"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "35de36f6-49f7-4325-b43a-e66c603df22d",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        48,
        176
      ],
      "parameters": {
        "color": 7,
        "content": "### 1. \ud83d\udcc5 Schedule\n\nSelect when you want to publish a new discussion(daily, weekly, etc)"
      },
      "typeVersion": 1
    },
    {
      "id": "4b4d96e5-94da-4356-8875-c29597db2d27",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        384,
        48
      ],
      "parameters": {
        "color": 7,
        "width": 352,
        "height": 288,
        "content": "### 2. \ud83d\udcd5 Get Previous Discussions\n\nThis will receive previously posted questions from a select subreddit.\n\nCreate Airtable Account: https://airtable.com/invite/r/zhjTCrgs\n\nGet Airtable \"Personal Access Token\": https://airtable.com/create/tokens\n\nAirtable Template: https://airtable.com/app6wzQqegKIJOiOg/shrzy7L9yv8BFRQdY"
      },
      "typeVersion": 1
    },
    {
      "id": "b645f619-dbeb-4e76-a18f-5a22e7d45ffa",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        816,
        160
      ],
      "parameters": {
        "color": 7,
        "width": 352,
        "height": 176,
        "content": "### 3. \ud83d\udcda Aggregate\n\nThis will take all of the previous questions and set them as one text block, resulting in a single output variable that we will use for ChatGPT.\n\nYou can add a \"Limit\" node before this one to reduce the amount of tokens used by ChatGPT."
      },
      "typeVersion": 1
    },
    {
      "id": "5ffd936f-edf0-4590-8acc-b1aedd019209",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1280,
        128
      ],
      "parameters": {
        "color": 7,
        "width": 352,
        "height": 208,
        "content": "### 4. \ud83e\udeb6 Generate Discussion\n\nThis will generate a new discussion, guided by the system prompt you provide(double click the node below). This will not duplicate recent questions, which we pulled in step 2!\n\nYou need to double-click the node below and set the options(they are in brackets) to your liking."
      },
      "typeVersion": 1
    },
    {
      "id": "2f6d7078-0881-435f-94f1-2e1e6c916464",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1744,
        -224
      ],
      "parameters": {
        "color": 7,
        "width": 352,
        "height": 560,
        "content": "### 5. \ud83d\udd17 Post Discussion\n\nThis will post the discussion question, obtained from step 4(the previous node), to your desired subreddit.\n\n\nConfigure your target subreddit in the node below. Only enter the subreddit name(not the /r).\n\n\nYou can choose between the following post types:\n- Text: This allows you to just specify a post title and/or description. Some subreddit's require a post description. You can use something like \"Curious to hear your thoughts\".\n\n- Image: You can make it so people see an accompanying image to the post, like something that says \"Question of the Day\". Enter the URL where the image is hosted.\n\n- Link: You can make it so people who click on the post are taken to a website of your choice, people will see the website's opengraph thumbnail."
      },
      "typeVersion": 1
    },
    {
      "id": "f4d54e18-51bf-4a98-a809-a29adad5833e",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2208,
        192
      ],
      "parameters": {
        "color": 7,
        "width": 352,
        "height": 144,
        "content": "### 6. \ud83d\uddc3\ufe0f Store Discussion in Archive\n\nThis will store the discussion question we just posted(from step 5) into our Airtable base. This is used to prevent ChatGPT from using the same discussion question in its output."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "de199832-a3ba-4f73-8d30-13f309c0e8cc",
  "connections": {
    "Aggregate": {
      "main": [
        [
          {
            "node": "Generate New Discussion",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Post Discussion": {
      "main": [
        [
          {
            "node": "Create Archived Discussion",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get Previous Discussions",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Generate New Discussion",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Generate New Discussion": {
      "main": [
        [
          {
            "node": "Post Discussion",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Previous Discussions": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create Archived Discussion": {
      "main": [
        []
      ]
    }
  }
}