{
  "nodes": [
    {
      "id": "91aec39d-c60a-4182-ac47-826124a25b86",
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        688,
        592
      ],
      "parameters": {
        "url": "https://coinmarketcap.com/trending-cryptocurrencies/",
        "options": {}
      },
      "typeVersion": 4.2
    },
    {
      "id": "23188613-df85-40e1-8e6a-67308dfdac67",
      "name": "Markdown",
      "type": "n8n-nodes-base.markdown",
      "position": [
        912,
        592
      ],
      "parameters": {
        "html": "={{ $json.data }}",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "d9efa1a0-0089-4d48-8fe6-e08b03363f26",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1120,
        592
      ],
      "parameters": {
        "text": "={{ $json.data }}",
        "options": {
          "systemMessage": "You are CoinSage, a crypto analyst bot for Discord.\n\nYour task is to analyze trending cryptocurrency coins scraped from CoinMarketCap and generate **one single stylized message** with key insights. The output must be:\n\n- Under 1500 characters total\n- Fully Markdown-compatible (for Discord embeds or raw posts)\n- Include links to CoinMarketCap and a DEX like DexScreener or Birdeye\n- Use emojis and bold text for readability\n- Cover up to 3 coins maximum\n\n---\n\n\ud83e\udde0 Format for Each Coin:\n\n**[$TICKER \u2013 {Coin Name}](https://coinmarketcap.com/currencies/{slug}/)**  \n\ud83d\udcb0 Price: ${price}\u200324H: {change_24h}%\u20037D: {change_7d}%  \n\ud83c\udff7\ufe0f Rank: #{rank}\u2003MCap: ${market_cap}\u2003Vol: ${volume_24h}  \n\ud83d\udd17 [Trade on DEX]({dex_link})  \n\ud83d\udd25 *{1-line AI-generated insight \u2014 e.g., \u201cSpiking volume from Telegram mentions\u201d}*  \n\u26a0\ufe0f *{Risk level \u2014 e.g., \u201cLow cap, possible pump.\u201d}*  \n**\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501**\n\n---\n\n\u2705 Output Rules:\n- Return one message block only (NO JSON, NO SPLITS)\n- Max 3 coins, 1500 characters total\n- Never use code blocks, backticks, or raw JSON\n- If content exceeds the limit, shorten summaries or remove last coin\n- Always include links and clean formatting\n\nYour only output should be the formatted message.\n"
        },
        "promptType": "define"
      },
      "typeVersion": 1.8
    },
    {
      "id": "50c3cc42-fa11-4b25-9d15-dc28920c2ed1",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1072,
        800
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "99e77fb7-60d3-4521-afd1-cccc325205ec",
      "name": "Discord",
      "type": "n8n-nodes-base.discord",
      "position": [
        1552,
        592
      ],
      "parameters": {
        "content": "={{ $json.output }}",
        "guildId": {
          "__rl": true,
          "mode": "list",
          "value": "1236784625196601386",
          "cachedResultUrl": "https://discord.com/channels/1236784625196601386",
          "cachedResultName": "YungCEO SOCIETY\ud83d\udcb0"
        },
        "options": {},
        "resource": "message",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "1332674656586436660",
          "cachedResultUrl": "https://discord.com/channels/1236784625196601386/1332674656586436660",
          "cachedResultName": "\ud83e\udd16\u2502trending-pools"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "5746f4f3-f0d5-4c37-b89d-19e0696cfc6f",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        448
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 1
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "71d574eb-309d-4477-8a9a-91ebcbd5d3d4",
      "name": "Schedule Trigger1",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        592
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 2
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "9a5b749d-4480-4463-8e12-e55eaab4daa0",
      "name": "Schedule Trigger2",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        752
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 3
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "671a3ea7-1083-41a0-bad6-65f10205078f",
      "name": "Schedule Trigger3",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        928
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 4
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "682cf717-19ce-4b18-95c6-c6305cb6b2d7",
      "name": "Schedule Trigger4",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        288
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 1
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "637b3c56-ce14-4a82-b38d-c950f1503b9e",
      "name": "Schedule Trigger5",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        160
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "cab30e3b-b5d7-40e7-b263-ca7c877eb0ff",
      "name": "Schedule Trigger6",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        0,
        1088
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "triggerAtHour": 5
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "472c0c87-fe05-4c94-b8a4-8b190a690bb6",
      "name": "When Executed by Another Workflow",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {
        "inputSource": "passthrough"
      },
      "typeVersion": 1.1
    },
    {
      "id": "eb62f148-092b-4d9c-8059-1ea57003f082",
      "name": "Workflow Summary",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        688,
        16
      ],
      "parameters": {
        "color": 0,
        "width": 500,
        "height": 600,
        "content": "## Workflow Overview\n\nThis workflow scrapes trending cryptocurrencies from CoinMarketCap, analyzes them using an AI agent powered by OpenAI's GPT-4o-mini model, and posts a formatted summary to a specified Discord channel.  The workflow is scheduled to run at various hours (1 AM, 2 AM, 3 AM, 4 AM, 5 AM) and can also be triggered manually."
      },
      "typeVersion": 1
    },
    {
      "id": "8a710d9c-972b-4b45-9593-ef9e4f6e5bc3",
      "name": "Setup Note 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        544,
        224
      ],
      "parameters": {
        "width": 400,
        "height": 500,
        "content": "## Note 1: Note 1: The workflow starts with multiple Schedule Trigger nodes, each configured to run at a different hour, providing flexibility in scheduling the updates.  This ensures regular updates throughout the morning."
      },
      "typeVersion": 1
    },
    {
      "id": "0a82344b-3e99-41dd-916e-9cac7c011eee",
      "name": "Setup Note 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        224
      ],
      "parameters": {
        "color": 2,
        "width": 400,
        "height": 500,
        "content": "## Note 2: Note 2: An HTTP Request node fetches data from CoinMarketCap's trending cryptocurrencies page. This node acts as the data source for the entire workflow."
      },
      "typeVersion": 1
    },
    {
      "id": "af07a53f-1d3a-4a3f-819c-9d236a7f3966",
      "name": "Setup Note 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1376,
        224
      ],
      "parameters": {
        "color": 3,
        "width": 400,
        "height": 500,
        "content": "## Note 3: Note 3: An AI Agent node processes the raw data from CoinMarketCap.  It uses a custom prompt to instruct the OpenAI language model to generate a concise, formatted message with key insights about the top trending cryptocurrencies, including links and emojis."
      },
      "typeVersion": 1
    },
    {
      "id": "ea9fb2b8-0d49-424e-b72c-0b9c40ac69b8",
      "name": "Setup Note 4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1792,
        224
      ],
      "parameters": {
        "color": 4,
        "width": 400,
        "height": 500,
        "content": "## Note 4: Note 4: The OpenAI Chat Model node provides the language model (GPT-4o-mini) for the AI Agent, responsible for generating the insightful cryptocurrency summary."
      },
      "typeVersion": 1
    },
    {
      "id": "08b5f961-820d-4f3c-ba84-b242837721e0",
      "name": "Setup Note 5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2224,
        224
      ],
      "parameters": {
        "color": 5,
        "width": 400,
        "height": 500,
        "content": "## Note 5: Note 5: Finally, a Discord node sends the AI-generated summary to a designated Discord server and channel.  This delivers the neatly formatted cryptocurrency analysis directly to the Discord community."
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "AI Agent": {
      "main": [
        [
          {
            "node": "Discord",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Markdown": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "Markdown",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger1": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger2": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger3": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger4": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger5": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger6": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When Executed by Another Workflow": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}