{
  "name": "Transform product photos into ad campaigns with Gemini Vision and Claude via Telegram",
  "nodes": [
    {
      "id": "1c87068a-0c40-41a8-8c79-515a81644296",
      "name": "Main Sticky",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        304
      ],
      "parameters": {
        "width": 500,
        "height": 600,
        "content": "## 📸 AI Ad Creative Generator\nTurn simple product photos into fully realized ad concepts using Gemini Vision and Image Generation.\n\n### How it works\nThis workflow acts as an automated Art Director liv"
      }
    },
    {
      "id": "b7579b9c-3c4e-4cdc-a842-ba5190838bd2",
      "name": "Section 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        336,
        576
      ],
      "parameters": {
        "width": 1080,
        "height": 280,
        "content": "## 1. Receive & Authenticate\nValidates the user and extracts the image file path."
      }
    },
    {
      "id": "8c846af1-3b76-4a82-b127-51bd25da9ca4",
      "name": "Section 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1456,
        576
      ],
      "parameters": {
        "width": 700,
        "height": 520,
        "content": "## 2. AI Analysis & Strategy\nGemini Vision analyzes the product, and the Agent plans the campaign."
      }
    },
    {
      "id": "587e724e-865d-4a91-8510-5da28e49c9f6",
      "name": "Section 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2192,
        576
      ],
      "parameters": {
        "width": 1360,
        "height": 280,
        "content": "## 3. Generate & Deliver\nCreates the new ad visual and sends the result back to Telegram."
      }
    },
    {
      "id": "83eb30bb-09a5-4033-935e-d4616425344c",
      "name": "CONFIG",
      "type": "n8n-nodes-base.set",
      "position": [
        608,
        672
      ]
    },
    {
      "id": "71b36b61-d66c-4273-bb6c-580ce41bac60",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1984,
        912
      ]
    },
    {
      "id": "3a841f59-bd0b-44fc-b6f0-26b0e00f55e6",
      "name": "think_tool",
      "type": "@n8n/n8n-nodes-langchain.toolThink",
      "position": [
        1840,
        912
      ]
    },
    {
      "id": "5b36c4fa-793d-4be3-8707-16ae14f200b0",
      "name": "On New Message",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        384,
        672
      ]
    },
    {
      "id": "d162014d-d91b-4b58-9cde-790091f26466",
      "name": "Auth: Verify User ID",
      "type": "n8n-nodes-base.if",
      "position": [
        816,
        672
      ]
    },
    {
      "id": "de765dbc-530e-433f-830c-fb4a963a3687",
      "name": "Get Photo File Path",
      "type": "n8n-nodes-base.telegram",
      "position": [
        1264,
        672
      ]
    },
    {
      "id": "b99938b7-70e4-4921-b367-42afdc706b22",
      "name": "Check: Has Photo?",
      "type": "n8n-nodes-base.if",
      "position": [
        1040,
        672
      ]
    },
    {
      "id": "4c0838bd-d90b-4421-9764-d5c06b91ff43",
      "name": "Gemini Vision: Analyze",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        1488,
        672
      ]
    },
    {
      "id": "0b6bb216-f6be-477c-8e55-1e3826f4a825",
      "name": "Creative Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1696,
        672
      ]
    },
    {
      "id": "141ae27c-947b-4610-b048-5d226f238c04",
      "name": "Loop: Ad Variations",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        2048,
        672
      ]
    },
    {
      "id": "1b63c002-6be4-464d-9d08-4e05a5a0be91",
      "name": "Config: Source URL",
      "type": "n8n-nodes-base.set",
      "position": [
        2256,
        672
      ]
    },
    {
      "id": "412ec0e5-8296-43fc-b6cf-aa7b2bdcb80c",
      "name": "HTTP: Download Source",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2480,
        672
      ]
    },
    {
      "id": "764e4408-f491-4893-ae63-d3ae003ad8b6",
      "name": "Data: Binary Prep",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        2704,
        672
      ]
    },
    {
      "id": "886d8562-0367-4330-9574-5ae6a547e0d8",
      "name": "HTTP: Generate Image",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2928,
        672
      ]
    },
    {
      "id": "12d27559-32cb-431f-9bc8-a720a0ccabce",
      "name": "Data: Convert Response",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        3136,
        672
      ]
    },
    {
      "id": "7f39197d-d156-4d02-b5af-4736c8d8c41c",
      "name": "Telegram: Send Result",
      "type": "n8n-nodes-base.telegram",
      "position": [
        3360,
        672
      ]
    },
    {
      "id": "ff25d564-75b5-41af-bc81-9c3f71856906",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        1696,
        912
      ]
    }
  ],
  "connections": {
    "CONFIG": {
      "main": [
        [
          {
            "node": "Auth: Verify User ID",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "think_tool": {
      "ai_tool": [
        [
          {
            "node": "Creative Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Creative Agent": {
      "main": [
        [
          {
            "node": "Loop: Ad Variations",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On New Message": {
      "main": [
        [
          {
            "node": "CONFIG",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check: Has Photo?": {
      "main": [
        [
          {
            "node": "Get Photo File Path",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Data: Binary Prep": {
      "main": [
        [
          {
            "node": "HTTP: Generate Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Config: Source URL": {
      "main": [
        [
          {
            "node": "HTTP: Download Source",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Photo File Path": {
      "main": [
        [
          {
            "node": "Gemini Vision: Analyze",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop: Ad Variations": {
      "main": [
        [
          {
            "node": "Config: Source URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Auth: Verify User ID": {
      "main": [
        [
          {
            "node": "Check: Has Photo?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP: Generate Image": {
      "main": [
        [
          {
            "node": "Data: Convert Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP: Download Source": {
      "main": [
        [
          {
            "node": "Data: Binary Prep",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Creative Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Data: Convert Response": {
      "main": [
        [
          {
            "node": "Telegram: Send Result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gemini Vision: Analyze": {
      "main": [
        [
          {
            "node": "Creative Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Creative Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  }
}