Obsidian-Inbox automatisieren: n8n, Telegram und KI
Ein Telegram-Bot als Eingang in den Obsidian-Vault: n8n und Gemini verwandeln Sprachnachricht, Link, YouTube-Video oder Screenshot automatisch in eine fertig formatierte Markdown-Notiz mit Frontmatter. Drei Workflows zum Download und Importieren.
In Teil 1 ging es darum, wie und warum ich Obsidian als Second Brain nutze. In Teil 2 darum, wie aus dem Vault über Frontmatter und Dataview eine Datenbank wird – schön und gut. Aber es bleibt die Frage, die sich bei jedem PKM früher oder später stellt: Wie kommt das Zeug überhaupt ins Vault, ohne dass du jede Notiz von Hand anlegst?
Meine Antwort sitzt in Telegram. Ich schicke einem Bot eine Sprachnachricht, einen Link, einen Screenshot oder ein paar hingetippte Gedanken. Ein paar Sekunden später liegt daraus automatisch eine fertig formatierte Markdown-Notiz in meiner Vault-Inbox, mit Titel, Exzerpt, Tags und korrektem Frontmatter. Die Fleißarbeit, die ich früher selbst gemacht hätte, übernimmt Gemini. Den Transport organisiert n8n.
Drei Workflows stecken dahinter. Alle drei sind weiter unten im Beitrag als Download bereitgestellt – importfertig. Hier erkläre ich, wie sie funktionieren und wo die Stolperstellen liegen.
TL;DR
Ein Telegram-Bot ist der Eingang in den Vault. Du schickst etwas hin, n8n und Gemini machen daraus eine fertige Markdown-Notiz im richtigen Format. Drei Workflows decken die Eingabearten ab.
- Gemeinsame Pipeline: Telegram-Trigger (mit Chat-ID-Filter als Türsteher) → Gemini → JavaScript baut das Frontmatter → Google Drive → Hazel schiebt die Datei in den Vault.
- Master-Hub: ein Switch sortiert nach Eingabetyp – Sprachnachricht, Text, URL oder Foto – und schickt jeden Typ durch die passende Gemini-Analyse.
- YouTube: Gemini analysiert das Video direkt und liefert ein strukturiertes Exzerpt samt Mermaid-Diagrammen und Code-Blöcken.
- Webseiten: markdown.new wandelt die URL in sauberes Markdown, r.jina.ai springt als Fallback ein, ein Flag schaltet zwischen Zusammenfassung und Volltext.
- Ehrlich bleibt: Inhalte gehen an Google, Cloudflare und Jina. Ohne Personenbezug unproblematisch, bei Vertraulichem nicht.
Das Grundprinzip: Telegram rein, Markdown raus
Bevor ich die drei einzeln auseinandernehme, lohnt der Blick auf das, was sie teilen. Denn das Ende ist bei allen gleich, und nur der Anfang unterscheidet sich.
Am Anfang steht immer ein Telegram-Trigger. Der hat ein Detail, das du nicht überlesen darfst: einen Filter auf deine eigene Chat-ID. Diese lässt sich schnell und einfach über den Bot @userinfobot in Telegram selbst ermitteln.
Dieser Filter ist der Türsteher. Ohne ihn würde der Bot auf jede Nachricht reagieren, die ihn erreicht – auch auf die von Dritten, die deinen Bot-Namen erraten. Mit ihm verarbeitet der Workflow nur, was von dir kommt. Trag deine eigene ID ein, sonst bleibt der Eingang entweder zu oder offen für alle.
Warum überhaupt Telegram? Weil es der Weg des geringsten Widerstands ist. Einen Bot legst du beim BotFather (@BotFather) in zwei Minuten an, du bekommst ein Token, fertig. Kein oAuth-Tanz, keine App im Review-Wartezimmer.
Und warum Gemini? Ein paar Gründe, die zusammenkommen: Gemini ist multimodal, frisst also Audio, Bild und Text mit demselben Modell – genau das, was dieser Bot braucht. Es ist verhältnismäßig günstig, wenn auch nicht spottbillig. Das Kontextfenster ist groß genug, dass auch lange Webseiten oder Transkripte am Stück reinpassen. Und der Punkt, der für mich den Ausschlag gibt: Die Integration in n8n läuft über ein Paket sehr leistungsfähiger und vor allem nativer Nodes, ich muss also nichts über rohe HTTP-Requests zusammenbauen.
Am Ende steht immer dieselbe Kette. Ein JavaScript-Node baut aus der Gemini-Antwort eine Markdown-Datei mit genau dem Frontmatter, das du aus Teil 2 kennst:
---
type: ressource
domain: Business
status: seedling
ai: all allowed
created: 2026-06-16 14:30
updated: 2026-06-16 14:30
tags: [n8n, automation, telegram]
---
statussteht fest auf seedling, weil frisch reingeworfenes Material per Definition unreif ist. ai steht auf all allowed. Die domain wählt die KI aus drei Werten: Business, Web-Dev oder Private. Das ist der Punkt, an dem du das Ganze an deinen eigenen Vault anpasst – deine Domains sind aller Voraussicht nach andere als meine.
Diese fertige Datei landet in einem Google-Drive-Ordner. Von dort holt sie ein Sync-Schritt ab und legt sie in deine Vault-Inbox. Dazu am Ende mehr, das ist der unspektakulärste und gleichzeitig wichtigste Teil.
So weit das Skelett. Jetzt die drei Varianten:
Der Allrounder: ein Bot für Stimme, Text, Link und Bild
Der erste Workflow ist der, den ich am häufigsten benutze. Er nimmt alles, was Telegram kann, und entscheidet selbst, was zu tun ist. Das Herzstück ist ein Switch direkt hinter dem Trigger, der nach dem Typ der Nachricht verzweigt.
Schickst du eine Sprachnachricht, greift dieser Zweig:
// Switch-Regel: message.voice existiert?
{{ $json.message.voice }} // → exists
Ist Sprache da, lädt der Workflow die Audiodatei von Telegram und reicht sie an Gemini weiter. Und hier wird es interessant: Gemini transkribiert nicht nur, es analysiert. Aus zwei Minuten gemurmelter Gedanken im Auto wird eine strukturierte Notiz mit Titel, Exzerpt und Tags. Füllwörter fliegen raus, die Kernthese bleibt.
Du bist ein präziser Notiz-Assistent. Analysiere die Sprachnachricht
und erstelle eine strukturierte Obsidian-Notiz. Filtere Füllwörter
und Doppelungen, bring die Kernthesen auf den Punkt.
Antworte ausschließlich als JSON:
{"title":"...","type":"shortnote","domain":"Business | Web-Dev | Private", ...}
Schickst du Text, läuft er durch einen IF-Node, der prüft, ob eine URL drinsteckt. Reiner Text geht direkt an Gemini. Steckt ein Link drin (und ist es kein YouTube-Link, dazu gleich), holt der Workflow erst die Webseite und gibt den Inhalt mit. Schickst du ein Foto – einen Screenshot, eine abfotografierte Handschrift vom Notizblock, eine Skizze – wandert es in die Bildanalyse. Gemini transkribiert Handschrift, liest Tabellen aus, beschreibt Diagramme.
Ein Zweig im Switch bleibt bewusst leer: YouTube. Erkennt der Workflow einen YouTube-Link, tut er nichts, weil dafür ein eigener, spezialisierter Workflow zuständig ist. Das ist die einzige Stelle, an der mein Setup seine Geschichte zeigt – es ist über Monate gewachsen, nicht am Reißbrett entworfen. Ein sauberer Neubau würde die URL-Logik wahrscheinlich an einer Stelle bündeln. Bei mir liegt sie an zweien, und es funktioniert, also lasse ich es.
YouTube: das Video selbst lesen lassen
Der zweite Workflow macht eine Sache, und die richtig. Du schickst einen YouTube-Link, Gemini analysiert das Video und gibt ein strukturiertes Exzerpt zurück.
Das Entscheidende: Hier wird kein Transkript durch einen Textgenerator geschoben. Gemini bekommt die Video-URL direkt und arbeitet multimodal damit. Der Prompt verlangt ein tiefes Extrakt statt Stichpunkten und weist die KI an, erwähnte Workflows als Mermaid-Diagramme und gezeigten Code als saubere Code-Blöcke zu rekonstruieren.
EXTRAKTIONS-GUIDE:
- Tiefes, vollständiges Extrakt, keine oberflächlichen Stichpunkte.
- Workflows als Mermaid-Diagramme, Code als Code-Blöcke rekonstruieren.
- Technische Parameter, Bibliotheken, API-Endpunkte erfassen.
Der JavaScript-Node danach baut aus dem JSON die Notiz zusammen. Er kümmert sich auch um Kleinkram, der in der Praxis nervt: Der Dateiname wird auf sechs Wörter gekürzt und von Sonderzeichen befreit, die Tags landen sauber im Frontmatter, die Quelle steht als Callout über dem Inhalt.
const cleanTitle = title
.replace(/[#^\[\]\/\\?%*:|"<>]/g, '')
.split(/\s+/)
.slice(0, 6)
.join(' ')
.trim();
Eine Stolperstelle bleibt. Der Workflow zieht die Video-URL aus der Telegram-Linkvorschau. Schickst du den Link ohne Vorschau oder mitten in einem längeren Satz, kann das Feld leer sein und Gemini bekommt nichts zu sehen. Link allein in die Nachricht, dann läuft es.
Webseiten: erst sauber machen, dann zusammenfassen
Der dritte Workflow ist mein Liebling, weil er ein hässliches Problem elegant löst. Webseiten sind in vielen Fällen vollgemüllt – Navigation, Cookie-Banner, Footer, Werbung. Wer das roh an eine KI gibt, bezahlt Tokens für die Verpackung gleich mit anstatt nur für den Inhalt.
Statt selbst zu putzen, schiebt der Workflow die URL durch markdown.new, einen kostenlosen Dienst von Cloudflare. Du stellst der URL einfach markdown.new/ voran und bekommst sauberes Markdown zurück, laut Anbieter rund 80 Prozent kleiner als das rohe HTML.
https://markdown.new/{{ $json.url }}?method=auto&retain_images=true
Jetzt der elegante Teil. Dienste fallen mal aus, und markdown.new kommt mit paywalled oder JS-lastigen Seiten nicht immer klar. Also baut der Workflow eine Fallback-Kette. Ein IF-Node prüft, ob die Antwort einen Fehler enthält. Wenn ja, wandert dieselbe URL an r.jina.ai, den Reader von Jina, der dasselbe leistet, nur über einen anderen Weg.
// IF-Bedingung: Antwort enthält "success":false → Fallback
leftValue: {{ $json.data }}
operation: contains
rightValue: "success":false
Erst wenn einer der beiden sauberes Markdown geliefert hat, übernimmt Gemini und macht daraus die Notiz. Es gibt zwei Modi, gesteuert über ein Flag in der Telegram-Nachricht. Hängst du -f an die URL, schaltet der Workflow auf Full: Der bereinigte Inhalt bleibt eins zu eins erhalten, fremdsprachiges wird ins Deutsche übersetzt, nichts wird gekürzt. Ohne Flag läuft der Summary-Modus mit einer ausführlichen Zusammenfassung.
const flagMatch = raw.match(/^(.+?)\s+(-f)$/);
let mode = flagMatch ? "full" : "summary";
Ein kleiner Parser, eine große Wirkung. Meldungen und News überfliege ich als Zusammenfassung, die wichtige Dokumentation archiviere ich im Volltext.
Der letzte Meter: von Drive in den Vault
Alle drei Workflows enden im selben Google-Drive-Ordner. Damit ist die Notiz aber noch nicht im Vault, sie liegt erst mal in der Cloud. Der letzte Schritt schiebt sie an ihren Platz.
Warum überhaupt Google Drive? Das ist schon mehr Krampf als der Telegram-Bot, zugegeben. Die OAuth-Einrichtung über die Google Cloud Console kostet ein paar Klicks. Trotzdem ist es der bequemere Weg, jedenfalls gegen die Alternative, die ich kenne: OneDrive über die Microsoft Graph API. Ich betreibe beides im Alltag, und die Google-Variante ist in meinen Augen einen Tick weniger aufwendig.
Bei mir holt Hazel die Datei ab, ein Regel-Automat für macOS. Hazel überwacht den synchronisierten Drive-Ordner, und sobald eine neue .md-Datei auftaucht, verschiebt es sie in den 0 Inbox-Ordner meines Vaults. Mit dem nächsten Sync von Obsidian ist die Notiz auf allen Geräten.
Hazel ist Mac-only, also für viele keine Option. Auf Windows erledigen File Juggler oder Power Automate denselben Job, plattformübergreifend tut es ein kleines Skript per cron.
Womit eine naheliegende Frage offen ist: Warum nicht der Obsidian-Community-Node für n8n? Den gibt es, und er schreibt über die Local REST API direkt in den Vault. Der Haken sitzt in der Topologie. Dafür müsste n8n meinen lokalen Obsidian-Rechner erreichen. Meine Instanz läuft aber auf einem Cloud-Server, der keine lokalen Dateien durch die Gegend schiebt. Also bringt der Node mir nichts, und der Umweg über die Cloud bleibt. Wer n8n lokal betreibt, dreht den Spieß um: Node rein, Drive und Hazel komplett sparen.
Was rausgeht, ehrlich gesagt
Eine Sache gehört offen ausgesprochen, bevor du das nachbaust: Deine Inhalte verlassen das Haus. Sprachnachrichten und Screenshots gehen an Google, weil Gemini in allen Workflows läuft. URLs und der gescrapte Webinhalt gehen an Cloudflare und an Jina. In meinen Notizen, die diese Workflows durchlaufen, stecken keine personenbezogenen oder sonstige vertrauliche Daten – es sind Gedankenfetzen, Artikel, Skizzen. Für diesen Fall ist der Transfer unproblematisch. Sobald aber Personenbezug oder Vertrauliches durch die Pipeline läuft, sieht die Rechnung anders aus. Das entscheidest du pro Inhalt selbst. Dieser Aspekt wird auch im vierten Teil noch relevant werden.
Ein technischer Hinweis fürs Protokoll: Die Workflows nutzen u. A. Gemini 3 Flash als Preview-Modell. Preview heißt, das Modell kann ohne große Vorwarnung auslaufen. Wenn dein Workflow eines Tages grundlos Fehler wirft, schau zuerst hier nach und tausch auf die dann aktuelle Version oder einen latest-Alias.
Was als nächstes kommt
Damit ist der Kreis fast geschlossen. Der Vault ist strukturiert (Teil 1), abfragbar (Teil 2) und füllt sich von selbst (dieser Teil). Fehlt noch der direkte Draht. Im letzten Teil verbinde ich den Vault über MCP mit Claude Code und dem Gemini CLI, lasse das frisch gebündelte Obsidian-CLI mitspielen und zeige, wie das ai-Feld im Frontmatter endlich zu dem wird, wofür es gedacht ist – ein Rechtesystem für die KI, die im Vault arbeitet.
Die drei Workflows liegen als JSON zum Download bereit. Importieren, die drei Credentials neu verknüpfen, deine Chat-ID und deinen Drive-Ordner eintragen, fertig.