{
  "name": "Veille quotidienne : flux RSS résumés par IA sur Slack",
  "nodes": [
    {
      "id": "b300134a-18a0-4f51-9a12-e402a22d01ad",
      "name": "Chaque jour ouvré à 8 h",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.3,
      "position": [
        100,
        300
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "weeks",
              "weeksInterval": 1,
              "triggerAtDay": [
                1,
                2,
                3,
                4,
                5
              ],
              "triggerAtHour": 8,
              "triggerAtMinute": 0
            }
          ]
        }
      }
    },
    {
      "id": "9f4c3769-9e21-4eb6-a697-f0829b8c6d57",
      "name": "Lire le flux RSS",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1.2,
      "position": [
        300,
        300
      ],
      "parameters": {
        "url": "À REMPLIR : Adresse du flux RSS à suivre, par exemple https://www.exemple.fr/feed",
        "options": {}
      }
    },
    {
      "id": "ae44ec3b-84f7-4705-a910-de261ed7522e",
      "name": "Garder les articles des dernières 24 h",
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2.3,
      "position": [
        500,
        300
      ],
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": true,
            "leftValue": "",
            "typeValidation": "loose"
          },
          "conditions": [
            {
              "leftValue": "={{ $json.isoDate }}",
              "operator": {
                "type": "dateTime",
                "operation": "after"
              },
              "rightValue": "={{ $now.minus(1, \"days\").toISO() }}"
            }
          ],
          "combinator": "and"
        },
        "options": {}
      }
    },
    {
      "id": "e1b718fe-5159-4f89-81da-0f40826517c6",
      "name": "Limiter à 10 articles",
      "type": "n8n-nodes-base.limit",
      "typeVersion": 1,
      "position": [
        700,
        300
      ],
      "parameters": {
        "maxItems": 10,
        "keep": "firstItems"
      }
    },
    {
      "id": "7ebd2902-5cdf-4b8a-8bff-53603c863a07",
      "name": "Regrouper les articles",
      "type": "n8n-nodes-base.aggregate",
      "typeVersion": 1,
      "position": [
        900,
        300
      ],
      "parameters": {
        "aggregate": "aggregateAllItemData",
        "destinationFieldName": "articles",
        "include": "specifiedFields",
        "fieldsToInclude": "title, link, contentSnippet"
      }
    },
    {
      "id": "c4fceb8e-01f8-49d6-b4a2-570bf9be9082",
      "name": "Résumer la veille",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "typeVersion": 1.9,
      "position": [
        300,
        450
      ],
      "parameters": {
        "promptType": "define",
        "text": "=Voici les articles publiés ces dernières 24 heures :\n\n{{ $json.articles.map((a, i) => (i + 1) + \". \" + a.title + \"\\n\" + (a.contentSnippet || \"\") + \"\\n\" + a.link).join(\"\\n\\n\") }}",
        "messages": {
          "messageValues": [
            {
              "type": "SystemMessagePromptTemplate",
              "message": "Tu rédiges la veille quotidienne d'une petite entreprise française. Pour chaque article, écris une ligne en français : un tiret, le titre reformulé en quelques mots, puis une phrase qui dit pourquoi c'est utile, puis le lien entre chevrons. Termine par une phrase « À retenir » qui résume la tendance du jour. Format Slack, pas de titre, pas de tableau."
            }
          ]
        }
      },
      "executeOnce": true
    },
    {
      "id": "e574cbfa-98f7-4054-ad55-096957b6f993",
      "name": "Claude",
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "typeVersion": 1.5,
      "position": [
        100,
        450
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "claude-sonnet-4-6",
          "cachedResultName": "Claude Sonnet 4.6"
        },
        "options": {
          "temperature": 0.3
        }
      },
      "credentials": {}
    },
    {
      "id": "2b59b2e2-7d5e-4c46-9bd2-b57f154a13f7",
      "name": "Publier la veille sur Slack",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 2.6,
      "position": [
        500,
        450
      ],
      "parameters": {
        "resource": "message",
        "operation": "post",
        "authentication": "accessToken",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "",
          "cachedResultName": "Canal veille (à choisir)"
        },
        "messageType": "text",
        "text": "=:newspaper: *Veille du {{ $now.setLocale(\"fr\").toFormat(\"cccc d LLLL\") }}*\n\n{{ $json.text }}",
        "otherOptions": {
          "includeLinkToWorkflow": false,
          "unfurl_links": false
        }
      },
      "credentials": {}
    },
    {
      "id": "5a7fdf49-ea4d-4d02-b7e8-5ce81516798b",
      "name": "À configurer",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        64,
        208
      ],
      "parameters": {
        "content": "## À configurer\n- **Flux RSS** : collez l'adresse du flux à suivre dans le nœud Lire le flux RSS.\n- **Anthropic** : ajoutez votre clé API dans le nœud Claude.\n- **Slack** : connectez votre espace puis choisissez le canal de la veille.\n- Les jours sans nouvel article, rien n'est publié.",
        "color": 4,
        "width": 368,
        "height": 224
      }
    },
    {
      "id": "980d3482-1284-4464-9172-e25c833a9e39",
      "name": "L'idée",
      "type": "n8n-nodes-base.stickyNote",
      "typeVersion": 1,
      "position": [
        272,
        208
      ],
      "parameters": {
        "content": "## L'idée\nChaque matin de semaine, les articles publiés la veille sont triés, limités à 10 puis résumés en français par Claude. Toute l'équipe reçoit une veille courte et utile sur Slack.",
        "color": 7,
        "width": 768,
        "height": 368
      }
    }
  ],
  "connections": {
    "Chaque jour ouvré à 8 h": {
      "main": [
        [
          {
            "node": "Lire le flux RSS",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Lire le flux RSS": {
      "main": [
        [
          {
            "node": "Garder les articles des dernières 24 h",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Garder les articles des dernières 24 h": {
      "main": [
        [
          {
            "node": "Limiter à 10 articles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Limiter à 10 articles": {
      "main": [
        [
          {
            "node": "Regrouper les articles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Regrouper les articles": {
      "main": [
        [
          {
            "node": "Résumer la veille",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Résumer la veille": {
      "main": [
        [
          {
            "node": "Publier la veille sur Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Claude": {
      "ai_languageModel": [
        [
          {
            "node": "Résumer la veille",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  }
}