# n8n Workflow Testing Status _Last updated: 2026-05-10_ --- ## ✅ Confirmed Working | # | Workflow | Version | Notes | |---|----------|---------|-------| | 01 | Grafana Alert → AI + Gotify | v1.4 | Dedup + recovery branch confirmed | | 08 | Class Recording RAG | v1.2 | Paperless + Gotify end-to-end confirmed | | 09 | Class Transcript Ingest | v1.1 | Gotify confirmed | | 14 | Paperless Inbox Reminder | v1.2 | Fixed: `Bearer` → `Token` auth; fixed: `hasItemsStr` bug | | 15 | n8n Health Monitor | v1.2 | Fixed: workflow names (was showing IDs); Postgres dedup working | | 16 | NFS Watchdog + Auto-Heal | v1.2 | Confirmed working | | 07 | Git Commit → AI Summary → Gotify | v1.0 | Confirmed working | ## ⏸ Retired | # | Workflow | Reason | |---|----------|--------| | 04 | Whisper Transcription | Replaced — transcription now runs via Docker on Rocinante (RTX 4090) and sends directly to n8n | --- ## 🔲 Not Yet Tested ### 02 — RAG Pipeline v1.0 **What it does:** Two webhooks — `POST /rag/ingest` chunks + embeds text into Qdrant; `POST /rag/query` embeds query, searches Qdrant, asks LiteLLM, returns answer. **Pre-test checklist:** - [ ] `knowledge_base` collection exists in Qdrant (`GET http://10.5.1.6:6333/collections`) - [ ] `nomic-embed-text` model pulled in Ollama (`ollama list` on PD) - [ ] **Hardcoded LiteLLM key** in `LiteLLM Answer` node — should use `$env.LITELLM_API_KEY` **Test approach:** POST `{"text": "some test content", "source": "test"}` to `/rag/ingest`, then POST `{"query": "test content question"}` to `/rag/query` and verify an answer comes back. --- ### 03 — Paperless AI Processing v1.0 **What it does:** Paperless webhook on new document → AI classifies (type/summary/tags) → adds note to doc + sends Gotify + applies tags (parallel branches after `Parse Analysis`). **Pre-test checklist:** - [ ] Paperless webhook configured to POST to `https://n8n.paccoco.com/webhook/paperless/new-document` on document add - [ ] **Hardcoded Paperless token** in `Fetch Document`, `Add Note to Document`, and inline in `Apply Suggested Tags to Paperless` code — should use `$env.PAPERLESS_API_TOKEN` - [ ] **Hardcoded LiteLLM key** in `AI Classify & Extract` — should use `$env.LITELLM_API_KEY` - [ ] Gotify credential `ajvRjvj0QldLQYmo` ("Paperless") — already wired ✓ **Test approach:** Upload a test document to Paperless, then manually POST `{"document_id": }` to the webhook to trigger processing. Check Paperless for note + tags, check Gotify for notification. --- ### 05 — Paperless → RAG v1.0 **What it does:** Webhook on `POST /paperless/rag-ingest` → fetches Paperless doc → chunks + embeds content → upserts to Qdrant `knowledge_base` → Gotify notification. **Pre-test checklist:** - [ ] `knowledge_base` collection exists in Qdrant (same as 02) - [ ] **Hardcoded Paperless token** in `Fetch Document` — should use `$env.PAPERLESS_API_TOKEN` - [ ] Gotify credential `SETUP_REQUIRED` ("Paperless RAG") — needs wiring **Test approach:** POST `{"document_id": }` to the webhook. Verify chunks appear in Qdrant and Gotify notification fires. --- ### 06 — RSS Digest v1.0 **What it does:** Every 6 hours (+ manual webhook + manual trigger), fetches 33 RSS feeds, parses items, deduplicates via Postgres (`rss_seen_items` table), scores by keyword relevance/urgency, AI-summarizes new items per feed, pushes per-feed digests to Gotify. **Pre-test checklist:** - [ ] `rss_seen_items` table exists in Postgres - [ ] **Hardcoded LiteLLM key** in `AI Summarize Feed` node — should use `$env.LITELLM_API_KEY` - [ ] Postgres credential `n9svoXemqSZoNNUB` — already wired ✓ - [ ] Gotify credential `ExUx3oqYQyhkqZcp` ("Rss Feed") — already wired ✓ **Test approach:** Use the "When clicking Execute workflow" manual trigger. First run will insert all items as new (expect lots of Gotify notifications). Second run should be silent (all deduped). --- ## 🐛 Known Issues / Tech Debt | Workflow | Issue | Priority | |----------|-------|----------| | 02 | Hardcoded LiteLLM API key | Medium | | 03 | Hardcoded LiteLLM API key + Paperless token | Medium | | 05 | Hardcoded Paperless token | Medium | | 06 | Hardcoded LiteLLM API key | Medium | | 07 | Hardcoded LiteLLM API key (working but tech debt) | Low | | 15 | `includeData: false` means error messages show as "Unknown error" | Low | | 09 v1.0 | Still active in n8n alongside v1.1 — should be deactivated | Low |