10 min di letturaIntegrazioni

Integrazione Notion per l'accorciatore di URL: OAuth + sincronizzazione bidirezionale del database

Collega Notion via OAuth, sincronizza i link brevi di Elido in un database Notion e riporta indietro le modifiche alla destinazione. Mappa dei campi, scope, risoluzione dei problemi.

Ana Kowalska
Marketing solutions engineering
Righe di un database Notion sincronizzate con i link brevi di Elido con conteggi dei click in tempo reale, a illustrare l'integrazione Notion per l'accorciatore di URL

L'integrazione Notion per l'accorciatore di URL è passata da Beta a Live il 4 giugno 2026, per quanto riguarda la connessione in sé: un clic OAuth, nessun segreto da incollare. La sincronizzazione del database costruita sopra di essa è pianificata e non ancora disponibile. Quando sarà rilasciata, Elido leggerà gli URL in qualsiasi database tu scelga, creerà link brevi brandizzati sul tuo dominio, li riscriverà nella tabella e osserverà le modifiche alla destinazione, con la mappa dei campi configurabile per ogni database.

Questo articolo copre il passaggio di connessione OAuth, che è già live, e poi la struttura pianificata a sei colonne e il flusso di modifica bidirezionale con risoluzione dei conflitti. Se hai letto la precedente guida pratica ai link brevi su Notion, questo è l'approfondimento.

OAuth con un clic: cosa succede davvero quando premi Connect

I vecchi flussi con incollaggio del token chiedevano di generare un token di integrazione interna di Notion, incollarlo, e poi condividere manualmente ogni database con l'integrazione. Tutto questo è sparito. Il nuovo flusso è di tre clic: Connect in Elido, scegli workspace e database nella schermata di consenso di Notion, fatto. La danza OAuth segue lo standard descritto nella documentazione di autenticazione dell'API di Notion. Notion non supporta PKCE, quindi lo scambio è un semplice flusso authorization code protetto da un parametro state.

Notion non offre una selezione per singolo scope al momento dell'autorizzazione; le capability sono impostate sul lato Elido dell'integrazione, e tu scegli quali pagine e database può vedere. Le capability sono volutamente ristrette:

  • read_content - legge le proprietà Destination, Tags e Title sui database che hai scelto.
  • insert_content - crea nuove righe quando chiedi a Elido di creare un link da una fonte esterna (uno Zap, un webhook, un CSV).
  • update_content - riscrive le proprietà Short URL, Clicks, QR e Last Synced.

Elido non chiede mai una lettura a livello di intero workspace né l'accesso a pagine che non hai selezionato. Notion applica questo vincolo anche lato server: una query su un database fuori dalla concessione restituisce un 403. Il riferimento API di Notion per le operazioni sui database copre i verbi usati dall'integrazione.

Quando completi il consenso, il tuo browser raggiunge api.elido.app/v1/oauth/notion/callback con il codice di autorizzazione. api-core scambia il codice con un access token, cifra il token (secondo ADR-0036) e lo memorizza in external_oauth_connections. Il token in chiaro non tocca mai il disco né i log. Anche una riga finisce nell'audit log, così un admin può vedere chi ha connesso quale workspace Notion, e quando.

Handshake OAuth tra Elido e Notion: l'utente clicca su Connect, il browser reindirizza a notion.com/install, l'utente sceglie workspace e database, il callback verso api.elido.app memorizza il token cifrato

Il pulsante di connessione si trova nella scheda Integrations per singolo workspace, come per ogni altro fornitore nel catalogo delle integrazioni. La pagina di integrazione con Notion contiene uno screenshot della schermata di consenso. I permessi sono revocabili dal pannello Settings, Connections di Notion; Disconnect in Elido contrassegna la connessione come revocata lato Elido.

Due modalità: aggancio o creazione

