{
  "id": "yX0GguuTfJTMO5fn",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Daily News AI Agent using Gnews.io",
  "tags": [],
  "nodes": [
    {
      "id": "1343b584-6a62-4cfb-aa74-3cfa32c0b61c",
      "name": "GPT-4.1 Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        96,
        560
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1",
          "cachedResultName": "gpt-4.1"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "13f07df6-bb89-4a64-a820-8145b21f6842",
      "name": "Map to articles",
      "type": "n8n-nodes-base.set",
      "position": [
        480,
        160
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "f030ab1f-df47-49fd-9a2e-020622f8a8f6",
              "name": "articles",
              "type": "string",
              "value": "={{ $json.articles }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "ceb045f1-e801-4808-8c97-21a3fbece1a2",
      "name": "AI News Summarizer",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        96,
        384
      ],
      "parameters": {
        "text": "=** Select Top Articles **\nFrom {{$json.articles}}, choose the 15 most relevant articles related to finances advancements, tools, research, and applications.\n\n** Summarize Clearly **\nWrite in clear, professional, and readable language, summarizing the main point of each article in 1-2 short sentences.\n\n** Include Links **\nAfter each summary, add the article's URL for readers to explore more.\n\n** Add the Date **\nBegin the summary with today\u2019s date:\n{{ $now.format('yyyy/MM/dd') }}\n",
        "options": {
          "systemMessage": "** Output Format **\nOnly return the summary in plain text \u2013 no explanations or additional formatting. Keep the response up to 2000 characters"
        },
        "promptType": "define"
      },
      "typeVersion": 1.8
    },
    {
      "id": "67e85e66-7ae2-4d86-8d57-528ffbafc0a8",
      "name": "Get GNews articles",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        256,
        160
      ],
      "parameters": {
        "url": "https://gnews.io/api/v4/search",
        "options": {},
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "q",
              "value": "={{ $json.topic }}"
            },
            {
              "name": "lang",
              "value": "en"
            },
            {
              "name": "apikey",
              "value": "ADD YOUR API HERE"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d324aa84-725a-4624-b90a-79d5ba60e6df",
      "name": "Completed Notification",
      "type": "n8n-nodes-base.slack",
      "position": [
        448,
        384
      ],
      "parameters": {
        "text": "={{ $json.output }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "C099YS0V3M2"
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "name": "<your credential>"
        }
      },
      "executeOnce": true,
      "typeVersion": 2.2
    },
    {
      "id": "13e49ab1-b175-4a88-9ccd-4f2757251d33",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        48,
        160
      ],
      "parameters": {
        "options": {},
        "formTitle": "News Search",
        "formFields": {
          "values": [
            {
              "fieldLabel": "topic",
              "requiredField": true
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "5c5ea06a-1a69-4b61-b054-ec9b90d84dba",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -720,
        160
      ],
      "parameters": {
        "width": 704,
        "height": 496,
        "content": "## Daily News AI Agent using Gnews.io\n\n**This workflow automates news aggregation and summarization by fetching relevant articles from Gnews.io and using AI to create concise, professional summaries delivered via Slack**\n\n### **What Makes This Different:**\n- **Real-Time News Aggregation** - Fetches current news articles from Gnews.io API based on user-specified topics\n- **AI-Powered Summarization** - Uses GPT-4.1 to intelligently select and summarize the most relevant articles\n- **Professional Formatting** - Generates clean, readable summaries with proper dates and article links\n- **Form-Based Input** - Simple web form interface for topic specification\n- **Automated Delivery** - Sends summarized news directly to Slack for immediate consumption\n- **Intelligent Filtering** - AI selects the top 15 most relevant articles from search results\n\n### 2. Configure Gnews.io API\n- **Get your API key**: Sign up at [gnews.io](https://gnews.io) and obtain your API key from the dashboard\n- **Add API key to workflow**: In the \"Get GNews articles\" HTTP Request node, replace `\"ADD YOUR API HERE\"` with your actual Gnews.io API key"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "83ad420d-7298-463b-bf3e-566517cdcb4e",
  "connections": {
    "GPT-4.1 Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI News Summarizer",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Map to articles": {
      "main": [
        [
          {
            "node": "AI News Summarizer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI News Summarizer": {
      "main": [
        [
          {
            "node": "Completed Notification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get GNews articles": {
      "main": [
        [
          {
            "node": "Map to articles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission": {
      "main": [
        [
          {
            "node": "Get GNews articles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}