<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Notion API on kenji.blog</title><link>http://kenji.blog/de/tags/notion-api/</link><description>Recent content in Notion API on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>de</language><copyright>kenjinote</copyright><lastBuildDate>Sat, 12 Sep 2026 12:00:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/de/tags/notion-api/index.xml" rel="self" type="application/rss+xml"/><item><title>Aufgabenverwaltung für persönliche Projekte und Bloggen mit Notion</title><link>http://kenji.blog/de/p/notion-task-management-blog-dev/</link><pubDate>Sat, 12 Sep 2026 12:00:00 +0900</pubDate><guid>http://kenji.blog/de/p/notion-task-management-blog-dev/</guid><description>&lt;img src="http://kenji.blog/p/notion-task-management-blog-dev/img/eyecatch.jpg" alt="Featured image of post Aufgabenverwaltung für persönliche Projekte und Bloggen mit Notion" />&lt;h1 id="aufgabenverwaltung-für-persönliche-projekte-und-bloggen-mit-notion">Aufgabenverwaltung für persönliche Projekte und Bloggen mit Notion
&lt;/h1>&lt;p>Um persönliche Entwicklung und das Schreiben eines Blogs aufrechtzuerhalten, sind Aufgabenverwaltung, Motivation und das Sammeln täglicher Ideen zur späteren Nutzung sehr wichtige Themen. Je größer ein Projekt wird, desto mehr Aufgaben gibt es, und man fragt sich oft, womit man anfangen soll. Darüber hinaus ist es eine Herausforderung, wo und wie man die täglich anfallenden Informationen wie Blog-Ideen oder technische Notizen speichert.&lt;/p>
&lt;p>Als Tool, das diese vielfältigen Bedürfnisse auf einer einzigen Plattform lösen kann, ist &lt;strong>Notion&lt;/strong> derzeit das mächtigste. In diesem Artikel erklären wir eine „ultimative Aufgabenverwaltungsmethode“, die Notion nicht nur als Notizblock oder To-Do-Liste nutzt, sondern persönliche Entwicklung und Blog-Schreiben nahtlos integriert und Automatisierung sowie fortgeschrittenes Fortschrittstracking beinhaltet, aus einer sehr detaillierten und technischen Perspektive.&lt;/p>
&lt;hr>
&lt;h2 id="1-die-affinität-zwischen-der-para-methode-und-notion">1. Die Affinität zwischen der PARA-Methode und Notion
&lt;/h2>&lt;p>Zunächst sprechen wir über die Grundlage: Wie man Informationen organisiert. In einem hochgradig flexiblen Tool wie Notion wuchern Seiten und Datenbanken leicht unkontrolliert, was zu einem Zustand führt, in dem man „nicht weiß, wo was ist“. Um dies zu verhindern, führen wir die &lt;strong>PARA-Methode&lt;/strong> ein, die von Tiago Forte entwickelt wurde.&lt;/p>
&lt;p>Die PARA-Methode ist ein System, das Informationen in die folgenden vier Kategorien einteilt:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Projects (Projekte)&lt;/strong>: Eine Sammlung von Aufgaben mit einem klaren Ziel und einer Deadline (z. B. „Release einer neuen Web-App“, „Blog-Design-Erneuerung“).&lt;/li>
&lt;li>&lt;strong>Areas (Bereiche)&lt;/strong>: Verantwortungsbereiche, die langfristig gepflegt und verwaltet werden müssen (z. B. „Gesundheit“, „Blogbetrieb (fortlaufend)“, „Finanzen“).&lt;/li>
&lt;li>&lt;strong>Resources (Ressourcen)&lt;/strong>: Interessante Themen oder Informationen, die in Zukunft nützlich sein könnten (z. B. „Python-Code-Snippets“, „UI-Design-Referenzmaterialien“).&lt;/li>
&lt;li>&lt;strong>Archives (Archive)&lt;/strong>: Abgeschlossene Projekte oder Informationen, die derzeit nicht aktiv sind, aber aufbewahrt werden sollen.&lt;/li>
&lt;/ol>
&lt;p>Um dies in Notion umzusetzen, beginnen Sie damit, die Hierarchie der linken Seitenleiste streng in diese vier Kategorien zu unterteilen. Insbesondere durch die Trennung von „Projects“ und „Areas/Resources“ können Sie eine klare Trennung zwischen den Aufgaben, auf die Sie sich jetzt konzentrieren sollten (Projects), und den dafür benötigten Inputs (Resources) beibehalten, was klares Denken fördert.&lt;/p>
&lt;hr>
&lt;h2 id="2-datenbankdesign-relationale-struktur-von-projects-und-tasks">2. Datenbankdesign: Relationale Struktur von Projects und Tasks
&lt;/h2>&lt;p>Die wahre Stärke von Notion liegt in seinen relationalen Datenbanken. Was bei der Aufgabenverwaltung am meisten vermieden werden sollte, ist die Verwaltung aller Aufgaben in einer einzigen, flachen Liste. Indem man Aufgaben nach Projekten aufteilt und sie miteinander verknüpft, kann man das Gesamtbild und die Details gleichzeitig erfassen.&lt;/p>
&lt;p>Hier erstellen wir eine „Projects (Projekte)“-Datenbank und eine „Tasks (Aufgaben)“-Datenbank und verbinden sie mit einer Relation-Eigenschaft.&lt;/p>
&lt;h3 id="datenbank-beziehungsdiagramm">Datenbank-Beziehungsdiagramm
&lt;/h3>&lt;p>Das folgende Mermaid-Diagramm zeigt die Beziehungen zwischen den Datenbanken Projects, Tasks und Notes (Zettelkasten), die später beschrieben wird.&lt;/p>
&lt;pre class="mermaid">
flowchart TD
P[&amp;#34;Projects (Projekt-DB)&amp;#34;]
T[&amp;#34;Tasks (Aufgaben-DB)&amp;#34;]
N[&amp;#34;Notes (Zettelkasten-DB)&amp;#34;]
P --&amp;gt;| 1:N-Beziehung | T
T --&amp;gt;| N:N-Beziehung | N
P --&amp;gt;| 1:N-Beziehung | N
&lt;/pre>
&lt;h3 id="eigenschaften-der-projects-datenbank">Eigenschaften der Projects-Datenbank
&lt;/h3>&lt;ul>
&lt;li>&lt;code>Project Name&lt;/code> (Title)&lt;/li>
&lt;li>&lt;code>Status&lt;/code> (Select: &amp;ldquo;Not Started&amp;rdquo;, &amp;ldquo;In Progress&amp;rdquo;, &amp;ldquo;Completed&amp;rdquo;)&lt;/li>
&lt;li>&lt;code>Deadline&lt;/code> (Date)&lt;/li>
&lt;li>&lt;code>Tasks&lt;/code> (Relation: Verknüpfung mit der Tasks-Datenbank)&lt;/li>
&lt;li>&lt;code>Progress&lt;/code> (Rollup &amp;amp; Formula: siehe unten)&lt;/li>
&lt;/ul>
&lt;h3 id="eigenschaften-der-tasks-datenbank">Eigenschaften der Tasks-Datenbank
&lt;/h3>&lt;ul>
&lt;li>&lt;code>Task Name&lt;/code> (Title)&lt;/li>
&lt;li>&lt;code>Status&lt;/code> (Status: &amp;ldquo;To Do&amp;rdquo;, &amp;ldquo;In Progress&amp;rdquo;, &amp;ldquo;Done&amp;rdquo;)&lt;/li>
&lt;li>&lt;code>Priority&lt;/code> (Select: &amp;ldquo;High&amp;rdquo;, &amp;ldquo;Medium&amp;rdquo;, &amp;ldquo;Low&amp;rdquo;)&lt;/li>
&lt;li>&lt;code>Project&lt;/code> (Relation: Verknüpfung mit der Projects-Datenbank)&lt;/li>
&lt;li>&lt;code>Due Date&lt;/code> (Date)&lt;/li>
&lt;li>&lt;code>Story Points&lt;/code> (Number: Schätzung des Aufwands der Aufgabe)&lt;/li>
&lt;/ul>
&lt;p>Durch die Aufteilung der Datenbanken auf diese Weise wird es möglich, fortschrittliche Ansichten zu erstellen, wie z. B. das Filtern und Anzeigen nur der Aufgaben, die zu einem Projekt gehören (Verwendung verknüpfter Datenbanken), wenn man die Projektseite öffnet.&lt;/p>
&lt;hr>
&lt;h2 id="3-visualisierung-des-fortschritts-mit-rollup-und-formula">3. Visualisierung des Fortschritts mit Rollup und Formula
&lt;/h2>&lt;p>Um den Fortschritt des Projekts intuitiv zu erfassen, verwenden wir die Formula (Formel)-Funktion von Notion, um einen Fortschrittsbalken zu erstellen. So kann man auf einen Blick sehen, „wie weit dieses Projekt fortgeschritten ist“.&lt;/p>
&lt;h3 id="datenaggregation-mit-rollup">Datenaggregation mit Rollup
&lt;/h3>&lt;p>Erstellen Sie zunächst in der Projects-Datenbank die folgenden zwei Rollup-Eigenschaften aus der Tasks-Relation.&lt;/p>
&lt;ol>
&lt;li>&lt;code>Total Tasks&lt;/code> (Rollup): Ruft die „Anzahl (Count all)“ der Aufgaben aus der Tasks-Relation ab.&lt;/li>
&lt;li>&lt;code>Completed Tasks&lt;/code> (Rollup): Ruft die Anzahl der Aufgaben ab, deren Status „Done“ ist (oder verwenden Sie eine Funktion, um abgeschlossene Aufgaben zu zählen).&lt;/li>
&lt;/ol>
&lt;h3 id="berechnung-des-fortschrittsbalkens-mit-formula">Berechnung des Fortschrittsbalkens mit Formula
&lt;/h3>&lt;p>Als Nächstes erstellen Sie eine Formula-Eigenschaft und geben die folgende Formel ein.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// Berechnungsformel für den Fortschrittsbalken
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="nx">round&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">prop&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Completed Tasks&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="nx">prop&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Total Tasks&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mi">100&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>In der neuesten Formula 2.0 von Notion können Sie darauf basierend nun direkt in der Benutzeroberfläche visuelle Fortschrittsbalken (Ring oder Balken) einstellen. Wenn Sie jedoch die alte Schreibweise oder die textbasierte Darstellung des Fortschrittsbalkens bevorzugen, können Sie auch bedingte Verzweigungen wie die folgenden verwenden.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt">1
&lt;/span>&lt;span class="lnt">2
&lt;/span>&lt;span class="lnt">3
&lt;/span>&lt;span class="lnt">4
&lt;/span>&lt;span class="lnt">5
&lt;/span>&lt;span class="lnt">6
&lt;/span>&lt;span class="lnt">7
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-javascript" data-lang="javascript">&lt;span class="line">&lt;span class="cl">&lt;span class="c1">// Textbasierter Fortschrittsbalken (Beispiel)
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">&lt;/span>&lt;span class="kd">let&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">percent&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nx">round&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">prop&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Completed Tasks&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="nx">prop&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Total Tasks&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="mi">100&lt;/span>&lt;span class="p">),&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">style&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">percent&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="s2">&amp;#34;% &amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="s2">&amp;#34;b&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">+&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">slice&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;▓▓▓▓▓▓▓▓▓▓&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="nx">floor&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">percent&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">))&lt;/span> &lt;span class="o">+&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nx">slice&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;░░░░░░░░░░&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">10&lt;/span> &lt;span class="o">-&lt;/span> &lt;span class="nx">floor&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="nx">percent&lt;/span> &lt;span class="o">/&lt;/span> &lt;span class="mi">10&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;h3 id="ein-mathematischer-ansatz-für-velocity-entwicklungsgeschwindigkeit-und-abschlussprognose">Ein mathematischer Ansatz für Velocity (Entwicklungsgeschwindigkeit) und Abschlussprognose
&lt;/h3>&lt;p>In der persönlichen Entwicklung ist das Wissen darüber, in welchem Tempo man Aufgaben erledigen kann (Velocity), direkt mit einer genauen Zeitplanung verbunden.
Wenn die Summe der Story Points, die in einer Woche erledigt werden können, als Velocity $V$ bezeichnet wird, wird dies durch die folgende Formel ausgedrückt:&lt;/p>
$$ V = \frac{\sum_{i=1}^{n} SP_i}{T} $$&lt;p>Hierbei ist $SP_i$ die Story Points der abgeschlossenen Aufgabe $i$ und $T$ ist der Messzeitraum (z. B. die Anzahl der Wochen in einem Sprint).&lt;/p>
&lt;p>Wenn die gesamten verbleibenden Story Points des aktuellen Projekts $W$ sind, kann die geschätzte Zeit bis zum Abschluss des Projekts $E$ wie folgt berechnet werden:&lt;/p>
$$ E = \frac{W}{V} $$&lt;p>Es ist etwas komplex, diese Berechnung vollständig innerhalb von Notion durchzuführen, aber es ist sehr effektiv, einen Berechnungsblock (Math block) für Aufgaben wie das wöchentliche Review (Weekly Review) zu platzieren und ihn als Indikator für die Selbstbewertung aufzuzeichnen.&lt;/p>
&lt;hr>
&lt;h2 id="4-kanban-boards-und-die-timeline-ansicht-in-der-praxis">4. Kanban-Boards und die Timeline-Ansicht in der Praxis
&lt;/h2>&lt;p>Die „Ansicht (View)“ zur Verwaltung von Aufgaben ist ebenfalls wichtig. In Notion kann dieselbe Datenbank in verschiedenen Formaten (Ansichten) angezeigt werden.&lt;/p>
&lt;h3 id="kanban-board-board-view">Kanban-Board (Board View)
&lt;/h3>&lt;p>Die Standardansicht der „Tasks“-Datenbank ist ein Kanban-Board, das nach Status gruppiert ist (To Do / In Progress / Done). Dadurch kann man Aufgaben intuitiv per Drag &amp;amp; Drop verschieben und visuell prüfen, ob sich aktuelle Engpässe in der Spalte „In Progress“ stauen.&lt;/p>
&lt;h3 id="zeitleiste-timeline-view">Zeitleiste (Timeline View)
&lt;/h3>&lt;p>Für „Projects“ und größere „Tasks“ ist die Timeline-Ansicht effektiv. Dadurch wird wie bei einem Gantt-Diagramm visualisiert, was wann gemacht wird, was es einfacher macht, Unmöglichkeiten bei parallelen Aufgaben (Parallel Tasks) und Abhängigkeiten (eine Aufgabe muss beendet sein, bevor die nächste gestartet werden kann) zu erkennen.&lt;/p>
&lt;hr>
&lt;h2 id="5-wissensvernetzung-mit-zettelkasten-und-notes-datenbank">5. Wissensvernetzung mit Zettelkasten und Notes-Datenbank
&lt;/h2>&lt;p>Beim Bloggen ist das „Beginnen eines Artikels auf einem leeren Blatt Papier“ oft der schmerzhafteste Teil und der Grund für Schreibblockaden. Daher führen wir das Konzept des „&lt;strong>Zettelkasten&lt;/strong>“ in Notion ein, das von dem deutschen Soziologen Niklas Luhmann entwickelt wurde.&lt;/p>
&lt;p>Die Grundregeln des Zettelkastens sind „Schreibe nur eine Idee pro Notiz (atomare Natur)“ und „Verknüpfe Notizen miteinander, um ein Netzwerk zu bilden“.&lt;/p>
&lt;h3 id="notes-datenbankdesign">Notes-Datenbankdesign
&lt;/h3>&lt;ul>
&lt;li>&lt;code>Note Title&lt;/code> (Title)&lt;/li>
&lt;li>&lt;code>Tags&lt;/code> (Multi-select)&lt;/li>
&lt;li>&lt;code>Related Notes&lt;/code> (Relation: Verknüpfung mit der Notes-Datenbank selbst)&lt;/li>
&lt;li>&lt;code>Tasks&lt;/code> (Relation: Verknüpfung mit Aufgaben zum Schreiben von Blogs)&lt;/li>
&lt;/ul>
&lt;h3 id="workflow-für-das-schreiben-von-blogs">Workflow für das Schreiben von Blogs
&lt;/h3>&lt;ol>
&lt;li>Sammeln Sie kontinuierlich Erkenntnisse und Ideen, die Sie in Ihrer täglichen Entwicklung gewonnen haben, als fragmentarische „Notes“.&lt;/li>
&lt;li>Wenn es gemeinsame Themen zwischen diesen Notizen gibt, verwenden Sie die Eigenschaft &lt;code>Related Notes&lt;/code>, um sie zu verknüpfen (bidirektionale Links).&lt;/li>
&lt;li>Wenn Sie mit der Aufgabe des Schreibens eines Blogs (Tasks) beginnen, rufen Sie die verknüpfte Datenbank auf der Aufgabenseite auf und ordnen die relevanten Notes an.&lt;/li>
&lt;li>Durch das bloße Zusammenfügen der Notizfragmente wird das Grundgerüst (Outline) des Blogs fertiggestellt.&lt;/li>
&lt;/ol>
&lt;p>Dadurch wird das Schreiben von Blogs nicht mehr zu einer „Schöpfung aus dem Nichts“, sondern zu einem „Bearbeitungsprozess von gesammeltem Wissen“, was die Schreibgeschwindigkeit drastisch verbessert.&lt;/p>
&lt;hr>
&lt;h2 id="6-ultimative-automatisierung-mit-der-notion-api-und-python">6. Ultimative Automatisierung mit der Notion API und Python
&lt;/h2>&lt;p>Hier beginnt der größte technische Höhepunkt dieses Artikels: der Automatisierungsabschnitt. Die manuelle Eingabe von Aufgaben und Statusänderungen ist Zeitverschwendung bei der persönlichen Entwicklung. Mithilfe der Notion API bauen wir ein System, das GitHub-Issues mit Notion-Aufgaben synchronisiert und den Blog-Deployment-Status in Notion widerspiegelt.&lt;/p>
&lt;h3 id="architekturübersicht">Architekturübersicht
&lt;/h3>&lt;pre class="mermaid">
flowchart TD
GH[&amp;#34;GitHub (Issue / PR)&amp;#34;]
GHA[&amp;#34;GitHub Actions&amp;#34;]
WEB[&amp;#34;Web Server / Lambda&amp;#34;]
NOTION[&amp;#34;Notion API&amp;#34;]
DB[&amp;#34;Notion Tasks DB&amp;#34;]
GH --&amp;gt;| Webhook senden | GHA
GHA --&amp;gt;| Python-Skript ausführen | NOTION
NOTION --&amp;gt;| DB aktualisieren・Aufgabe hinzufügen | DB
&lt;/pre>
&lt;h3 id="automatische-erstellung-von-notion-aufgaben-aus-github-issues">Automatische Erstellung von Notion-Aufgaben aus GitHub-Issues
&lt;/h3>&lt;p>Hier ist ein Implementierungsbeispiel eines Python-Skripts, das automatisch ein Element zur Tasks-Datenbank in Notion hinzufügt, wenn ein Issue in GitHub erstellt wird.&lt;/p>
&lt;p>Im Vorfeld müssen Sie eine Notion-Integration erstellen und den &lt;code>NOTION_API_KEY&lt;/code> sowie die &lt;code>DATABASE_ID&lt;/code> abrufen.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;span class="lnt">33
&lt;/span>&lt;span class="lnt">34
&lt;/span>&lt;span class="lnt">35
&lt;/span>&lt;span class="lnt">36
&lt;/span>&lt;span class="lnt">37
&lt;/span>&lt;span class="lnt">38
&lt;/span>&lt;span class="lnt">39
&lt;/span>&lt;span class="lnt">40
&lt;/span>&lt;span class="lnt">41
&lt;/span>&lt;span class="lnt">42
&lt;/span>&lt;span class="lnt">43
&lt;/span>&lt;span class="lnt">44
&lt;/span>&lt;span class="lnt">45
&lt;/span>&lt;span class="lnt">46
&lt;/span>&lt;span class="lnt">47
&lt;/span>&lt;span class="lnt">48
&lt;/span>&lt;span class="lnt">49
&lt;/span>&lt;span class="lnt">50
&lt;/span>&lt;span class="lnt">51
&lt;/span>&lt;span class="lnt">52
&lt;/span>&lt;span class="lnt">53
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">os&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">requests&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">json&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Token und Datenbank-ID aus Umgebungsvariablen abrufen&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">NOTION_API_KEY&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">environ&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;NOTION_API_KEY&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">DATABASE_ID&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">os&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">environ&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">get&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;DATABASE_ID&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">def&lt;/span> &lt;span class="nf">create_notion_task&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">issue_title&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">issue_url&lt;/span>&lt;span class="p">):&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">url&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;https://api.notion.com/v1/pages&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">headers&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;Authorization&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;Bearer &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">NOTION_API_KEY&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;Content-Type&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;application/json&amp;#34;&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;Notion-Version&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;2022-06-28&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">data&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;parent&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span> &lt;span class="s2">&amp;#34;database_id&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">DATABASE_ID&lt;/span> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;properties&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;Task Name&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;title&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">[&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;text&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;content&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">issue_title&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;Status&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;status&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;name&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="s2">&amp;#34;To Do&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">},&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;URL&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="p">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;url&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span> &lt;span class="n">issue_url&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">response&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">requests&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">post&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">url&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">headers&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">headers&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">data&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="n">json&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">dumps&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">data&lt;/span>&lt;span class="p">))&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="n">response&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">status_code&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="mi">200&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="s2">&amp;#34;Task created successfully in Notion!&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">else&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;Failed to create task: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">response&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">text&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Es wird davon ausgegangen, dass dies als Argument z.B. von GitHub Actions übergeben wird&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">if&lt;/span> &lt;span class="vm">__name__&lt;/span> &lt;span class="o">==&lt;/span> &lt;span class="s2">&amp;#34;__main__&amp;#34;&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Beispiel: python sync.py &amp;#34;Bugfix: Login-Screen ist kaputt&amp;#34; &amp;#34;https://github.com/user/repo/issues/1&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="kn">import&lt;/span> &lt;span class="nn">sys&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">if&lt;/span> &lt;span class="nb">len&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">sys&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">argv&lt;/span>&lt;span class="p">)&lt;/span> &lt;span class="o">&amp;gt;=&lt;/span> &lt;span class="mi">3&lt;/span>&lt;span class="p">:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">create_notion_task&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">sys&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">argv&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">1&lt;/span>&lt;span class="p">],&lt;/span> &lt;span class="n">sys&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">argv&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">2&lt;/span>&lt;span class="p">])&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Indem Sie dieses Skript in den GitHub Actions Workflow (&lt;code>.github/workflows/issue_to_notion.yml&lt;/code>) einbinden, werden Aufgaben in Notion automatisch generiert, wann immer ein Issue im Repository erstellt wird. Entwickler werden von dem Aufwand befreit, zwischen GitHub und Notion hin und her zu wechseln.&lt;/p>
&lt;h3 id="automatische-aktualisierung-des-blog-publishing-status-mit-curl">Automatische Aktualisierung des Blog-Publishing-Status mit cURL
&lt;/h3>&lt;p>Wenn Sie Ihren Blog bei einem Hosting-Dienst wie Vercel oder Netlify bereitstellen, können Sie einen Webhook nach Abschluss des Deployments empfangen und den Status der Notion-Aufgabe (z. B. „Artikel A schreiben und veröffentlichen“) automatisch auf „Done“ ändern.&lt;/p>
&lt;p>Ein Beispiel für einen cURL-Befehl zur Aktualisierung der Eigenschaften einer bestimmten Seite (Aufgabe) lautet wie folgt:&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">curl -X PATCH &lt;span class="s1">&amp;#39;https://api.notion.com/v1/pages/PAGE_ID&amp;#39;&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -H &lt;span class="s1">&amp;#39;Authorization: Bearer &amp;#39;&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$NOTION_API_KEY&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="s1">&amp;#39;&amp;#39;&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -H &lt;span class="s2">&amp;#34;Content-Type: application/json&amp;#34;&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -H &lt;span class="s2">&amp;#34;Notion-Version: 2022-06-28&amp;#34;&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> --data &lt;span class="s1">&amp;#39;{
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> &amp;#34;properties&amp;#34;: {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> &amp;#34;Status&amp;#34;: {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> &amp;#34;status&amp;#34;: {
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> &amp;#34;name&amp;#34;: &amp;#34;Done&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> }
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> }&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Indem Sie diesen API-Aufruf in den letzten Schritt der CI/CD-Pipeline einbinden, vervollständigen Sie eine Vollautomatisierung: „Code pushen → automatisch bereitgestellt werden → Notion-Aufgabe automatisch abgeschlossen“.&lt;/p>
&lt;hr>
&lt;h2 id="7-best-practices-für-den-betrieb-und-tipps-für-die-kontinuität">7. Best Practices für den Betrieb und Tipps für die Kontinuität
&lt;/h2>&lt;p>Egal wie fortschrittlich ein System oder Tool aufgebaut ist, wenn die Personen, die es betreiben, erschöpft sind, verfehlt es seinen Zweck. Zum Schluss stellen wir einige Tipps vor, wie Sie dieses Notion-System ohne Zusammenbruch aufrechterhalten können.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Halten Sie es einfach&lt;/strong>: Erstellen Sie nicht von Anfang an zu viele perfekte Eigenschaften oder komplexe Beziehungen. Bemühen Sie sich um einen „agilen Notion-Aufbau“, bei dem Sie Eigenschaften hinzufügen, wenn sie benötigt werden.&lt;/li>
&lt;li>&lt;strong>Gründliches wöchentliches Review (Weekly Review)&lt;/strong>: Legen Sie eine Zeit fest, z. B. jeden Sonntagabend, um das gesamte Notion zu überprüfen. Halten Sie das System sauber, indem Sie erledigte Aufgaben organisieren, abgelaufene Aufgaben neu planen und nicht kategorisierten Notes Tags hinzufügen.&lt;/li>
&lt;li>&lt;strong>Nutzen Sie die Inbox&lt;/strong>: Es ist mühsam, jede Idee oder Aufgabe, die einem einfällt, sofort in die richtige Datenbank zu sortieren. Ein stressfreier Ansatz ist es, zuerst eine „Inbox“-Datenbank zu erstellen, in die Sie alles hineinwerfen, und sie später (während eines wöchentlichen Reviews) in Projects oder Notes zu sortieren.&lt;/li>
&lt;/ol>
&lt;h2 id="8-fazit">8. Fazit
&lt;/h2>&lt;p>Die Aufgabenverwaltung mit Notion geht weit über eine einfache To-Do-Liste hinaus. Durch die Kombination von Informationsorganisation durch die PARA-Methode, Wissensvernetzung durch den Zettelkasten und Engineering mit der Notion API können Sie ein „Zweites Gehirn (Second Brain)“ aufbauen, das die persönliche Entwicklung und das Schreiben von Blogs stark fördert.&lt;/p>
&lt;p>Die Ersteinrichtung dauert einige Zeit, aber sobald das System läuft, sinkt die kognitive Belastung der Aufgabenverwaltung drastisch, und Sie können sich voll und ganz auf das konzentrieren, was wirklich wichtig ist: „Code schreiben“ und „Texte verfassen“. Bitte nutzen Sie diesen Artikel als Referenz, um Ihren eigenen ultimativen Notion-Workspace zu erstellen.&lt;/p></description></item></channel></rss>