In modalità aggancio, indichi a Elido un database esistente con una proprietà URL. Elido aggiunge solo le colonne che gli servono (e nient'altro), senza rinominare nulla. In modalità creazione, Elido crea un nuovo database "Elido Links" dentro la pagina che scegli. La maggior parte dei team sceglie l'aggancio perché la propria tabella delle campagne esiste già con trimestri di storico. In entrambi i casi, lo schema qui sotto è identico.

Mappa dei campi: le sei colonne e perché sono fatte così

Tutto ciò che va da qui fino alla guida pratica di configurazione descrive la sincronizzazione pianificata, non ciò che è disponibile oggi. Oggi la connessione permette a Elido di elencare i database che hai condiviso e di creare righe al loro interno tramite il client API.

Ecco la disposizione delle colonne usata dall'integrazione. I nomi sono quelli predefiniti, puoi rinominarli per ogni database in Settings, Notion, Field map.

ColonnaTipo NotionDirezioneNote
Short URLURLElido scriveSola lettura dal lato utente; modificarla non ha alcun effetto.
DestinationURLNotion scriveLa destinazione a cui punta il link breve. Modificabile.
TagsMulti-selectBidirezionaleIn caso di conflitto i tag vengono uniti con un'unione di insiemi.
ClicksNumberElido scriveInterrogato ogni 5 minuti. Sola lettura.
QRFilesElido scriveUn PNG a 1024px del QR per il link breve.
Last SyncedDateElido scriveTimestamp UTC dell'ultimo tocco di sincronizzazione.

Un paio di scelte che vale la pena spiegare.

Clicks non è in tempo reale, di proposito. Notion non ha una primitiva di streaming, e martellare il loro endpoint a ogni click brucerebbe rapidamente il rate limit. Cinque minuti corrispondono alla freschezza di cui ha bisogno la maggior parte dei team operativi. Per il tempo reale, un evento webhook per singolo click è nella roadmap; finché non arriva, preleva i click dall'API di analytics. Notion è la vista campagna; il feed di analytics è la fonte a getto continuo.

QR è una proprietà Files, non un URL. Notion non visualizza gli URL di immagini esterne nelle tabelle, ma visualizza i file allegati come miniature. Elido carica il PNG alla prima sincronizzazione e lo ricarica solo se l'URL breve cambia. Vedi la pagina funzionalità sui QR code e la guida ai QR GS1.

Tags è bidirezionale con unione di insiemi. L'unica colonna su cui scrivono entrambe le parti. Tagga una riga con "launch-2026" in Notion, Elido ha "winter-promo" proveniente da uno Zap, alla sincronizzazione successiva entrambi i tag esistono su entrambi i lati. Le rimozioni si propagano. L'audit log registra ogni modifica.

Per i parametri UTM, la guida ai template UTM collega un template a una cartella così ogni link eredita il utm_source corretto. La colonna Destination resta pulita, ed Elido aggiunge i parametri al momento della risoluzione del click tramite le regole smart link.

Il flusso di modifica bidirezionale: chi vince quando Notion ed Elido non sono d'accordo

Questa è la parte a cui i team tengono di più, perché gli strumenti di sincronizzazione hanno una storia di sovrascritture silenziose. Ecco il contratto.

Il worker pianificato dentro api-core interroga ogni database connesso ogni cinque minuti alla ricerca di modifiche successive all'ultimo watermark last_edited_time. Al variare di una proprietà carica la mappa dei campi e decide la proprietà del dato. Le regole sono fisse:

  • Notion possiede: Destination, Tags (lato scrittura), Title.
  • Elido possiede: Short URL, Clicks, QR, Last Synced.
  • Condiviso: Tags (lato lettura, entrambe le parti vedono l'insieme unito).

Se un campo di proprietà di Notion è cambiato in Notion, Elido aggiorna lo stato interno ed emette un evento integration.notion.sync. Se un campo di proprietà di Elido è cambiato (un incremento del conteggio dei click), Elido lo riscrive alla sincronizzazione successiva.

Il caso interessante è una collisione. Supponi di cambiare Destination in Notion alle 14:02:10 e che uno Zap scriva una nuova Destination su Elido alle 14:02:30, nella stessa finestra di cinque minuti. Notion possiede Destination, quindi vince Notion. Elido scarta la scrittura dello Zap, pubblica un commento sulla riga ("Conflitto su Destination alle 14:02:30, mantenuto il valore di Notion, vedi audit log") ed emette un evento di conflitto a cui ci si può iscrivere tramite webhook. Lo Zap ascolta e decide se riprovare o avvisare.

Mockup di una tabella database Notion con le colonne Short URL, Destination, Tags, Clicks, QR e Last Synced che mostra tre righe di esempio e icone di stato della sincronizzazione

Nessuna sovrascrittura silenziosa da nessuna parte. Ogni scrittura viene registrata. Ogni conflitto riceve un commento sulla riga. Per una registrazione permanente, incanala il flusso dell'audit nel tuo data warehouse tramite la guida all'export su ClickHouse oppure interroga direttamente la API GraphQL.

Quando la modifica alla destinazione NON deve propagarsi

A volte modifichi una Destination come bozza. Due schemi aiutano.

Proprietà di stato come guardia. Aggiungi un Select chiamato "Sync" con i valori Draft, Live, Paused. L'integrazione sincronizza solo le righe con Sync = Live. Prepara in Draft, poi passa a Live: al giro successivo viene ripresa. La maggior parte dei team marketing finisce per usare questo schema.

Mettere in pausa l'intero database. Settings, Notion, pausa per database. Utile durante una migrazione o modifiche massive.

Guida pratica alla configurazione: da zero alla prima riga sincronizzata in 4 minuti

Il passaggio 1 funziona oggi. I passaggi da 2 a 5 arriveranno con la sincronizzazione pianificata.

  1. Connetti Notion. Workspace settings, Integrations, Notion, Connect. Scegli il workspace, seleziona i database, Allow.
  2. Scegli un database. Settings, Notion, "Add database". Il menu a tendina elenca ogni database che hai concesso. Scegline uno.
  3. Mappa i campi. Conferma Destination, Title e il resto. Proprietà mancanti? Elido si offre di crearle.
  4. Scegli un dominio. Scegli un dominio brandizzato per i link brevi. Non hai ancora un dominio personalizzato? Scegli quello predefinito; la migrazione è a un clic di distanza.
  5. Salva e recupera i dati arretrati. Elido legge ogni riga, genera un link breve per quelle con una Destination ma senza Short URL, e lo riscrive. I Short URL esistenti restano invariati.

Il tempo reale è di circa 4 minuti per 200 righe. I recuperi più grandi incontrano il limite di tre richieste al secondo di Notion sui workspace gratuiti. Un database da 5.000 righe si recupera in circa 30 minuti; il worker crea lotti e riprende da solo in caso di rate limiting.

Quando usare questo strumento rispetto a Zapier o all'API diretta

Esistono tre percorsi, non mutuamente esclusivi.

L'integrazione nativa è la scelta predefinita giusta se il lavoro avviene su Notion. OAuth, risoluzione dei conflitti, audit log, mappa dei campi, senza codice.

Uno Zap è adatto a workflow multi-step ("quando viene aggiunta una riga E arriva una reazione su Slack, allora crea un link"). Per una mappatura uno a uno tra riga e link, l'integrazione nativa è più veloce ed economica. Vedi l'articolo sull'automazione con Zapier.

La REST API è adatta se stai costruendo un workflow personalizzato sopra Elido. Per gli sviluppatori che costruiscono integrazioni di prodotto, il codice sorgente sotto services/api-core/internal/integrations/notion/ è abbastanza piccolo da leggere in una sola sessione.

Nel confronto con Bitly o Rebrandly: al momento della stesura nessuno dei due ha un'integrazione nativa con Notion. Entrambi richiedono Zapier o uno script personalizzato. Vedi la pagina confronto con Bitly per la differenza e la pagina prezzi per sapere quali piani includono database Notion illimitati.

Risoluzione dei problemi: i quattro problemi riscontrati durante la Beta

Durante la Beta sono emerse quattro classi di problemi. Diverse riguardano la sincronizzazione pianificata piuttosto che la connessione già attiva, ma è utile sapere cosa cercare.

"Database not found" dopo la rinomina di un workspace. Se un admin di Notion rinomina il workspace, l'ID del workspace resta stabile ma i metadati in cache dal nostro lato diventano obsoleti per fino a un'ora. Soluzione temporanea: premi "Force re-sync" in Settings, Notion. Il TTL della cache in produzione è impostato a 15 minuti, quindi questo è per lo più un artefatto della Beta.

Rate limit durante un grande recupero dati. Il limite per integrazione di Notion è di tre richieste al secondo. Un database da 5.000 righe lo colpisce duramente durante il recupero iniziale. Il worker applica un backoff esponenziale (250ms, 500ms, 1s, 2s, con un tetto di 8s) e poi riprende. Vedrai "Throttled by Notion, resuming" nel registro delle attività; è normale.

Tipo di proprietà non corrispondente. Il bug più comune durante la Beta. Un utente aveva scelto per Destination una colonna Notion di tipo "Text" invece di "URL". Il validatore della mappa dei campi ora lo segnala al momento del salvataggio e si rifiuta di procedere. Se vedi "Destination must be a URL property", cambia prima il tipo di colonna in Notion.

Utente multi-workspace con database condivisi. Se la stessa persona è membro di due workspace Notion ed entrambi vogliono collegare Elido, ogni workspace ha bisogno della propria concessione OAuth. Il token è per workspace, non per utente. Il flusso di connessione gestisce correttamente questo caso; aspettati semplicemente di dover cliccare Connect due volte.

Per qualsiasi cosa non presente in questo elenco, la pagina contatti arriva direttamente al team delle integrazioni. Lì vediamo i problemi più velocemente rispetto al supporto generico.

Cosa arriva dopo

Due seguiti nella roadmap. Una ricetta "Notion form to short link" così l'invio di un form crea un link tracciato. E la sincronizzazione bidirezionale su una proprietà Workspace così un link può seguire una riga quando la sposti tra database. Entrambi sono previsti per il Q3; li segnaleremo nel changelog.

Per misurare l'impatto, la guida introduttiva all'analytics dei link brevi copre quali metriche contano davvero e come impostare le righe della dashboard Notion così rispondano alle domande giuste.

Domande frequenti

Quali scope richiede l'integrazione con Notion?

Elido richiede insert_content, update_content e read_content sulle pagine o sui database che selezioni durante il passaggio di consenso OAuth. Questo basta ad aggiungere nuove righe, scrivere di nuovo gli URL brevi e i conteggi dei click, e leggere le modifiche alla destinazione. Elido non chiede mai un accesso a livello di intero workspace, e la concessione è limitata a ciò che hai selezionato nell'interfaccia di consenso di Notion.

Posso modificare l'URL di destinazione dentro Notion e far sì che Elido lo segua?

Questo è il comportamento pianificato, non ancora disponibile: un osservatore di campo controllerà ogni cinque minuti le modifiche alla proprietà Destination. Se l'URL cambia, Elido aggiorna la destinazione del link in api-core, scrive una nuova riga nell'audit log e attiva un webhook così i sistemi a valle ne vengono a conoscenza. L'URL breve in sé non cambia mai, quindi i QR code esistenti e i materiali stampati continuano a funzionare.

Come funziona la risoluzione dei conflitti quando entrambe le parti modificano contemporaneamente?

Queste sono le regole di sincronizzazione pianificate. Notion è la fonte di verità per Destination, Tags e Title. Elido è la fonte di verità per Short URL, Clicks, QR e Last Synced. Se una proprietà entra in collisione durante una finestra di sincronizzazione, vince il lato che possiede il campo e chi perde riceve un commento sulla riga che spiega cosa è successo. Non esiste alcuna sovrascrittura silenziosa.

L'integrazione funziona con il piano gratuito di Notion?

Sì, con due avvertenze. I workspace gratuiti di Notion hanno un rate limit dell'API di tre richieste al secondo, quindi i database molto grandi (oltre 5.000 righe) si sincronizzano in lotti da 100 con un piccolo backoff. In secondo luogo, l'integrazione richiede che un admin del workspace Notion approvi la concessione OAuth la prima volta. Dopodiché, chiunque abbia i diritti di modifica del database può attivare una risincronizzazione manuale.

Cosa succede se disconnetto l'integrazione?

Elido contrassegna la connessione come revocata dal suo lato; Notion non ha un endpoint di revoca del token, quindi rimuovi anche la connessione a Elido sotto Settings, Connections in Notion. Le righe esistenti restano nel database con i loro URL brevi intatti, ma Clicks e Last Synced smettono di aggiornarsi. Riconnettersi in seguito riprende da dove si era interrotto e recupera retroattivamente i conteggi dei click accumulati durante la disconnessione.

Prova Elido

Incolla un URL, ottieni un link breve

Senza registrazione. Il link vive 30 giorni. Iscriviti per conservarlo.

Gratis, nessuna registrazione richiesta · 2 al giorno

Prova Elido

Accorciatore di URL ospitato nell'UE: domini personalizzati, analisi approfondite e API aperta. Piano gratuito - senza carta di credito.

Tag
notion url shortener integration
notion link tracking
notion oauth integration
notion database sync
short link notion table

Continua a leggere