# 🤖 Workflow N8N - Tech News to Memento

## 📋 Description

Ce workflow automatise la veille technologique en :
1. **Lisant** un flux RSS TechCrunch (ou autre source tech)
2. **Analysant** les articles avec GPT-4o-mini
3. **Sélectionnant** les 2 actualités les plus pertinentes
4. **Créant** automatiquement 2 notes dans Memento via MCP

## 🔧 Architecture du Workflow

### 1. **Schedule Trigger** ⏰
- Exécution automatique toutes les **6 heures**
- Configurable selon vos besoins

### 2. **RSS Feed Reader** 📰
- Source par défaut : TechCrunch Feed
- Alternatives possibles :
  - Hacker News: `https://news.ycombinator.com/rss`
  - The Verge: `https://www.theverge.com/rss/index.xml`
  - Ars Technica: `https://feeds.arstechnica.com/arstechnica/index`
  - MIT Technology Review: `https://www.technologyreview.com/feed/`

### 3. **Prepare AI Analysis** 🧮
- Formate les articles pour l'analyse IA
- Crée un prompt système optimisé
- Structure les données pour OpenAI

### 4. **OpenAI Agent** 🤖
**Modèle :** GPT-4o-mini  
**Temperature :** 0.3 (réponses cohérentes)  
**Max Tokens :** 500

**Prompt Système :**
```
Tu es un expert en analyse d'actualités technologiques. 
Ta mission est de sélectionner les 2 articles les plus pertinents 
et importants parmi une liste d'actualités. 

Tu dois être objectif, privilégier l'innovation et l'impact réel. 
Réponds UNIQUEMENT en JSON valide, sans markdown ni texte supplémentaire.
```

**Critères de sélection :**
- ✅ Innovation majeure ou rupture technologique
- ✅ Impact significatif sur l'industrie tech
- ✅ Actualité récente et importante
- ❌ Éviter articles marketing/promotionnels
- ✅ Privilégier annonces concrètes

### 5. **Parse Selection** 🔍
- Parse la réponse JSON de l'IA
- Gère les formats markdown et JSON brut
- Fallback sur les 2 premiers articles en cas d'erreur

