{
  "name": "SocialPulse Lite — Single Source Monitor (Reddit Only)",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 9 * * *"
            }
          ]
        }
      },
      "id": "trigger",
      "name": "Run Daily (9 AM)",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        200,
        400
      ]
    },
    {
      "parameters": {
        "method": "GET",
        "url": "=https://www.reddit.com/r/{{ $env.SOCIALPULSE_SUBREDDITS?.split(',')[0]?.trim() || 'SaaS' }}/hot.json?limit=20",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "User-Agent",
              "value": "SocialPulse/1.0"
            }
          ]
        },
        "options": {
          "timeout": 15000
        }
      },
      "id": "fetch-reddit",
      "name": "Reddit: Fetch Posts",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        440,
        400
      ],
      "retryOnFail": true,
      "maxTries": 2,
      "waitBetweenTries": 5000
    },
    {
      "parameters": {
        "jsCode": "try {\n  const reddit = $input.first().json;\n  const posts = (reddit?.data?.children || []).map(c => ({ title: c.data?.title || '', score: c.data?.score || 0, comments: c.data?.num_comments || 0, url: 'https://reddit.com' + (c.data?.permalink || ''), subreddit: c.data?.subreddit || '' })).filter(p => p.score > 3).sort((a,b) => b.score - a.score).slice(0, 15);\n  return [{ json: { totalPosts: posts.length, posts, scannedAt: new Date().toISOString() } }];\n} catch (e) {\n  throw new Error('Failed to parse Reddit data: ' + e.message);\n}"
      },
      "id": "parse",
      "name": "Parse & Rank Posts",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        680,
        400
      ]
    },
    {
      "parameters": {
        "model": "gpt-4o-mini",
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "Analyze these Reddit posts. Find 3 trending topics and suggest 2 content ideas. JSON: { \"trends\": [\"topic1\"], \"contentIdeas\": [{ \"idea\": \"...\", \"platform\": \"Twitter\" }], \"sentiment\": \"positive/neutral/negative\" }"
            },
            {
              "role": "user",
              "content": "=Top Reddit posts:\n{{ $json.posts.map((p,i) => (i+1) + '. ' + p.title + ' (score:' + p.score + ')').join('\\n') }}"
            }
          ]
        },
        "options": {
          "temperature": 0.5,
          "maxTokens": 800,
          "responseFormat": "json_object"
        }
      },
      "id": "ai-analyze",
      "name": "AI: Quick Analysis",
      "type": "n8n-nodes-base.openAi",
      "typeVersion": 1.8,
      "position": [
        920,
        400
      ],
      "retryOnFail": true,
      "maxTries": 3,
      "waitBetweenTries": 2000
    },
    {
      "parameters": {
        "jsCode": "try {\n  const data = $('Parse & Rank Posts').first().json;\n  const aiRaw = $input.first().json;\n  let ai;\n  try { ai = JSON.parse(aiRaw.message?.content || '{}'); } catch(e) { ai = { trends: [], contentIdeas: [], sentiment: 'unknown' }; }\n  return [{ json: { ...data, analysis: ai } }];\n} catch (e) {\n  throw new Error('Failed to merge: ' + e.message);\n}"
      },
      "id": "merge",
      "name": "Merge Results",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1140,
        400
      ]
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "value": "={{ $env.SOCIALPULSE_SHEET_ID }}",
          "mode": "id"
        },
        "sheetName": {
          "__rl": true,
          "value": "Lite Log",
          "mode": "name"
        },
        "columns": {
          "mappingMode": "defineBelow",
          "value": {
            "Date": "={{ $json.scannedAt }}",
            "Posts": "={{ $json.totalPosts }}",
            "Trends": "={{ JSON.stringify($json.analysis.trends) }}",
            "Content Ideas": "={{ JSON.stringify($json.analysis.contentIdeas) }}",
            "Sentiment": "={{ $json.analysis.sentiment }}"
          }
        },
        "options": {}
      },
      "id": "save-sheets",
      "name": "Log to Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4.5,
      "position": [
        1380,
        400
      ],
      "retryOnFail": true,
      "maxTries": 2
    },
    {
      "parameters": {
        "content": "## SocialPulse Lite\n\nReddit-only monitoring.\nDaily scan, quick AI analysis.\nPerfect for testing before\nenabling full 3-source scan.",
        "width": 280,
        "height": 160,
        "color": 6
      },
      "id": "note",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        120,
        200
      ]
    }
  ],
  "connections": {
    "Run Daily (9 AM)": {
      "main": [
        [
          {
            "node": "Reddit: Fetch Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Reddit: Fetch Posts": {
      "main": [
        [
          {
            "node": "Parse & Rank Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse & Rank Posts": {
      "main": [
        [
          {
            "node": "AI: Quick Analysis",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI: Quick Analysis": {
      "main": [
        [
          {
            "node": "Merge Results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Results": {
      "main": [
        [
          {
            "node": "Log to Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1",
    "saveManualExecutions": true
  },
  "tags": [
    {
      "name": "SocialPulse",
      "id": "socialpulse"
    },
    {
      "name": "AutoFlow",
      "id": "autoflow"
    },
    {
      "name": "Lite",
      "id": "lite"
    }
  ],
  "meta": {
    "instanceId": "socialpulse-lite-v1"
  }
}