Documentazione di Notion as Code, prodotto in alpha chiusa, consultata il 3 agosto 2026 sul workspace Notion Ambassadors — senza autore né data, con un avviso che raccomanda di provarlo su un workspace nuovo e mette in guardia su possibili breaking change.

Il principio è l'infrastructure as code applicata a uno spazio di lavoro documentale: « Instead of having to make individual public API requests, you can describe the final state and we handle updating your workspace to match. » Due elementi costitutivi: un SDK TypeScript per descrivere lo stato desiderato, e l'endpoint /v1/infra_as_code per distribuirlo.

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

Il meccanismo che regge tutto è l'indirizzamento indiretto tramite identificatore. Lo script non contiene alcun identificatore Notion: dichiara resourceId scelti dall'autore. Il primo deployment restituisce una tabella di corrispondenza tra questi identificatori logici e i record effettivamente creati; ripassata nelle chiamate successive, fa sì che gli stessi record vengano aggiornati anziché ricreati.

Ne derivano tre proprietà. Lo script diventa idempotente. Diventa disaccoppiato dallo workspace — più tabelle di corrispondenza permettono di distribuire lo stesso script su più workspace. E poiché è codice, supporta variabili e cicli: l'esempio fornito è costruire dieci team di struttura identica cambiando solo alcuni nomi.

Il contratto dell'API è asincrono: una POST restituisce un taskId, interrogato fino al completamento; la risposta contiene le tabelle di corrispondenza da conservare — l'equivalente di un file di stato.

Due differenze operative: il prodotto richiede personal access token anziché i consueti bot token, il che attribuisce le azioni a una persona anziché a un'integrazione; e il rate limit scende a 5 richieste al minuto, poiché una chiamata è ormai un batch e non più una singola entità.

Il prodotto presuppone un agente. L'SDK è presentato come costruito « for you or your coding agent », e il percorso di onboarding consiste nel lasciare che un agente legga il README dell'SDK. Un descrittore di stato tipizzato è in effetti uno strumento migliore per un agente rispetto a una serie di chiamate API imperative: l'errore qui è ripetibile anziché cumulativo.

⚠️ Cosa manca: nessuna menzione dell'eliminazione degli elementi rimossi dallo script, nessuna modalità di anteprima prima dell'applicazione, nulla sulla concorrenza, e nessuna data su una documentazione destinata a cambiare.