Documentación de Notion as Code, un producto en alfa cerrada, consultada el 3 de agosto de 2026 en el espacio de trabajo Notion Ambassadors — sin autor ni fecha, y con una advertencia que recomienda probarlo en un espacio de trabajo nuevo y alerta sobre posibles cambios disruptivos.
El principio es infraestructura como código aplicada a un espacio de trabajo documental: « Instead of having to make individual public API requests, you can describe the final state and we handle updating your workspace to match. » Dos bloques constitutivos: un SDK TypeScript para describir el estado deseado, y el endpoint /v1/infra_as_code para desplegarlo.
Instead of having to make individual public API requests, you can describe the final state and we handle updating your workspace to match.
— **Notion** — documentation produit publiée sur l'espace public **Notion Ambassadors**. **Aucun auteur nommé , app.notion.com
El mecanismo que sostiene todo es la indirección de identificadores. El script no contiene ningún identificador de Notion: declara valores resourceId elegidos por el autor. El primer despliegue devuelve una tabla de correspondencia entre estos identificadores lógicos y los registros efectivamente creados; reenviada en las llamadas posteriores, garantiza que los mismos registros sean actualizados en lugar de recreados.
Se derivan tres propiedades. El script se vuelve idempotente. Se vuelve desacoplado del espacio de trabajo — varias tablas de correspondencia permiten desplegar el mismo script en varios espacios de trabajo. Y al ser código, admite variables y bucles: el ejemplo dado consiste en crear diez equipos de estructura idéntica cambiando solo unos pocos sustantivos.
El contrato de la API es asíncrono: un POST devuelve un taskId, que se consulta hasta su finalización; la respuesta lleva las tablas de correspondencia que hay que conservar — el equivalente de un archivo de estado.
Dos diferencias operativas: el producto requiere tokens de acceso personal en lugar de los tokens de bot habituales, lo que atribuye las acciones a una persona en lugar de a una integración; y el límite de tasa baja a 5 solicitudes por minuto, ya que una llamada es ahora un lote y no una entidad única.
El producto asume al agente. El SDK se presenta como creado « for you or your coding agent », y la vía de incorporación consiste en dejar que un agente lea el README del SDK. Un descriptor de estado tipado es, en efecto, una herramienta mejor para un agente que una serie de llamadas imperativas: el error ahí es reproducible en lugar de acumulativo.
Lo que falta: ninguna mención a la eliminación de elementos retirados del script, ningún modo de vista previa antes de aplicar, nada sobre concurrencia, y ninguna fecha en una documentación destinada a cambiar.
Puntos clave
Qué es, en una frase.infraestructura como código para un espacio de trabajo documental. El estado final deseado se describe en TypeScript, y Notion reconcilia el espacio de trabajo para ajustarlo. Es el modelo Terraform, aplicado a páginas, bases de datos y equipos en lugar de recursos cloud.
El mecanismo central — el identificador de recurso, y por qué lo hace todo. el script no contiene ningún identificador de Notion. Utiliza valores resourceId elegidos por el autor. El primer despliegue devuelve una tabla de correspondenciaresourceId → RecordPointer, que luego se reenvía mediante existingResources / existingProperties. De ahí se derivan tres propiedades, y son inseparables: 1. Idempotencia — redesplegar actualiza en lugar de recrear. 2. Desacoplamiento del espacio de trabajo — « since the script is not coupled to one workspace, you can easily have multiple mappings… allowing you to use the same script to deploy many workspaces »: una tabla de correspondencia por espacio de trabajo, un único script. 3. Programabilidad — es código, de ahí variables y bucles: « build 10 teams that all have a very similar structure and just need some nouns renamed ». → La indirección mediante identificador lógico es lo que convierte un script de API en un descriptor de estado reutilizable. Es exactamente el papel que desempeñan las direcciones de recurso en el estado de Terraform.
El contrato de la API, en dos pasos (asíncrono).POST /v1/infra_as_code (campos intents — una representación JSON serializada del script —, existingResources, existingProperties) devuelve un taskId; GET /v1/async_tasks/{taskId} se consulta hasta status: succeeded, y la respuesta lleva createdRecordCounts, resourceIdToPointerMappings y resourceIdToPropertyIdMappings. Las dos tablas de correspondencia de salida son lo que hay que conservar — son el equivalente de un archivo de estado.
Dos diferencias operativas que conviene conocer antes de probarlo.
Tokens de acceso personal obligatorios. , en lugar de los tokens de bot habituales de la API pública. Una consecuencia que la página no aborda: las acciones se atribuyen a una persona, no a una integración — lo que plantea la misma cuestión de responsabilidad que « quién consume, y en nombre de quién » en [[girard-acp-deux-protocoles-un-sigle-2026-08-02]]. Un agente que despliega con el token personal de un administrador actúa en su nombre.
5 solicitudes por minuto. , « since this API is not a 1 request → 1 entity created or updated ». La tasa se reduce porque una llamada es un lote.
La mención de los agentes, integrada sin énfasis.« A typescript SDK for you or your coding agent to describe what you want in your Notion workspace », y la vía recomendada es clonar el SDK y luego dejar que « either you or your favorite coding agent » lea el README. → El producto está diseñado partiendo de la base de que un agente lo usará, y el SDK tipado es precisamente lo que lo hace seguro: los tipos limitan lo que el agente puede describir, y la reconciliación hace que un error sea corregible mediante redespliegue en lugar de una limpieza manual. Un descriptor de estado tipado es una herramienta mucho mejor para un agente que una serie de llamadas de API imperativas — el error ahí es reproducible, no acumulativo.
Limitaciones señaladas. solo puede crear o actualizar dentro de un espacio de trabajo existente (incapacidad de crear un espacio de trabajo); no todas las entidades están cubiertas — remite al archivo de definición de tipos del SDK, con las primitivas de alto nivel que se espera que funcionen; límite de tasa reducido.
Lo que la página no dice, y conviene tener presente.
Ninguna mención a la destrucción. La API «crea o actualiza». ¿Qué ocurre con un elemento retirado del script? Una verdadera herramienta de estado sabe eliminar lo que ya no está declarado — aquí nada lo indica, lo que sugiere una reconciliación aditiva y, por tanto, una posible deriva entre el script y el espacio de trabajo real.
Sin modo "plan". ni vista previa antes de aplicar. Se despliega y se observa.
Sin gestión de la concurrencia. no se aborda el caso de dos despliegues simultáneos en el mismo espacio de trabajo.
Sin autor, sin fecha. Para una documentación alfa en evolución, es una carencia que hará que cualquier cita quede rápidamente desactualizada — de ahí la datación basada en la observación en esta ficha.
Ángulo de vigilancia tecnológica — por qué esto importa más allá de Notion. es una señal más de la migración del modelo declarativo fuera de la infraestructura. Después de la nube, los espacios de trabajo documentales; y el desencadenante reconocido es el agente de codificación, que necesita un formato describible, tipado, reproducible en lugar de una secuencia de acciones. Vale la pena relacionarlo con la lógica del "un archivo en lugar de un equipo" en [[isenberg-meng-to-google-design-md-design-team-in-a-file-2026-05-06]], y con la disciplina de especificación versionada en [[lassiege-usine-logicielle-heure-ia-2026-07-28]].
Meta / referencias cruzadas. la cuestión del token personal y actuar en nombre de otro en [[girard-acp-deux-protocoles-un-sigle-2026-08-02]]; la identidad de un agente y su alcance de acción en uber-engineering-agent-identity-crisis-zero-trust-spire-2026-05-21 y valente-zalewski-beyond-zero-enterprise-security-ai-era-2026-07-20; artefactos declarativos impulsados por agentes en isenberg-meng-to-google-design-md-design-team-in-a-file-2026-05-06.
Afirmaciones atribuidas
el producto está en desarrollo, sujeto a cambios disruptivos, y limitado a la creación o actualización dentro de un espacio existente
— Notion as Code
El grafo de conocimiento extraído de esta ficha — 4 entidades, 12 relaciones.
En este grafo :Notion as Code · How to use Notion as Code · identifiant de ressource logique · Notion