<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kanban on kenji.blog</title><link>http://kenji.blog/es/tags/kanban/</link><description>Recent content in Kanban on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>es</language><copyright>kenjinote</copyright><lastBuildDate>Sat, 12 Sep 2026 12:00:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/es/tags/kanban/index.xml" rel="self" type="application/rss+xml"/><item><title>Gestión de tareas con Notion para el desarrollo personal y la escritura de blogs</title><link>http://kenji.blog/es/p/notion-task-management-blog-dev/</link><pubDate>Sat, 12 Sep 2026 12:00:00 +0900</pubDate><guid>http://kenji.blog/es/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 Gestión de tareas con Notion para el desarrollo personal y la escritura de blogs" />&lt;h1 id="gestión-de-tareas-con-notion-para-el-desarrollo-personal-y-la-escritura-de-blogs">Gestión de tareas con Notion para el desarrollo personal y la escritura de blogs
&lt;/h1>&lt;p>Mantener la gestión de tareas, la motivación y cómo almacenar y utilizar ideas diarias es un tema sumamente importante para continuar con el desarrollo personal y la escritura de blogs. Cuanto más grande sea el proyecto, más tareas habrá que hacer y, a menudo, dudarás sobre qué trabajo abordar primero. Además, dónde y cómo guardar información generada diariamente, como ideas para blogs o notas técnicas, también se convierte en un desafío.&lt;/p>
&lt;p>Como herramienta que puede resolver estas diversas necesidades en una sola plataforma, &lt;strong>Notion&lt;/strong> es actualmente la más poderosa. En este artículo, no dejaremos a Notion como un simple bloc de notas o una herramienta de gestión de tareas. Explicaremos, desde una perspectiva técnica y muy detallada, la &amp;ldquo;técnica definitiva de gestión de tareas&amp;rdquo; que integra a la perfección el desarrollo personal y la escritura de blogs, incorporando la automatización y la gestión avanzada del progreso.&lt;/p>
&lt;hr>
&lt;h2 id="1-la-afinidad-entre-el-método-para-y-notion">1. La afinidad entre el método PARA y Notion
&lt;/h2>&lt;p>Primero, hablemos sobre la base de cómo organizar la información. En herramientas altamente flexibles como Notion, las páginas y bases de datos tienden a multiplicarse caóticamente, cayendo fácilmente en un estado de &amp;ldquo;no saber dónde está cada cosa&amp;rdquo;. Para evitar esto, introduciremos el &lt;strong>método PARA&lt;/strong> propuesto por Tiago Forte.&lt;/p>
&lt;p>El método PARA es una técnica para clasificar la información en las siguientes 4 categorías:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Projects (Proyectos)&lt;/strong>: Un conjunto de tareas con objetivos claros y plazos (ej., &amp;ldquo;Lanzamiento de una nueva aplicación web&amp;rdquo;, &amp;ldquo;Renovación del diseño del blog&amp;rdquo;).&lt;/li>
&lt;li>&lt;strong>Areas (Áreas)&lt;/strong>: Áreas de responsabilidad que necesitan ser mantenidas y gestionadas a largo plazo (ej., &amp;ldquo;Salud&amp;rdquo;, &amp;ldquo;Gestión del blog (continua)&amp;rdquo;, &amp;ldquo;Finanzas&amp;rdquo;).&lt;/li>
&lt;li>&lt;strong>Resources (Recursos)&lt;/strong>: Temas de interés o información que puede ser útil en el futuro (ej., &amp;ldquo;Fragmentos de código en Python&amp;rdquo;, &amp;ldquo;Materiales de referencia para diseño de UI&amp;rdquo;).&lt;/li>
&lt;li>&lt;strong>Archives (Archivos)&lt;/strong>: Proyectos completados o información que actualmente no está activa pero que deseas conservar.&lt;/li>
&lt;/ol>
&lt;p>Para lograr esto en Notion, comenzaremos dividiendo estrictamente la jerarquía de la barra lateral izquierda en estos cuatro. En particular, separar &amp;ldquo;Projects&amp;rdquo; de &amp;ldquo;Areas/Resources&amp;rdquo; evitará que se mezclen las tareas en las que debes concentrarte ahora (Projects) y las aportaciones (Inputs) necesarias para ellas (Resources), manteniendo así el pensamiento claro.&lt;/p>
&lt;hr>
&lt;h2 id="2-diseño-de-bases-de-datos-estructura-relacional-de-projects-y-tasks">2. Diseño de bases de datos: Estructura relacional de Projects y Tasks
&lt;/h2>&lt;p>El verdadero poder de Notion radica en sus bases de datos relacionales. Lo que más se debe evitar en la gestión de tareas es gestionar todas las tareas en una sola lista plana. Al dividir las tareas por proyecto y vincularlas, podrás comprender simultáneamente la imagen general y los detalles.&lt;/p>
&lt;p>Aquí crearemos una base de datos de &amp;ldquo;Projects&amp;rdquo; (Proyectos) y una base de datos de &amp;ldquo;Tasks&amp;rdquo; (Tareas), y las conectaremos usando una propiedad de relación.&lt;/p>
&lt;h3 id="diagrama-de-relación-de-bases-de-datos">Diagrama de relación de bases de datos
&lt;/h3>&lt;p>El siguiente diagrama Mermaid muestra la relación entre las bases de datos Projects, Tasks y Notes (Zettelkasten), que se explicará más adelante.&lt;/p>
&lt;pre class="mermaid">
flowchart TD
P[&amp;#34;Projects (BD de Proyectos)&amp;#34;]
T[&amp;#34;Tasks (BD de Tareas)&amp;#34;]
N[&amp;#34;Notes (BD Zettelkasten)&amp;#34;]
P --&amp;gt;| Relación 1:N | T
T --&amp;gt;| Relación N:N | N
P --&amp;gt;| Relación 1:N | N
&lt;/pre>
&lt;h3 id="propiedades-de-la-base-de-datos-projects">Propiedades de la base de datos Projects
&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: Vinculado a la base de datos Tasks)&lt;/li>
&lt;li>&lt;code>Progress&lt;/code> (Rollup &amp;amp; Formula: Explicado más adelante)&lt;/li>
&lt;/ul>
&lt;h3 id="propiedades-de-la-base-de-datos-tasks">Propiedades de la base de datos Tasks
&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: Vinculado a la base de datos Projects)&lt;/li>
&lt;li>&lt;code>Due Date&lt;/code> (Date)&lt;/li>
&lt;li>&lt;code>Story Points&lt;/code> (Number: Para estimar el tamaño de la tarea)&lt;/li>
&lt;/ul>
&lt;p>Al separar las bases de datos de esta manera, se hace posible crear vistas avanzadas, como filtrar y mostrar solo las tareas que pertenecen a ese proyecto cuando abres la pantalla del proyecto (utilizando bases de datos vinculadas).&lt;/p>
&lt;hr>
&lt;h2 id="3-visualización-del-progreso-utilizando-rollup-y-formula">3. Visualización del progreso utilizando Rollup y Formula
&lt;/h2>&lt;p>Para comprender intuitivamente el progreso del proyecto, crearemos una barra de progreso utilizando la función Formula de Notion. Con esto, podrás ver de un vistazo &amp;ldquo;cuánto ha avanzado este proyecto&amp;rdquo;.&lt;/p>
&lt;h3 id="agregación-de-datos-mediante-rollup">Agregación de datos mediante Rollup
&lt;/h3>&lt;p>Primero, en la base de datos Projects, crea las siguientes dos propiedades Rollup desde la relación Tasks:&lt;/p>
&lt;ol>
&lt;li>&lt;code>Total Tasks&lt;/code> (Rollup): Desde la relación Tasks, obtén el &amp;ldquo;número (Count all)&amp;rdquo; de tareas.&lt;/li>
&lt;li>&lt;code>Completed Tasks&lt;/code> (Rollup): Desde la relación Tasks, obtén el número de tareas cuyo estado es &amp;ldquo;Done&amp;rdquo; (&lt;em>o cuenta las tareas completadas usando una función&lt;/em>).&lt;/li>
&lt;/ol>
&lt;h3 id="cálculo-de-la-barra-de-progreso-mediante-formula">Cálculo de la barra de progreso mediante Formula
&lt;/h3>&lt;p>A continuación, crea una propiedad Formula e ingresa la siguiente fórmula:&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">// Fórmula de cálculo para la barra de progreso
&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>En el último Formula 2.0 de Notion, ahora puedes configurar directamente una barra de progreso visual (en forma de anillo o barra) en la interfaz de usuario basándote en esto. Si prefieres la notación antigua o la visualización de una barra de progreso basada en texto, también puedes usar condiciones como la siguiente:&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">// Barra de progreso basada en texto (Ejemplo)
&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="enfoque-matemático-para-la-velocidad-de-desarrollo-y-estimación-de-finalización">Enfoque matemático para la velocidad de desarrollo y estimación de finalización
&lt;/h3>&lt;p>En el desarrollo personal, conocer el ritmo al que puedes digerir tareas (velocidad) está directamente relacionado con una gestión precisa del cronograma.
Si el total de puntos de historia que se pueden digerir en una semana es la velocidad $V$, se puede expresar con la siguiente fórmula.&lt;/p>
$$ V = \frac{\sum_{i=1}^{n} SP_i}{T} $$&lt;p>Aquí, $SP_i$ representa los puntos de historia de la tarea completada $i$, y $T$ es el período de medición (por ejemplo, el número de semanas en un sprint).&lt;/p>
&lt;p>Si el total de puntos de historia restantes del proyecto actual es $W$, el tiempo estimado hasta la finalización del proyecto $E$ se puede calcular de la siguiente manera:&lt;/p>
$$ E = \frac{W}{V} $$&lt;p>Hacer estos cálculos completamente dentro de Notion es un poco complejo, pero es muy efectivo colocar bloques de matemáticas (Math block) en tareas de revisión semanal para registrarlos como un indicador de autoevaluación.&lt;/p>
&lt;hr>
&lt;h2 id="4-práctica-de-tableros-kanban-y-vistas-de-línea-de-tiempo">4. Práctica de tableros Kanban y vistas de línea de tiempo
&lt;/h2>&lt;p>Las &amp;ldquo;vistas&amp;rdquo; para gestionar tareas también son importantes. En Notion, puedes mostrar la misma base de datos en diferentes formatos (vistas).&lt;/p>
&lt;h3 id="tablero-kanban-board-view">Tablero Kanban (Board View)
&lt;/h3>&lt;p>La vista predeterminada para la base de datos &amp;ldquo;Tasks&amp;rdquo; será un tablero Kanban que agrupa por Estado (To Do / In Progress / Done). Esto te permite mover tareas intuitivamente arrastrando y soltando, y comprobar visualmente si los cuellos de botella actuales se están acumulando en la columna &amp;ldquo;En curso&amp;rdquo; (In Progress).&lt;/p>
&lt;h3 id="línea-de-tiempo-timeline-view">Línea de tiempo (Timeline View)
&lt;/h3>&lt;p>Para los &amp;ldquo;Projects&amp;rdquo; y &amp;ldquo;Tasks&amp;rdquo; de mayor escala, la vista Timeline es muy útil. Al igual que un diagrama de Gantt, esto visualiza desde cuándo hasta cuándo se realizará cada trabajo, lo que facilita la identificación de cargas de trabajo irrazonables debido a tareas paralelas o dependencias (la siguiente no puede avanzar hasta que cierta tarea esté terminada).&lt;/p>
&lt;hr>
&lt;h2 id="5-zettelkasten-y-la-creación-de-redes-de-conocimiento-a-través-de-la-base-de-datos-notes">5. Zettelkasten y la creación de redes de conocimiento a través de la base de datos Notes
&lt;/h2>&lt;p>En la redacción de blogs, &amp;ldquo;empezar a escribir un artículo desde una página en blanco&amp;rdquo; es lo más doloroso y la causa principal del bloqueo del escritor. Por ello, introducimos en Notion el concepto de &amp;ldquo;&lt;strong>Zettelkasten (Método de caja de notas o fichas)&lt;/strong>&amp;rdquo; inventado por el sociólogo alemán Niklas Luhmann.&lt;/p>
&lt;p>La regla básica de Zettelkasten es &amp;ldquo;escribir solo una idea por nota (naturaleza Atómica)&amp;rdquo; y &amp;ldquo;vincular las notas entre sí para crear una red&amp;rdquo;.&lt;/p>
&lt;h3 id="diseño-de-la-base-de-datos-notes">Diseño de la base de datos Notes
&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: Vinculado a la base de datos Notes misma)&lt;/li>
&lt;li>&lt;code>Tasks&lt;/code> (Relation: Vinculado a tareas de escritura del blog)&lt;/li>
&lt;/ul>
&lt;h3 id="flujo-de-trabajo-para-la-escritura-de-blogs">Flujo de trabajo para la escritura de blogs
&lt;/h3>&lt;ol>
&lt;li>Acumula los conocimientos adquiridos a través del desarrollo diario o las ideas que surjan como fragmentos en &amp;ldquo;Notes&amp;rdquo;.&lt;/li>
&lt;li>Si hay un tema común entre esas notas, usa la propiedad &lt;code>Related Notes&lt;/code> para vincularlas (enlaces bidireccionales).&lt;/li>
&lt;li>Cuando vayas a trabajar en una tarea de escritura de blog (Tasks), abre una vista de la base de datos vinculada en esa página de la tarea y alinea las Notes relacionadas.&lt;/li>
&lt;li>Simplemente conectando los fragmentos de notas, el esquema (outline) del blog estará completo.&lt;/li>
&lt;/ol>
&lt;p>Con esto, la redacción de blogs deja de ser &amp;ldquo;una creación desde cero&amp;rdquo; para convertirse en &amp;ldquo;un trabajo de edición de conocimientos almacenados&amp;rdquo;, mejorando drásticamente la velocidad de escritura.&lt;/p>
&lt;hr>
&lt;h2 id="6-la-automatización-definitiva-utilizando-la-api-de-notion-y-python">6. La automatización definitiva utilizando la API de Notion y Python
&lt;/h2>&lt;p>A partir de aquí, llega el mayor punto destacado de este artículo: la sección técnica de automatización. El ingreso manual de tareas y los cambios de estado son una pérdida de tiempo en el desarrollo personal. Aprovechando la API de Notion, crearemos un sistema que sincronice las Issues de GitHub con las tareas de Notion, o que refleje el estado de despliegue del blog en Notion.&lt;/p>
&lt;h3 id="resumen-de-la-arquitectura">Resumen de la arquitectura
&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;API de Notion&amp;#34;]
DB[&amp;#34;BD de Tareas de Notion&amp;#34;]
GH --&amp;gt;| Enviar Webhook | GHA
GHA --&amp;gt;| Ejecutar script Python | NOTION
NOTION --&amp;gt;| Actualizar BD y agregar tarea | DB
&lt;/pre>
&lt;h3 id="creación-automática-de-tareas-en-notion-desde-github-issues">Creación automática de tareas en Notion desde GitHub Issues
&lt;/h3>&lt;p>Este es un ejemplo de implementación de un script en Python que añade automáticamente un elemento a la base de datos Tasks de Notion cuando se crea un Issue en GitHub.&lt;/p>
&lt;p>De antemano, debes crear una integración en Notion y obtener tu &lt;code>NOTION_API_KEY&lt;/code> y &lt;code>DATABASE_ID&lt;/code>.&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"># Obtener el token y el ID de la base de datos desde las variables de entorno&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"># Asumiendo que se recibe como argumento desde GitHub Actions, etc.&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"># Ejemplo: python sync.py &amp;#34;Corrección de error: La pantalla de inicio de sesión se rompe&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>Al incorporar este script al flujo de trabajo de GitHub Actions (&lt;code>.github/workflows/issue_to_notion.yml&lt;/code>), se generarán tareas automáticamente en Notion cada vez que se cree un Issue en el repositorio. Los desarrolladores se liberan de la molestia de tener que ir y venir entre GitHub y Notion.&lt;/p>
&lt;h3 id="actualización-automática-del-estado-de-publicación-del-blog-usando-curl">Actualización automática del estado de publicación del blog usando cURL
&lt;/h3>&lt;p>Si tu blog está desplegado en un servicio de alojamiento como Vercel o Netlify, es posible recibir el Webhook de finalización de despliegue y cambiar automáticamente a &amp;ldquo;Done&amp;rdquo; el estado de una tarea en Notion (ej: &amp;ldquo;Escritura y publicación del artículo A&amp;rdquo;).&lt;/p>
&lt;p>Un ejemplo de comando cURL para actualizar las propiedades de una página (tarea) específica es el siguiente:&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>Al integrar esta llamada a la API en el paso final de tu pipeline CI/CD, completas una automatización total donde: &amp;ldquo;Empujar el código → Despliegue automático → La tarea en Notion se completa automáticamente&amp;rdquo;.&lt;/p>
&lt;hr>
&lt;h2 id="7-mejores-prácticas-operativas-y-consejos-para-la-continuidad">7. Mejores prácticas operativas y consejos para la continuidad
&lt;/h2>&lt;p>No importa cuán avanzado sea el sistema o la herramienta que crees; todo el propósito se frustra si las personas que lo operan se agotan. Por último, presentaré algunos consejos para mantener este sistema de Notion sin que colapse.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Mantén la simplicidad&lt;/strong>: No crees propiedades perfectas ni relaciones complejas desde el principio. Procura construir un &amp;ldquo;Notion ágil&amp;rdquo; en el que vayas añadiendo propiedades solo en el momento en que se necesiten.&lt;/li>
&lt;li>&lt;strong>Revisión Semanal (Weekly Review) exhaustiva&lt;/strong>: Establece un tiempo específico, como el domingo por la noche cada semana, para revisar Notion en su totalidad. Organiza las tareas completadas, reprograma tareas vencidas, etiqueta notas (Notes) sin clasificar, etc., para mantener el sistema limpio.&lt;/li>
&lt;li>&lt;strong>Uso del Inbox&lt;/strong>: Es una molestia clasificar cada idea o tarea en la base de datos adecuada en cuanto te surgen. Es más libre de estrés crear primero una base de datos &amp;ldquo;Inbox&amp;rdquo; para tirar todo allí y, más tarde (por ejemplo, durante la revisión semanal), clasificarlos en Projects o Notes.&lt;/li>
&lt;/ol>
&lt;h2 id="8-conclusión">8. Conclusión
&lt;/h2>&lt;p>La gestión de tareas con Notion va mucho más allá de ser una simple lista de cosas por hacer (To-Do). Al combinar la organización de la información del método PARA, la red de conocimientos a través de Zettelkasten, y la ingeniería mediante la API de Notion, puedes construir un &amp;ldquo;Segundo Cerebro (Second Brain)&amp;rdquo; que impulsará poderosamente tu desarrollo personal y la escritura de blogs.&lt;/p>
&lt;p>La configuración inicial toma algo de tiempo, pero una vez que el sistema empiece a funcionar, la carga cognitiva requerida para gestionar tareas se reducirá drásticamente, permitiéndote concentrarte completamente en lo que realmente importa: &amp;ldquo;escribir código&amp;rdquo; y &amp;ldquo;escribir texto&amp;rdquo;. Esperamos que este artículo te sirva de referencia para crear tu propio espacio de trabajo definitivo en Notion.&lt;/p></description></item></channel></rss>