{
  "name": "Generate weekly marketing performance reports with GPT-4o & Google Docs to Slack",
  "nodes": [
    {
      "id": "d5ec0af7-cb90-4cd6-91dc-69857fe7bca9",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        144,
        256
      ]
    },
    {
      "id": "7381727c-9a29-4da8-aaf3-cff59a138738",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -416,
        -80
      ],
      "parameters": {
        "width": 496,
        "height": 384,
        "content": "## 📊 What the Automation Does\n- Runs automatically on a schedule (e.g. every Monday).  \n- Pulls campaign performance data (here: demo data for Google Ads, Meta, TikTok, YouTube).  \n- Uses AI (LLM) to "
      }
    },
    {
      "id": "f9fc4b70-f2dd-44f8-8ba1-245bf9f6a116",
      "name": "Google Ads Demo",
      "type": "n8n-nodes-base.code",
      "position": [
        368,
        256
      ]
    },
    {
      "id": "c335b635-893a-4e1d-aeeb-ecc4c4947bbd",
      "name": "Message a model",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        592,
        256
      ]
    },
    {
      "id": "6a4ebcda-4997-4dc8-ab60-3370c0bf373e",
      "name": "Code in JavaScript",
      "type": "n8n-nodes-base.code",
      "position": [
        960,
        256
      ]
    },
    {
      "id": "42bceff8-69d9-4d21-9d94-f3f7c2dd82ed",
      "name": "Create a document",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        1248,
        256
      ]
    },
    {
      "id": "4c463d5e-23a6-4662-b6c9-f1b818e81cd0",
      "name": "Update a document",
      "type": "n8n-nodes-base.googleDocs",
      "position": [
        1520,
        256
      ]
    },
    {
      "id": "b9a2b5f0-0b83-439a-9acd-04031d27ed27",
      "name": "Send a message",
      "type": "n8n-nodes-base.slack",
      "position": [
        1808,
        256
      ]
    },
    {
      "id": "d01c3e2e-abc4-4cf8-8136-22b5c4b15c62",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -416,
        320
      ],
      "parameters": {
        "width": 496,
        "height": 368,
        "content": "## 💡 Why This Is Valuable\n- Saves time – no manual copy-paste across ad platforms or spreadsheets.  \n- Standardizes reporting – same structure and clarity every week.  \n- Adds insights – AI summary hi"
      }
    },
    {
      "id": "177d41bb-20ff-46da-af5d-3e8e863b5e71",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        288,
        -16
      ],
      "parameters": {
        "width": null,
        "height": 448,
        "content": "## 📊 Generate Metrics (Demo)\nProduces fake ad performance data for Google Ads, Meta, TikTok & YouTube.\n\n👉 Replace with real API connectors (Google Ads, Meta Ads, TikTok, YouTube) if you want live data"
      }
    },
    {
      "id": "ef227c18-b1f5-4dde-87f0-4bc5fa3c6fd0",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        544,
        -16
      ],
      "parameters": {
        "width": 320,
        "height": 448,
        "content": "## 🤖 AI Executive Summary\nSends metrics to OpenAI (LLM) to create a concise summary with wins, issues, and recommendations.  \n\n👉 Make sure your **OpenAI credentials** are connected."
      }
    },
    {
      "id": "7007246b-9269-4e94-a243-0e76c1926654",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        880,
        -16
      ],
      "parameters": {
        "width": 256,
        "height": 448,
        "content": "## 📝 Build Markdown Report\nCombines raw metrics + AI summary into a structured Markdown report.  \nIncludes totals, per-channel table, and top campaigns by ROAS. \n \n👉 Node name references must match ex"
      }
    },
    {
      "id": "e8091e8f-7c67-407b-9533-b8a41f339b29",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1152,
        -16
      ],
      "parameters": {
        "width": 272,
        "height": 448,
        "content": "## 📄 Google Docs Creation\nCreates a new Google Doc titled  \n**“Weekly Performance Report – [Start Date] to [End Date]”**.  \n\n👉 Requires Google Docs OAuth connection."
      }
    },
    {
      "id": "57e73a10-801c-40e6-a840-5f29c8f5a4b3",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1440,
        -16
      ],
      "parameters": {
        "width": 256,
        "height": 448,
        "content": "## 🖊️ Update Google Doc\nInserts the Markdown report into the created document.  \n👉 You’ll get a polished report ready for sharing."
      }
    },
    {
      "id": "1ed03086-b047-4138-a733-f3566cd69678",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1712,
        -16
      ],
      "parameters": {
        "width": 304,
        "height": 448,
        "content": "## 💬 Slack Notification\nSends a Slack message with topline numbers (ROAS, Spend) + direct link to the Google Doc.  \n👉 Connect your Slack account and set the channel ID."
      }
    },
    {
      "id": "28afc12f-f5fb-4262-bcaa-1f1f5900dcad",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        528,
        480
      ],
      "parameters": {
        "width": 1056,
        "height": 416,
        "content": "## 💡 Extra Recommendation: Use a Google Docs Template\nInstead of creating a blank Google Doc, connect this workflow to a **pre-styled Google Docs template**.  \n👉 This makes your reports look more prof"
      }
    }
  ],
  "connections": {
    "Google Ads Demo": {
      "main": [
        [
          {
            "node": "Message a model",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Message a model": {
      "main": [
        [
          {
            "node": "Code in JavaScript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Google Ads Demo",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a document": {
      "main": [
        [
          {
            "node": "Update a document",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update a document": {
      "main": [
        [
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript": {
      "main": [
        [
          {
            "node": "Create a document",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}