### 6. **Format Note** 📝
Crée une note structurée avec :
- 📰 Titre de l'article
- 🔍 Raison de la sélection (par l'IA)
- 📝 Résumé/description
- 🔗 Lien vers l'article complet
- 📅 Date de publication
- 🏷️ Catégories/tags

**Couleur :** Bleu (tech)  
**Labels :** `Tech News`, `Auto-Generated`, + catégories de l'article

### 7. **MCP - Create Note** 💾
- Appelle le MCP server sur `http://localhost:3001/sse`
- Utilise le tool `create_note`
- Format JSON-RPC 2.0

**Payload exemple :**
```json
{
  "jsonrpc": "2.0",
  "id": 1704380400,
  "method": "tools/call",
  "params": {
    "name": "create_note",
    "arguments": {
      "title": "📰 Major AI Breakthrough Announced...",
      "content": "📰 **Full Title**\n\n🔍 **Pourquoi cet article ?**\n...",
      "color": "blue",
      "type": "text",
      "labels": ["Tech News", "Auto-Generated", "AI"]
    }
  }
}
```

### 8. **Extract Result & Summary** ✅
- Extrait l'ID et le titre des notes créées
- Crée un résumé d'exécution
- Status de succès/échec

## 🚀 Installation

### Prérequis
1. **N8N** installé et opérationnel
2. **MCP Server** tournant sur port 3001
3. **Clé API OpenAI** configurée
4. **Memento** accessible sur localhost:3000

### Étapes

1. **Démarrer le MCP Server**
```powershell
cd d:\dev_new_pc\Keep\mcp-server
node index-sse.js
```

2. **Vérifier que Memento tourne**
```powershell
cd d:\dev_new_pc\Keep\keep-notes
npm run dev
```

3. **Importer le workflow dans N8N**
   - Ouvrir N8N (http://localhost:5678)
   - Cliquer "Import from File"
   - Sélectionner `n8n-tech-news-workflow.json`

4. **Configurer les credentials OpenAI**
   - Node "OpenAI - Select Best Articles"
   - Ajouter votre clé API OpenAI
   - Tester la connexion

5. **Activer le workflow**
   - Cliquer sur "Active" en haut à droite
   - Le workflow s'exécutera toutes les 6 heures

## 🧪 Test Manuel

1. Ouvrir le workflow dans N8N
2. Cliquer sur "Execute Workflow" (éclair ⚡)
3. Vérifier les résultats :
   - RSS feed récupéré ✅
   - IA sélectionné 2 articles ✅
   - 2 notes créées dans Memento ✅

## 📊 Monitoring

### Vérifier les notes créées

**Via l'interface Memento :**
- Ouvrir http://localhost:3000
- Chercher les notes avec label "Tech News"
- Notes en bleu avec icône 📰

**Via MCP :**
```bash
curl -X POST http://localhost:3001/sse \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "get_notes",
      "arguments": {
        "search": "Tech News"
      }
    }
  }'
```

## 🎯 Personnalisation

### Changer la source RSS

Dans le node "RSS Feed - Tech News" :
```javascript
// Remplacer l'URL par :
"https://feeds.feedburner.com/venturebeat/SZYF"  // VentureBeat
"https://www.wired.com/feed/rss"                 // Wired
"https://techcrunch.com/feed/"                   // TechCrunch Alt
```

### Modifier les critères de sélection

Dans le node "Prepare AI Analysis", modifier le prompt :
```javascript
Critères de sélection :
- Focus sur [IA / Blockchain / Cloud / DevOps / ...]
- Articles en français uniquement
- Durée de lecture < 10 min
- etc.
```

### Changer la fréquence

Dans le node "Schedule - Every 6 hours" :
- **Toutes les 3h** : `hoursInterval: 3`
- **Tous les jours à 9h** : `cronExpression: "0 9 * * *"`
- **Du lundi au vendredi** : `cronExpression: "0 9 * * 1-5"`

### Modifier le nombre d'articles

Dans "Prepare AI Analysis" :
```javascript
// Passer de 2 à 3 articles
"sélectionnez les 3 articles les PLUS PERTINENTS"

// Adapter la structure JSON
{
  "selected": [
    { "index": 1, "reason": "..." },
    { "index": 2, "reason": "..." },
    { "index": 3, "reason": "..." }
  ]
}
```

### Changer la couleur/labels

Dans le node "Format Note" :
```javascript
color: 'orange',  // ou red, green, purple, etc.
labels: ['AI News', 'Breaking', 'Important']
```

## 🐛 Troubleshooting

### Erreur "MCP Server not responding"
```bash
# Vérifier que le MCP server tourne
curl http://localhost:3001/sse

# Redémarrer si nécessaire
cd d:\dev_new_pc\Keep\mcp-server
node index-sse.js
```

### Erreur OpenAI "Rate limit exceeded"
- Attendre quelques minutes
- Réduire la fréquence du workflow
- Upgrader votre plan OpenAI

### Pas d'articles sélectionnés
- Vérifier le flux RSS (URL valide ?)
- Tester le prompt OpenAI manuellement
- Vérifier les logs N8N

### Notes non créées
```javascript
// Vérifier le payload MCP dans le node "MCP - Create Note"
console.log($json);

// Tester directement avec curl
curl -X POST http://localhost:3001/sse \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"create_note","arguments":{"title":"Test","content":"Test"}}}'
```

## 📈 Optimisations Possibles

1. **Multi-sources RSS**
   - Ajouter plusieurs nodes RSS
   - Merger les résultats
   - Augmenter à 5-10 articles sélectionnés

2. **Filtering avancé**
   - Ajouter des keywords à exclure
   - Filtrer par date (dernières 24h uniquement)
   - Éliminer les doublons

3. **Enrichissement**
   - Scraper le contenu complet de l'article
   - Générer un résumé avec GPT
   - Ajouter des images via API

4. **Notifications**
   - Envoyer email avec les articles sélectionnés
   - Notification Slack/Discord
   - Push notification mobile

5. **Analytics**
   - Logger les articles sélectionnés
   - Stats sur les sources les plus utilisées
   - Tendances des sujets tech

## 🔐 Sécurité

- ⚠️ Ne pas exposer le MCP server sur internet
- ⚠️ Sécuriser la clé API OpenAI
- ✅ Utiliser variables d'environnement pour secrets
- ✅ Limiter rate limiting sur le RSS

## 📚 Ressources

- [N8N Documentation](https://docs.n8n.io/)
- [MCP Protocol Spec](https://modelcontextprotocol.io/)
- [OpenAI API](https://platform.openai.com/docs)
- [RSS Feeds Tech](https://github.com/awesome-rss/awesome-rss)

## 🎉 Résultat Attendu

Toutes les 6 heures, vous aurez automatiquement :
- ✅ **2 notes** dans Memento
- 📰 Sur les **actualités tech les plus importantes**
- 🤖 **Sélectionnées par IA**
- 🏷️ **Labellisées** et organisées
- 🔗 Avec **liens** vers articles complets

**Gain de temps :** ~30 min de veille manuelle par jour = **3.5h par semaine** ! 🚀
