{
  "name": "Scheduled Newsletter Sender via Gmail",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [{ "field": "weeks", "weeksInterval": 1 }]
        }
      },
      "id": "gnls0001-0001-4000-8000-000000000001",
      "name": "Weekly Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1,
      "position": [240, 300]
    },
    {
      "parameters": {
        "url": "={{ $env.NEWSLETTER_CONTENT_API }}",
        "options": {}
      },
      "id": "gnls0001-0002-4000-8000-000000000002",
      "name": "Fetch Newsletter Content",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [460, 300]
    },
    {
      "parameters": {
        "model": "gpt-4o-mini",
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "You are a newsletter editor. Transform the provided content into an engaging HTML email newsletter with a header, 3–5 sections, and a short closing. Use inline styles for compatibility. Return only the HTML body content."
            },
            {
              "role": "user",
              "content": "={{ JSON.stringify($json) }}"
            }
          ]
        },
        "options": {
          "temperature": 0.7,
          "maxTokens": 1200
        }
      },
      "id": "gnls0001-0003-4000-8000-000000000003",
      "name": "Generate Newsletter HTML",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1,
      "position": [680, 300]
    },
    {
      "parameters": {
        "operation": "getAll",
        "documentId": { "__rl": true, "mode": "id", "value": "={{ $env.SUBSCRIBER_SHEET_ID }}" },
        "sheetName": { "__rl": true, "mode": "name", "value": "Subscribers" },
        "options": {}
      },
      "id": "gnls0001-0004-4000-8000-000000000004",
      "name": "Get Subscriber List",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4,
      "position": [680, 480]
    },
    {
      "parameters": {
        "operation": "send",
        "toList": "={{ $json.email }}",
        "subject": "Weekly Newsletter — {{ $now.toFormat('LLL dd yyyy') }}",
        "message": "={{ $('Generate Newsletter HTML').item.json.message.content }}",
        "options": {
          "bodyContentType": "html"
        }
      },
      "id": "gnls0001-0005-4000-8000-000000000005",
      "name": "Send Newsletter Email",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2,
      "position": [900, 390]
    }
  ],
  "connections": {
    "Weekly Schedule Trigger": {
      "main": [[{ "node": "Fetch Newsletter Content", "type": "main", "index": 0 }]]
    },
    "Fetch Newsletter Content": {
      "main": [[{ "node": "Generate Newsletter HTML", "type": "main", "index": 0 }]]
    },
    "Generate Newsletter HTML": {
      "main": [[{ "node": "Send Newsletter Email", "type": "main", "index": 0 }]]
    },
    "Get Subscriber List": {
      "main": [[{ "node": "Send Newsletter Email", "type": "main", "index": 0 }]]
    }
  },
  "active": false,
  "settings": { "executionOrder": "v1" },
  "meta": {},
  "pinData": {}
}
